@Override
 public void updateValue(int index, double value) {
   checkElementIndex(index, numRows);
   w.put(index, w.contains(index) ? (value + w.get(index)) : value);
   if (VectorUtils.floatingPointEquals(w.get(index), 0)) w.remove(index);
 }
 @Override
 public void initW(double param) {
   w = new TIntDoubleHashMap();
   if (!VectorUtils.floatingPointEquals(0, param))
     for (int i = 0; i < numRows; i++) w.put(i, param);
 }
 @Override
 public void resetValue(int index, double value) {
   checkElementIndex(index, numRows);
   if (!VectorUtils.floatingPointEquals(value, 0)) w.put(index, value);
   else w.remove(index);
 }