@Override final public SparseVector createVector( final int dim) { return new SparseVector(dim); }
@Override public SparseVector createVectorCapacity( final int dimensionality, final int initialCapacity) { return new SparseVector(dimensionality); }
@Override public SparseVector createVectorCapacity( final int dimensionality, final int initialCapacity) { return new SparseVector(dimensionality); }
@Override final public SparseVector createVector( final int dim) { return new SparseVector(dim); }
@Override final public SparseVector createVector( final int dim) { return new SparseVector(dim); }
@Override public SparseVector createVectorCapacity( final int dimensionality, final int initialCapacity) { return new SparseVector(dimensionality); }
@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 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 getRow( final int rowIndex) { if (rowIndex < 0 || rowIndex >= diagonal.length) { throw new ArrayIndexOutOfBoundsException("Input row index (" + rowIndex + ") is not within this " + diagonal.length + "x" + diagonal.length + " matrix"); } SparseVector result = new SparseVector(diagonal.length); result.setElement(rowIndex, diagonal[rowIndex]); return result; }
@Override final public Vector getColumn( final int columnIndex) { if (columnIndex < 0 || columnIndex >= diagonal.length) { throw new ArrayIndexOutOfBoundsException("Input column index (" + columnIndex + ") is not within this " + diagonal.length + "x" + diagonal.length + " matrix"); } SparseVector result = new SparseVector(diagonal.length); result.setElement(columnIndex, diagonal[columnIndex]); return result; }
@Override final public Vector getColumn( final int columnIndex) { if (columnIndex < 0 || columnIndex >= diagonal.length) { throw new ArrayIndexOutOfBoundsException("Input column index (" + columnIndex + ") is not within this " + diagonal.length + "x" + diagonal.length + " matrix"); } SparseVector result = new SparseVector(diagonal.length); result.setElement(columnIndex, diagonal[columnIndex]); return result; }
@Override final public Vector getRow( final int rowIndex) { if (rowIndex < 0 || rowIndex >= diagonal.length) { throw new ArrayIndexOutOfBoundsException("Input row index (" + rowIndex + ") is not within this " + diagonal.length + "x" + diagonal.length + " matrix"); } SparseVector result = new SparseVector(diagonal.length); result.setElement(rowIndex, diagonal[rowIndex]); return result; }
@Override final public Vector getRow( final int rowIndex) { if (rowIndex < 0 || rowIndex >= diagonal.length) { throw new ArrayIndexOutOfBoundsException("Input row index (" + rowIndex + ") is not within this " + diagonal.length + "x" + diagonal.length + " matrix"); } SparseVector result = new SparseVector(diagonal.length); result.setElement(rowIndex, diagonal[rowIndex]); return result; }
@Override final public Vector convertToVector() { final int numColumns = this.getNumColumns(); SparseVector result = new SparseVector(numColumns * numColumns); for (int i = 0; i < diagonal.length; ++i) { result.setElement(i * numColumns + i, diagonal[i]); } return result; }
@Override final public Vector convertToVector() { final int numColumns = this.getNumColumns(); SparseVector result = new SparseVector(numColumns * numColumns); for (int i = 0; i < diagonal.length; ++i) { result.setElement(i * numColumns + i, diagonal[i]); } return result; }
@Override final public Vector convertToVector() { final int numColumns = this.getNumColumns(); SparseVector result = new SparseVector(numColumns * numColumns); for (int i = 0; i < diagonal.length; ++i) { result.setElement(i * numColumns + i, diagonal[i]); } return result; }
@Override public final Vector times( final SparseVector vector) { vector.assertDimensionalityEquals(this.getNumColumns()); SparseVector result = new SparseVector(diagonal.length); vector.compress(); int[] locs = vector.getIndices(); for (int i = 0; i < locs.length; ++i) { result.setElement(locs[i], vector.getValues()[i] * diagonal[locs[i]]); } return result; }
@Override public final Vector times( final SparseVector vector) { vector.assertDimensionalityEquals(this.getNumColumns()); SparseVector result = new SparseVector(diagonal.length); vector.compress(); int[] locs = vector.getIndices(); for (int i = 0; i < locs.length; ++i) { result.setElement(locs[i], vector.getValues()[i] * diagonal[locs[i]]); } return result; }
@Override public final Vector times( final SparseVector vector) { vector.assertDimensionalityEquals(this.getNumColumns()); SparseVector result = new SparseVector(diagonal.length); vector.compress(); int[] locs = vector.getIndices(); for (int i = 0; i < locs.length; ++i) { result.setElement(locs[i], vector.getValues()[i] * diagonal[locs[i]]); } return result; }