@Override public int getEntryCount() { this.compress(); return this.values.length; }
@Override public int getEntryCount() { this.compress(); return this.values.length; }
@Override public double sum() { this.compress(); double result = 0.0; for (final double value : this.values) { result += value; } return result; }
@Override public double sum() { this.compress(); double result = 0.0; for (final double value : this.values) { result += value; } return result; }
@Override public double sum() { this.compress(); double result = 0.0; for (final double value : this.values) { result += value; } return result; }
@Override public int getEntryCount() { this.compress(); return this.values.length; }
@Override final public Vector scale( final double d) { compress(); SparseVector result = new SparseVector(this); for (int i = 0; i < result.values.length; ++i) { result.values[i] *= d; } return result; }
@Override final public Iterator<VectorEntry> iterator() { this.compress(); return new EntryIterator(); }
@Override final public Iterator<VectorEntry> iterator() { this.compress(); return new EntryIterator(); }
@Override final public Vector scale( final double d) { compress(); SparseVector result = new SparseVector(this); for (int i = 0; i < result.values.length; ++i) { result.values[i] *= d; } return result; }
@Override final public Vector scale( final double d) { compress(); SparseVector result = new SparseVector(this); for (int i = 0; i < result.values.length; ++i) { result.values[i] *= d; } return result; }
@Override public final void dotTimesEquals( final DenseVector other) { this.assertSameDimensionality(other); compress(); for (int i = 0; i < values.length; ++i) { values[i] *= other.values[indices[i]]; } }
@Override final public Iterator<VectorEntry> iterator() { this.compress(); return new EntryIterator(); }
@Override public final void dotTimesEquals( final DenseVector other) { this.assertSameDimensionality(other); compress(); for (int i = 0; i < values.length; ++i) { values[i] *= other.values[indices[i]]; } }
@Override public final double dotProduct( final DenseVector other) { this.assertSameDimensionality(other); compress(); double result = 0; for (int i = 0; i < indices.length; ++i) { result += values[i] * other.values[indices[i]]; } return result; }
@Override public final void dotTimesEquals( final DenseVector other) { this.assertSameDimensionality(other); compress(); for (int i = 0; i < values.length; ++i) { values[i] *= other.values[indices[i]]; } }
@Override public final double dotProduct( final DenseVector other) { this.assertSameDimensionality(other); compress(); double result = 0; for (int i = 0; i < indices.length; ++i) { result += values[i] * other.values[indices[i]]; } return result; }
@Override public final void plusEquals( final SparseVector other) { this.assertSameDimensionality(other); other.compress(); int[] locs = other.getIndices(); double[] vals = other.getValues(); for (int i = 0; i < locs.length; ++i) { values[locs[i]] += vals[i]; } }
@Override public final void minusEquals( final SparseVector other) { this.assertSameDimensionality(other); other.compress(); int[] locs = other.getIndices(); double[] vals = other.getValues(); for (int i = 0; i < locs.length; ++i) { values[locs[i]] -= vals[i]; } }
@Override public final void plusEquals( final SparseVector other) { this.assertSameDimensionality(other); other.compress(); int[] locs = other.getIndices(); double[] vals = other.getValues(); for (int i = 0; i < locs.length; ++i) { values[locs[i]] += vals[i]; } }