|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectno.uib.cipr.matrix.AbstractMatrix
no.uib.cipr.matrix.UpperSymmDenseMatrix
public class UpperSymmDenseMatrix
Upper symmetrix dense matrix. It has the same storage layout as the
DenseMatrix, but only refers to
elements above or on the main diagonal. The remaining elements are never
accessed nor changed, and is known only by symmetry.
| 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 | |
|---|---|
UpperSymmDenseMatrix(int n)
Constructor for UpperSymmDenseMatrix |
|
UpperSymmDenseMatrix(Matrix A)
Constructor for UpperSymmDenseMatrix |
|
UpperSymmDenseMatrix(Matrix A,
boolean deep)
Constructor for UpperSymmDenseMatrix |
|
| Method Summary | |
|---|---|
void |
add(int row,
int column,
double value)
A(row,column) += value |
UpperSymmDenseMatrix |
copy()
Creates a deep copy of the matrix |
double |
get(int row,
int column)
Returns A(row,column) |
double[] |
getData()
Returns the matrix contents. |
Matrix |
multAdd(double alpha,
Matrix B,
Matrix C)
C = alpha*A*B + C |
Vector |
multAdd(double alpha,
Vector x,
Vector y)
y = alpha*A*x + y |
Matrix |
rank1(double alpha,
Matrix C)
A = alpha*C*CT + A. |
Matrix |
rank1(double alpha,
Vector x,
Vector y)
A = alpha*x*yT + A. |
Matrix |
rank2(double alpha,
Matrix B,
Matrix C)
A = alpha*B*CT + alpha*C*BT + A. |
Matrix |
rank2(double alpha,
Vector x,
Vector y)
A = alpha*x*yT + alpha*y*xT + A. |
void |
set(int row,
int column,
double value)
A(row,column) = value |
Matrix |
set(Matrix B)
A=B. |
Matrix |
solve(Matrix B,
Matrix X)
X = A\B. |
Vector |
solve(Vector b,
Vector x)
x = A\b. |
Matrix |
transAmultAdd(double alpha,
Matrix B,
Matrix C)
C = alpha*AT*B + C |
Vector |
transMultAdd(double alpha,
Vector x,
Vector y)
y = alpha*AT*x + y |
Matrix |
transpose()
Transposes the matrix in-place. |
Matrix |
transRank1(double alpha,
Matrix C)
A = alpha*CT*C + A The matrices must be
square and of the same size |
Matrix |
transRank2(double alpha,
Matrix B,
Matrix C)
A = alpha*BT*C + alpha*CT*B + A. |
Matrix |
transSolve(Matrix B,
Matrix X)
X = AT\B. |
Vector |
transSolve(Vector b,
Vector x)
x = AT\b. |
Matrix |
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, iterator, max, max, mult, mult, mult, mult, multAdd, multAdd, norm, norm1, normF, normInf, numColumns, numRows, rank1, rank1, rank1, rank1, rank2, rank2, scale, set, toString, transABmult, transABmult, transABmultAdd, transABmultAdd, transAmult, transAmult, transAmultAdd, transBmult, transBmult, transBmultAdd, transBmultAdd, transMult, transMult, transMultAdd, transpose, transRank1, transRank2 |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
| Constructor Detail |
|---|
public UpperSymmDenseMatrix(int n)
n - Size of the matrix. Since the matrix must be square, this
equals both the number of rows and columnspublic UpperSymmDenseMatrix(Matrix A)
A - Matrix to copy. It must be a square matrix, and only the upper
triangular part is copied
public UpperSymmDenseMatrix(Matrix A,
boolean deep)
A - Matrix to copy. It must be a square matrix, and only the upper
triangular part is copieddeep - If false, a shallow copy is made. In that case, A
must be a dense matrix| Method Detail |
|---|
public void add(int row,
int column,
double value)
MatrixA(row,column) += value
add in interface Matrix
public double get(int row,
int column)
MatrixA(row,column)
get in interface Matrix
public void set(int row,
int column,
double value)
MatrixA(row,column) = value
set in interface Matrixpublic UpperSymmDenseMatrix copy()
Matrix
copy in interface Matrixcopy in class AbstractMatrix
public Matrix multAdd(double alpha,
Matrix B,
Matrix C)
MatrixC = alpha*A*B + C
multAdd in interface MatrixmultAdd in class AbstractMatrixB - 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()
public Matrix transAmultAdd(double alpha,
Matrix B,
Matrix C)
MatrixC = alpha*AT*B + C
transAmultAdd in interface MatrixtransAmultAdd in class AbstractMatrixB - Matrix such that B.numRows() == A.numRows() and
B.numColumns() == C.numColumns()C - Matrix such that C.numRows() == A.numColumns()
and B.numColumns() == C.numColumns()
public Matrix rank1(double alpha,
Vector x,
Vector y)
MatrixA = alpha*x*yT + A. The matrix must be
square, and the vectors of the same length
rank1 in interface Matrixrank1 in class AbstractMatrix
public Matrix rank2(double alpha,
Vector x,
Vector y)
MatrixA = alpha*x*yT + alpha*y*xT + A.
The matrix must be square, and the vectors of the same length
rank2 in interface Matrixrank2 in class AbstractMatrix
public Vector multAdd(double alpha,
Vector x,
Vector y)
Matrixy = alpha*A*x + y
multAdd in interface MatrixmultAdd in class AbstractMatrixx - Vector of size A.numColumns()y - Vector of size A.numRows()
public Vector transMultAdd(double alpha,
Vector x,
Vector y)
Matrixy = alpha*AT*x + y
transMultAdd in interface MatrixtransMultAdd in class AbstractMatrixx - Vector of size A.numRows()y - Vector of size A.numColumns()
public Matrix rank1(double alpha,
Matrix C)
MatrixA = alpha*C*CT + A. The matrices must be
square and of the same size
rank1 in interface Matrixrank1 in class AbstractMatrix
public Matrix transRank1(double alpha,
Matrix C)
MatrixA = alpha*CT*C + A The matrices must be
square and of the same size
transRank1 in interface MatrixtransRank1 in class AbstractMatrix
public Matrix rank2(double alpha,
Matrix B,
Matrix C)
MatrixA = alpha*B*CT + alpha*C*BT + A.
This matrix must be square
rank2 in interface Matrixrank2 in class AbstractMatrixB - Matrix with the same number of rows as A and
the same number of columns as CC - Matrix with the same number of rows as A and
the same number of columns as B
public Matrix transRank2(double alpha,
Matrix B,
Matrix C)
MatrixA = alpha*BT*C + alpha*CT*B + A.
This matrix must be square
transRank2 in interface MatrixtransRank2 in class AbstractMatrixB - Matrix with the same number of rows as C and
the same number of columns as AC - Matrix with the same number of rows as B and
the same number of columns as A
public Matrix solve(Matrix B,
Matrix X)
MatrixX = A\B. Not all matrices support this operation, those
that do not throw UnsupportedOperationException. Note
that it is often more efficient to use a matrix decomposition and its
associated solver
solve in interface Matrixsolve in class AbstractMatrixB - Matrix with the same number of rows as A, and
the same number of columns as XX - Matrix with a number of rows equal A.numColumns(),
and the same number of columns as B
public Vector solve(Vector b,
Vector x)
Matrixx = A\b. Not all matrices support this operation, those
that do not throw UnsupportedOperationException. Note
that it is often more efficient to use a matrix decomposition and its
associated solver
solve in interface Matrixsolve in class AbstractMatrixb - Vector of size A.numRows()x - Vector of size A.numColumns()
public Matrix transSolve(Matrix B,
Matrix X)
MatrixX = AT\B. Not all matrices support this
operation, those that do not throw
UnsupportedOperationException. Note that it is often more
efficient to use a matrix decomposition and its associated transpose
solver
transSolve in interface MatrixtransSolve in class AbstractMatrixB - Matrix with a number of rows equal A.numColumns(),
and the same number of columns as XX - Matrix with the same number of rows as A, and
the same number of columns as B
public Vector transSolve(Vector b,
Vector x)
Matrixx = AT\b. Not all matrices support this
operation, those that do not throw
UnsupportedOperationException. Note that it is often more
efficient to use a matrix decomposition and its associated solver
transSolve in interface MatrixtransSolve in class AbstractMatrixb - Vector of size A.numColumns()x - Vector of size A.numRows()
public Matrix transpose()
Matrix
transpose in interface Matrixtranspose in class AbstractMatrixpublic double[] getData()
public Matrix set(Matrix B)
MatrixA=B. The matrices must be of the same size
set in interface Matrixset in class AbstractMatrixpublic Matrix zero()
Matrix
zero in interface Matrixzero in class AbstractMatrix
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||