@Override public void forEachElement( final IndexValueConsumer consumer) { // This is by definition a dense iteration. final int dimensionality = this.getDimensionality(); for (int i = 0; i < dimensionality; i++) { consumer.consume(i, this.get(i)); } }
@Override public Vector times( final Matrix matrix) { // This is a generic implementation to support interoperability. // Sub-classes should make custom ones for performance. this.assertDimensionalityEquals(matrix.getNumRows()); final int n = matrix.getNumColumns(); final Vector result = this.getVectorFactory().createVector(n); for (final MatrixEntry entry : matrix) { result.increment(entry.getColumnIndex(), this.get(entry.getRowIndex()) * entry.getValue()); } return result; }
@Override public void forEachElement( final IndexValueConsumer consumer) { // This is by definition a dense iteration. final int dimensionality = this.getDimensionality(); for (int i = 0; i < dimensionality; i++) { consumer.consume(i, this.get(i)); } }
@Override public Vector times( final Matrix matrix) { // This is a generic implementation to support interoperability. // Sub-classes should make custom ones for performance. this.assertDimensionalityEquals(matrix.getNumRows()); final int n = matrix.getNumColumns(); final Vector result = this.getVectorFactory().createVector(n); for (final MatrixEntry entry : matrix) { result.increment(entry.getColumnIndex(), this.get(entry.getRowIndex()) * entry.getValue()); } return result; }
@Override public void forEachElement( final IndexValueConsumer consumer) { // This is by definition a dense iteration. final int dimensionality = this.getDimensionality(); for (int i = 0; i < dimensionality; i++) { consumer.consume(i, this.get(i)); } }
@Override public Vector times( final Matrix matrix) { // This is a generic implementation to support interoperability. // Sub-classes should make custom ones for performance. this.assertDimensionalityEquals(matrix.getNumRows()); final int n = matrix.getNumColumns(); final Vector result = this.getVectorFactory().createVector(n); for (final MatrixEntry entry : matrix) { result.increment(entry.getColumnIndex(), this.get(entry.getRowIndex()) * entry.getValue()); } return result; }
@Override public void transformEquals( final UnivariateScalarFunction function) { final int dimensionality = this.getDimensionality(); for (int i = 0; i < dimensionality; i++) { final double value = function.evaluate(this.get(i)); this.set(i, value); } }
@Override public void transformEquals( final UnivariateScalarFunction function) { final int dimensionality = this.getDimensionality(); for (int i = 0; i < dimensionality; i++) { final double value = function.evaluate(this.get(i)); this.set(i, value); } }
@Override public void transformEquals( final IndexValueTransform function) { final int dimensionality = this.getDimensionality(); for (int i = 0; i < dimensionality; i++) { final double value = function.transform(i, this.get(i)); this.set(i, value); } }
@Override public void transformEquals( final IndexValueTransform function) { final int dimensionality = this.getDimensionality(); for (int i = 0; i < dimensionality; i++) { final double value = function.transform(i, this.get(i)); this.set(i, value); } }
@Override public void transformEquals( final UnivariateScalarFunction function) { final int dimensionality = this.getDimensionality(); for (int i = 0; i < dimensionality; i++) { final double value = function.evaluate(this.get(i)); this.set(i, value); } }
@Override public void transformEquals( final IndexValueTransform function) { final int dimensionality = this.getDimensionality(); for (int i = 0; i < dimensionality; i++) { final double value = function.transform(i, this.get(i)); this.set(i, value); } }