Class CompRowMatrix

java.lang.Object
no.uib.cipr.matrix.AbstractMatrix
no.uib.cipr.matrix.sparse.CompRowMatrix
All Implemented Interfaces:
Iterable<MatrixEntry>, Matrix

public class CompRowMatrix extends AbstractMatrix
Compressed row storage (CRS) matrix
  • Constructor Details

    • CompRowMatrix

      public CompRowMatrix(MatrixVectorReader r) throws IOException
      Constructor for CompRowMatrix
      Parameters:
      r - Reader to get sparse matrix from
      Throws:
      IOException
    • CompRowMatrix

      public CompRowMatrix(int numRows, int numColumns, int[][] nz)
      Constructor for CompRowMatrix
      Parameters:
      numRows - Number of rows
      numColumns - Number of columns
      nz - The nonzero column indices on each row
    • CompRowMatrix

      public CompRowMatrix(Matrix A, boolean deep)
      Constructor for CompRowMatrix
      Parameters:
      A - Copies from this matrix
      deep - True if the copy is to be deep. If it is a shallow copy, A must be a CompRowMatrix
    • CompRowMatrix

      public CompRowMatrix(Matrix A)
      Constructor for CompRowMatrix
      Parameters:
      A - Copies from this matrix. The copy will be deep
  • Method Details

    • getColumnIndices

      public int[] getColumnIndices()
      Returns the column indices
    • getRowPointers

      public int[] getRowPointers()
      Returns the row pointers
    • getData

      public double[] getData()
      Returns the internal data storage
    • mult

      public Matrix mult(Matrix B, Matrix C)
      Description copied from interface: Matrix
      C = A*B
      Specified by:
      mult in interface Matrix
      Overrides:
      mult in class AbstractMatrix
      Parameters:
      B - Matrix such that B.numRows() == A.numColumns() and B.numColumns() == C.numColumns()
      C - Matrix such that C.numRows() == A.numRows() and B.numColumns() == C.numColumns()
      Returns:
      C
    • mult

      public Vector mult(Vector x, Vector y)
      Description copied from interface: Matrix
      y = A*x
      Specified by:
      mult in interface Matrix
      Overrides:
      mult in class AbstractMatrix
      Parameters:
      x - Vector of size A.numColumns()
      y - Vector of size A.numRows()
      Returns:
      y
    • multAdd

      public Vector multAdd(double alpha, Vector x, Vector y)
      Description copied from interface: Matrix
      y = alpha*A*x + y
      Specified by:
      multAdd in interface Matrix
      Overrides:
      multAdd in class AbstractMatrix
      Parameters:
      x - Vector of size A.numColumns()
      y - Vector of size A.numRows()
      Returns:
      y
    • transMult

      public Vector transMult(Vector x, Vector y)
      Description copied from interface: Matrix
      y = AT*x
      Specified by:
      transMult in interface Matrix
      Overrides:
      transMult in class AbstractMatrix
      Parameters:
      x - Vector of size A.numRows()
      y - Vector of size A.numColumns()
      Returns:
      y
    • transMultAdd

      public Vector transMultAdd(double alpha, Vector x, Vector y)
      Description copied from interface: Matrix
      y = alpha*AT*x + y
      Specified by:
      transMultAdd in interface Matrix
      Overrides:
      transMultAdd in class AbstractMatrix
      Parameters:
      x - Vector of size A.numRows()
      y - Vector of size A.numColumns()
      Returns:
      y
    • set

      public void set(int row, int column, double value)
      Description copied from interface: Matrix
      A(row,column) = value
      Specified by:
      set in interface Matrix
      Overrides:
      set in class AbstractMatrix
    • add

      public void add(int row, int column, double value)
      Description copied from interface: Matrix
      A(row,column) += value
      Specified by:
      add in interface Matrix
      Overrides:
      add in class AbstractMatrix
    • get

      public double get(int row, int column)
      Description copied from interface: Matrix
      Returns A(row,column)
      Specified by:
      get in interface Matrix
      Overrides:
      get in class AbstractMatrix
    • copy

      public CompRowMatrix copy()
      Description copied from interface: Matrix
      Creates a deep copy of the matrix
      Specified by:
      copy in interface Matrix
      Overrides:
      copy in class AbstractMatrix
      Returns:
      A
    • iterator

      public Iterator<MatrixEntry> iterator()
      Specified by:
      iterator in interface Iterable<MatrixEntry>
      Overrides:
      iterator in class AbstractMatrix
    • zero

      public CompRowMatrix zero()
      Description copied from interface: Matrix
      Zeros all the entries in the matrix, while preserving any underlying structure. Useful for general, unstructured matrices.
      Specified by:
      zero in interface Matrix
      Overrides:
      zero in class AbstractMatrix
      Returns:
      A
    • set

      public Matrix set(Matrix B)
      Description copied from interface: Matrix
      A=B. The matrices must be of the same size
      Specified by:
      set in interface Matrix
      Overrides:
      set in class AbstractMatrix
      Returns:
      A