no.uib.cipr.matrix.sparse
Class CompRowMatrix

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

public class CompRowMatrix
extends AbstractMatrix

Compressed row storage (CRS) matrix


Nested Class Summary
 
Nested classes/interfaces inherited from interface no.uib.cipr.matrix.Matrix
Matrix.Norm
 
Field Summary
 
Fields inherited from class no.uib.cipr.matrix.AbstractMatrix
numColumns, numRows
 
Constructor Summary
CompRowMatrix(int numRows, int numColumns, int[][] nz)
          Constructor for CompRowMatrix
CompRowMatrix(Matrix A)
          Constructor for CompRowMatrix
CompRowMatrix(Matrix A, boolean deep)
          Constructor for CompRowMatrix
CompRowMatrix(MatrixVectorReader r)
          Constructor for CompRowMatrix
 
Method Summary
 void add(int row, int column, double value)
          A(row,column) += value
 CompRowMatrix copy()
          Creates a deep copy of the matrix
 double get(int row, int column)
          Returns A(row,column)
 int[] getColumnIndices()
          Returns the column indices
 double[] getData()
          Returns the internal data storage
 int[] getRowPointers()
          Returns the row pointers
 java.util.Iterator<MatrixEntry> iterator()
           
 Matrix mult(Matrix B, Matrix C)
          C = A*B
 Vector mult(Vector x, Vector y)
          y = A*x
 Vector multAdd(double alpha, Vector x, Vector y)
          y = alpha*A*x + y
 void set(int row, int column, double value)
          A(row,column) = value
 Matrix set(Matrix B)
          A=B.
 Vector transMult(Vector x, Vector y)
          y = AT*x
 Vector transMultAdd(double alpha, Vector x, Vector y)
          y = alpha*AT*x + y
 CompRowMatrix zero()
          Zeros all the entries in the matrix, while preserving any underlying structure.
 
Methods inherited from class no.uib.cipr.matrix.AbstractMatrix
add, add, check, checkMultAdd, checkMultAdd, checkRank1, checkRank1, checkRank2, checkRank2, checkSize, checkSolve, checkSolve, checkTransABmultAdd, checkTransAmultAdd, checkTransBmultAdd, checkTransMultAdd, checkTranspose, checkTranspose, checkTransRank1, checkTransRank2, isSquare, max, max, mult, mult, multAdd, multAdd, multAdd, norm, norm1, normF, normInf, numColumns, numRows, rank1, rank1, rank1, rank1, rank1, rank1, rank2, rank2, rank2, rank2, scale, set, solve, solve, toString, transABmult, transABmult, transABmultAdd, transABmultAdd, transAmult, transAmult, transAmultAdd, transAmultAdd, transBmult, transBmult, transBmultAdd, transBmultAdd, transMult, transMultAdd, transpose, transpose, transRank1, transRank1, transRank2, transRank2, transSolve, transSolve
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

CompRowMatrix

public CompRowMatrix(MatrixVectorReader r)
              throws java.io.IOException
Constructor for CompRowMatrix

Parameters:
r - Reader to get sparse matrix from
Throws:
java.io.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 Detail

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
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
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 java.util.Iterator<MatrixEntry> iterator()
Specified by:
iterator in interface java.lang.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