no.uib.cipr.matrix
Class UpperSPDBandMatrix

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

public class UpperSPDBandMatrix
extends UpperSymmBandMatrix

Upper symmetrical positive definite banded matrix. It does not enforce this property (except for symmetry), and has the same storage layout as UpperSymmBandMatrix.


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
UpperSPDBandMatrix(int n, int kd)
          Constructor for UpperSPDBandMatrix
UpperSPDBandMatrix(Matrix A, int kd)
          Constructor for UpperSPDBandMatrix
UpperSPDBandMatrix(Matrix A, int kd, boolean deep)
          Constructor for UpperSPDBandMatrix
 
Method Summary
 UpperSPDBandMatrix copy()
          Creates a deep copy of the matrix
 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
 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 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.UpperSymmBandMatrix
add, get, set
 
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
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UpperSPDBandMatrix

public UpperSPDBandMatrix(int n,
                          int kd)
Constructor for UpperSPDBandMatrix

Parameters:
n - Size of the matrix. Since the matrix must be square, this equals both the number of rows and columns
kd - Number of bands off the main diagonal (off diagonals)

UpperSPDBandMatrix

public UpperSPDBandMatrix(Matrix A,
                          int kd)
Constructor for UpperSPDBandMatrix

Parameters:
A - Matrix to copy contents from. Only the parts of A that lie within the allocated band are copied over, the rest is ignored
kd - Number of bands off the main diagonal (off diagonals)

UpperSPDBandMatrix

public UpperSPDBandMatrix(Matrix A,
                          int kd,
                          boolean deep)
Constructor for UpperSPDBandMatrix

Parameters:
A - Matrix to copy contents from. Only the parts of A that lie within the allocated band are copied over, the rest is ignored
kd - Number of bands off the main diagonal (off diagonals)
deep - True for a deep copy. For shallow copies, A must be a banded matrix
Method Detail

copy

public UpperSPDBandMatrix copy()
Description copied from interface: Matrix
Creates a deep copy of the matrix

Specified by:
copy in interface Matrix
Overrides:
copy in class UpperSymmBandMatrix
Returns:
A

solve

public Matrix solve(Matrix B,
                    Matrix X)
Description copied from interface: Matrix
X = 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

Specified by:
solve in interface Matrix
Parameters:
B - Matrix with the same number of rows as A, and the same number of columns as X
X - Matrix with a number of rows equal A.numColumns(), and the same number of columns as B
Returns:
X

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

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

iterator

public java.util.Iterator<MatrixEntry> iterator()
Specified by:
iterator in interface java.lang.Iterable<MatrixEntry>

solve

public Vector solve(Vector b,
                    Vector x)
Description copied from interface: Matrix
x = 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

Specified by:
solve in interface Matrix
Overrides:
solve in class AbstractMatrix
Parameters:
b - Vector of size A.numRows()
x - Vector of size A.numColumns()
Returns:
x

transSolve

public Matrix transSolve(Matrix B,
                         Matrix X)
Description copied from interface: Matrix
X = 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

Specified by:
transSolve in interface Matrix
Overrides:
transSolve in class AbstractMatrix
Parameters:
B - Matrix with a number of rows equal A.numColumns(), and the same number of columns as X
X - Matrix with the same number of rows as A, and the same number of columns as B
Returns:
X

transSolve

public Vector transSolve(Vector b,
                         Vector x)
Description copied from interface: Matrix
x = 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

Specified by:
transSolve in interface Matrix
Overrides:
transSolve in class AbstractMatrix
Parameters:
b - Vector of size A.numColumns()
x - Vector of size A.numRows()
Returns:
x

transpose

public Matrix transpose()
Description copied from interface: Matrix
Transposes the matrix in-place. In most cases, the matrix must be square for this to work.

Specified by:
transpose in interface Matrix
Overrides:
transpose in class AbstractMatrix
Returns:
This matrix

getData

public double[] getData()
Returns the matrix contents


numSubDiagonals

public int numSubDiagonals()
Returns the number of lower diagonals


numSuperDiagonals

public int numSuperDiagonals()
Returns the number of upper diagonals


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

zero

public Matrix 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