Package no.uib.cipr.matrix.sparse
Class CompRowMatrix
- java.lang.Object
-
- no.uib.cipr.matrix.AbstractMatrix
-
- 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
Constructors Constructor Description CompRowMatrix(int numRows, int numColumns, int[][] nz)
Constructor for CompRowMatrixCompRowMatrix(MatrixVectorReader r)
Constructor for CompRowMatrixCompRowMatrix(Matrix A)
Constructor for CompRowMatrixCompRowMatrix(Matrix A, boolean deep)
Constructor for CompRowMatrix
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(int row, int column, double value)
A(row,column) += value
CompRowMatrix
copy()
Creates a deep copy of the matrixdouble
get(int row, int column)
ReturnsA(row,column)
int[]
getColumnIndices()
Returns the column indicesdouble[]
getData()
Returns the internal data storageint[]
getRowPointers()
Returns the row pointersjava.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
-
-
-
-
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 rowsnumColumns
- Number of columnsnz
- The nonzero column indices on each row
-
CompRowMatrix
public CompRowMatrix(Matrix A, boolean deep)
Constructor for CompRowMatrix- Parameters:
A
- Copies from this matrixdeep
- True if the copy is to be deep. If it is a shallow copy,A
must be aCompRowMatrix
-
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 interfaceMatrix
- Overrides:
mult
in classAbstractMatrix
- Parameters:
B
- Matrix such thatB.numRows() == A.numColumns()
andB.numColumns() == C.numColumns()
C
- Matrix such thatC.numRows() == A.numRows()
andB.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 interfaceMatrix
- Overrides:
mult
in classAbstractMatrix
- Parameters:
x
- Vector of sizeA.numColumns()
y
- Vector of sizeA.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 interfaceMatrix
- Overrides:
multAdd
in classAbstractMatrix
x
- Vector of sizeA.numColumns()
y
- Vector of sizeA.numRows()
- Returns:
- y
-
transMult
public Vector transMult(Vector x, Vector y)
Description copied from interface:Matrix
y = AT*x
- Specified by:
transMult
in interfaceMatrix
- Overrides:
transMult
in classAbstractMatrix
- Parameters:
x
- Vector of sizeA.numRows()
y
- Vector of sizeA.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 interfaceMatrix
- Overrides:
transMultAdd
in classAbstractMatrix
x
- Vector of sizeA.numRows()
y
- Vector of sizeA.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 interfaceMatrix
- Overrides:
set
in classAbstractMatrix
-
add
public void add(int row, int column, double value)
Description copied from interface:Matrix
A(row,column) += value
- Specified by:
add
in interfaceMatrix
- Overrides:
add
in classAbstractMatrix
-
get
public double get(int row, int column)
Description copied from interface:Matrix
ReturnsA(row,column)
- Specified by:
get
in interfaceMatrix
- Overrides:
get
in classAbstractMatrix
-
copy
public CompRowMatrix copy()
Description copied from interface:Matrix
Creates a deep copy of the matrix- Specified by:
copy
in interfaceMatrix
- Overrides:
copy
in classAbstractMatrix
- Returns:
- A
-
iterator
public java.util.Iterator<MatrixEntry> iterator()
- Specified by:
iterator
in interfacejava.lang.Iterable<MatrixEntry>
- Overrides:
iterator
in classAbstractMatrix
-
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 interfaceMatrix
- Overrides:
zero
in classAbstractMatrix
- Returns:
- A
-
-