@Override public void set( final int index, final double value) { setElement(index, value); }
@Override public void set( final int index, final double value) { setElement(index, value); }
@Override public void set( final int index, final double value) { setElement(index, value); }
@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 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 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; }
/** * {@inheritDoc} * * NOTE: Upon completion this is in the compressed Yale format. * * @param rowIndex {@inheritDoc} * @param columnIndex {@inheritDoc} * @param value {@inheritDoc} * @throws ArrayIndexOutOfBoundsException if the indices are out of bounds */ @Override final public void setElement( final int rowIndex, final int columnIndex, final double value) { if (isCompressed()) { decompress(); } rows[rowIndex].setElement(columnIndex, value); }
/** * {@inheritDoc} * * NOTE: Upon completion this is in the compressed Yale format. * * @param columnIndex {@inheritDoc} * @return {@inheritDoc} */ @Override final public Vector getColumn( final int columnIndex) { if (!isCompressed()) { compress(); } SparseVector result = new SparseVector(numRows); for (int i = 0; i < numRows; ++i) { result.setElement(i, get(i, columnIndex)); } return result; }
@Override final public SparseVector copyVector( final Vector m) { if (m instanceof DenseVector) { return new SparseVector((DenseVector) m); } else if (m instanceof SparseVector) { return new SparseVector((SparseVector) m); } // I have to handle non-package vectors int n = m.getDimensionality(); SparseVector result = new SparseVector(n); for (int i = 0; i < n; ++i) { result.setElement(i, m.get(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; }
@Override final public SparseVector copyVector( final Vector m) { if (m instanceof DenseVector) { return new SparseVector((DenseVector) m); } else if (m instanceof SparseVector) { return new SparseVector((SparseVector) m); } // I have to handle non-package vectors int n = m.getDimensionality(); SparseVector result = new SparseVector(n); for (int i = 0; i < n; ++i) { result.setElement(i, m.get(i)); } return result; }
@Override public final Matrix outerProduct( final SparseVector other) { int numRows = getDimensionality(); int numCols = other.getDimensionality(); SparseMatrix result = new SparseMatrix(numRows, numCols, true); other.compress(); int[] locs = other.getIndices(); double[] vals = other.getValues(); for (int i = 0; i < numRows; ++i) { SparseVector row = new SparseVector(numCols); for (int j = 0; j < locs.length; ++j) { row.setElement(locs[j], values[i] * vals[j]); } result.setRowInternal(i, row); } return result; }