@Override final public void setElement(int rowIndex, int columnIndex, double value) { rows[rowIndex].setElement(columnIndex, value); }
@Override final public void setElement(int rowIndex, int columnIndex, double value) { rows[rowIndex].setElement(columnIndex, value); }
@Override final public void setElement(int rowIndex, int columnIndex, double value) { rows[rowIndex].setElement(columnIndex, value); }
@Override public final Vector times( final DenseVector vector) { vector.assertDimensionalityEquals(this.getNumColumns()); DenseVector result = new DenseVector(diagonal.length); for (int i = 0; i < diagonal.length; ++i) { result.setElement(i, vector.get(i) * diagonal[i]); } return result; }
@Override public final Vector times( final DenseVector vector) { vector.assertDimensionalityEquals(this.getNumColumns()); DenseVector result = new DenseVector(diagonal.length); for (int i = 0; i < diagonal.length; ++i) { result.setElement(i, vector.get(i) * diagonal[i]); } return result; }
@Override public final Vector times( final DenseVector vector) { vector.assertDimensionalityEquals(this.getNumColumns()); DenseVector result = new DenseVector(diagonal.length); for (int i = 0; i < diagonal.length; ++i) { result.setElement(i, vector.get(i) * diagonal[i]); } return result; }
@Override final public Matrix transpose() { // It's the transpose of me int m = getNumColumns(); int n = getNumRows(); final DenseVector[] resultRows = new DenseVector[m]; for (int i = 0; i < m; ++i) { DenseVector row = new DenseVector(n); for (int j = 0; j < n; ++j) { row.setElement(j, get(j, i)); } resultRows[i] = row; } return new DenseMatrix(resultRows); }
@Override final public Matrix transpose() { // It's the transpose of me int m = getNumColumns(); int n = getNumRows(); final DenseVector[] resultRows = new DenseVector[m]; for (int i = 0; i < m; ++i) { DenseVector row = new DenseVector(n); for (int j = 0; j < n; ++j) { row.setElement(j, get(j, i)); } resultRows[i] = row; } return new DenseMatrix(resultRows); }
/** * Helper method that handles all vector-on-the-right multiplies because we * depend on the vector dotProduct optimization here. * * @param vector The vector to multiply * @return The vector resulting from multiplying this * vector */ private Vector timesInternal( final Vector vector) { vector.assertDimensionalityEquals(this.getNumColumns()); final int numRows = this.getNumRows(); DenseVector result = new DenseVector(numRows); for (int i = 0; i < numRows; ++i) { result.setElement(i, vector.dotProduct(rows[i])); } return result; }
@Override final public Matrix transpose() { // It's the transpose of me int m = getNumColumns(); int n = getNumRows(); final DenseVector[] resultRows = new DenseVector[m]; for (int i = 0; i < m; ++i) { DenseVector row = new DenseVector(n); for (int j = 0; j < n; ++j) { row.setElement(j, get(j, i)); } resultRows[i] = row; } return new DenseMatrix(resultRows); }
/** * Helper method that handles all vector-on-the-right multiplies because we * depend on the vector dotProduct optimization here. * * @param vector The vector to multiply * @return The vector resulting from multiplying this * vector */ private Vector timesInternal( final Vector vector) { vector.assertDimensionalityEquals(this.getNumColumns()); final int numRows = this.getNumRows(); DenseVector result = new DenseVector(numRows); for (int i = 0; i < numRows; ++i) { result.setElement(i, vector.dotProduct(rows[i])); } return result; }
/** * Helper method that handles all vector-on-the-right multiplies because we * depend on the vector dotProduct optimization here. * * @param vector The vector to multiply * @return The vector resulting from multiplying this * vector */ private Vector timesInternal( final Vector vector) { vector.assertDimensionalityEquals(this.getNumColumns()); final int numRows = this.getNumRows(); DenseVector result = new DenseVector(numRows); for (int i = 0; i < numRows; ++i) { result.setElement(i, vector.dotProduct(rows[i])); } return result; }
@Override public final Vector preTimes( final DenseVector vector) { final int numRows = this.getNumRows(); final int numColumns = this.getNumColumns(); vector.assertDimensionalityEquals(numRows); DenseVector result = new DenseVector(numColumns); for (int i = 0; i < numColumns; ++i) { double entry = 0; for (int j = 0; j < numRows; ++j) { entry += vector.get(j) * rows[j].get(i); } result.setElement(i, entry); } return result; }
@Override public final Vector preTimes( final DenseVector vector) { final int numRows = this.getNumRows(); final int numColumns = this.getNumColumns(); vector.assertDimensionalityEquals(numRows); DenseVector result = new DenseVector(numColumns); for (int i = 0; i < numColumns; ++i) { double entry = 0; for (int j = 0; j < numRows; ++j) { entry += vector.get(j) * rows[j].get(i); } result.setElement(i, entry); } return result; }
@Override public final Vector preTimes( final DenseVector vector) { final int numRows = this.getNumRows(); final int numColumns = this.getNumColumns(); vector.assertDimensionalityEquals(numRows); DenseVector result = new DenseVector(numColumns); for (int i = 0; i < numColumns; ++i) { double entry = 0; for (int j = 0; j < numRows; ++j) { entry += vector.get(j) * rows[j].get(i); } result.setElement(i, entry); } return result; }
@Override public final Vector preTimes( final SparseVector vector) { vector.assertDimensionalityEquals(this.getNumRows()); DenseVector result = new DenseVector(getNumColumns()); vector.compress(); int[] locs = vector.getIndices(); double[] vals = vector.getValues(); final int numColumns = this.getNumColumns(); for (int i = 0; i < numColumns; ++i) { double entry = 0; for (int j = 0; j < locs.length; ++j) { entry += vals[j] * rows[locs[j]].get(i); } result.setElement(i, entry); } return result; }
@Override public final Vector preTimes( final SparseVector vector) { vector.assertDimensionalityEquals(this.getNumRows()); DenseVector result = new DenseVector(getNumColumns()); vector.compress(); int[] locs = vector.getIndices(); double[] vals = vector.getValues(); final int numColumns = this.getNumColumns(); for (int i = 0; i < numColumns; ++i) { double entry = 0; for (int j = 0; j < locs.length; ++j) { entry += vals[j] * rows[locs[j]].get(i); } result.setElement(i, entry); } return result; }
@Override public final Vector preTimes( final SparseVector vector) { vector.assertDimensionalityEquals(this.getNumRows()); DenseVector result = new DenseVector(getNumColumns()); vector.compress(); int[] locs = vector.getIndices(); double[] vals = vector.getValues(); final int numColumns = this.getNumColumns(); for (int i = 0; i < numColumns; ++i) { double entry = 0; for (int j = 0; j < locs.length; ++j) { entry += vals[j] * rows[locs[j]].get(i); } result.setElement(i, entry); } return result; }
/** * {@inheritDoc} * * NOTE: Upon completion this is in the compressed Yale format. * * @return {@inheritDoc} */ @Override public final Vector preTimes( final DenseVector vector) { vector.assertDimensionalityEquals(this.getNumRows()); if (!isCompressed()) { compress(); } DenseVector result = new DenseVector(getNumColumns()); int row = 0; for (int i = 0; i < values.length; ++i) { while (i >= firstIndicesForRows[row + 1]) { ++row; } result.setElement(columnIndices[i], result.get(columnIndices[i]) + vector.get(row) * values[i]); } return result; }
/** * {@inheritDoc} * * NOTE: Upon completion this is in the compressed Yale format. * * @return {@inheritDoc} */ @Override public final Vector preTimes( final DenseVector vector) { vector.assertDimensionalityEquals(this.getNumRows()); if (!isCompressed()) { compress(); } DenseVector result = new DenseVector(getNumColumns()); int row = 0; for (int i = 0; i < values.length; ++i) { while (i >= firstIndicesForRows[row + 1]) { ++row; } result.setElement(columnIndices[i], result.get(columnIndices[i]) + vector.get(row) * values[i]); } return result; }