|
||||||||||
| 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.BandMatrix
public class BandMatrix
Banded matrix. The banded matrix is a useful sparse structure for many kinds of direct computations, however it should only be used if the band is sufficiently narrow as wide bands actually wastes both memory and compute time. The matrix
| a11 | a12 | |||
| a21 | a22 | a23 | ||
| a31 | a32 | a33 | a34 | |
| a42 | a43 | a44 | a45 | |
| a53 | a54 | a55 |
has two lower diagonals and one upper diagonal. It will be stored in the array
| a11 | a21 | a31 | a21 | a22 | a32 | a42 | a23 | a33 | a43 | a53 | a34 | a44 | a54 | a45 | a55 |
Empty cells are allocated, but never referenced.
| 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 | |
|---|---|
BandMatrix(int n,
int kl,
int ku)
Constructor for BandMatrix |
|
BandMatrix(Matrix A,
int kl,
int ku)
Constructor for BandMatrix |
|
BandMatrix(Matrix A,
int kl,
int ku,
boolean deep)
Constructor for BandMatrix |
|
| Method Summary | |
|---|---|
void |
add(int row,
int column,
double value)
A(row,column) += value |
BandMatrix |
copy()
Creates a deep copy of the matrix |
double |
get(int row,
int column)
Returns A(row,column) |
double[] |
getData()
Returns the matrix contents |
java.util.Iterator<MatrixEntry> |
iterator()
|
Vector |
multAdd(double alpha,
Vector x,
Vector y)
y = alpha*A*x + y |
int |
numSubDiagonals()
Returns the number of lower diagonals |
int |
numSuperDiagonals()
Returns the number of upper diagonals |
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. |
Vector |
transMultAdd(double alpha,
Vector x,
Vector y)
y = alpha*AT*x + y |
Matrix |
transpose()
Transposes the matrix in-place. |
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, max, max, mult, mult, mult, mult, multAdd, multAdd, multAdd, norm, norm1, normF, normInf, numColumns, numRows, rank1, rank1, rank1, rank1, rank1, rank1, rank2, rank2, rank2, rank2, scale, set, toString, transABmult, transABmult, transABmultAdd, transABmultAdd, transAmult, transAmult, transAmultAdd, transAmultAdd, transBmult, transBmult, transBmultAdd, transBmultAdd, transMult, transMult, transMultAdd, 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 |
|---|
public BandMatrix(int n,
int kl,
int ku)
n - Size of the matrix. Since the matrix must be square, this
equals both the number of rows and columnskl - Number of bands above the main diagonal (superdiagonals)ku - Number of bands below the main diagonal (subdiagonals)
public BandMatrix(Matrix A,
int kl,
int ku)
A - Matrix to copy contents from. Only the parts of A
that lie within the allocated band are copied over, the rest
is ignoredkl - Number of bands above the main diagonal (superdiagonals)ku - Number of bands below the main diagonal (subdiagonals)
public BandMatrix(Matrix A,
int kl,
int ku,
boolean deep)
A - Matrix to copy contents from. Only the parts of A
that lie within the allocated band are copied over, the rest
is ignoredkl - Number of bands above the main diagonal (superdiagonals)ku - Number of bands below the main diagonal (subdiagonals)deep - True for a deep copy. For shallow copies, A
must be a banded matrix| Method Detail |
|---|
public BandMatrix copy()
Matrix
copy in interface Matrixcopy in class AbstractMatrixpublic Matrix zero()
Matrix
zero in interface Matrix
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 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 transpose()
Matrix
transpose in interface Matrixtranspose in class AbstractMatrixpublic double[] getData()
public void add(int row,
int column,
double value)
MatrixA(row,column) += value
add in interface Matrixadd in class AbstractMatrix
public void set(int row,
int column,
double value)
MatrixA(row,column) = value
set in interface Matrixset in class AbstractMatrix
public double get(int row,
int column)
MatrixA(row,column)
get in interface Matrixget in class AbstractMatrixpublic int numSubDiagonals()
public int numSuperDiagonals()
public Matrix set(Matrix B)
MatrixA=B. The matrices must be of the same size
set in interface Matrixset in class AbstractMatrixpublic java.util.Iterator<MatrixEntry> iterator()
iterator in interface java.lang.Iterable<MatrixEntry>iterator in class AbstractMatrix
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||