no.uib.cipr.matrix
Class TridiagMatrix

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

public class TridiagMatrix
extends AbstractMatrix

Tridiagonal matrix. Stored in three arrays, one of length n for the diagonal, two of length n-1 for the superdiagonal and subdiagonal entries.


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
TridiagMatrix(int n)
          Constructor for TridiagMatrix
TridiagMatrix(Matrix A)
          Constructor for TridiagMatrix
TridiagMatrix(Matrix A, boolean deep)
          Constructor for TridiagMatrix
 
Method Summary
 void add(int row, int column, double value)
          A(row,column) += value
 TridiagMatrix copy()
          Creates a deep copy of the matrix
 double get(int row, int column)
          Returns A(row,column)
 double[] getDiagonal()
          Returns the diagonal entries.
 double[] getSubDiagonal()
          Returns the sub diagonal entries.
 double[] getSuperDiagonal()
          Returns the super diagonal entries.
 java.util.Iterator<MatrixEntry> iterator()
           
 void set(int row, int column, double value)
          A(row,column) = value
 Matrix solve(Matrix B, Matrix X)
          X = A\B.
 Vector solve(Vector b, Vector x)
          x = A\b.
 Matrix transpose()
          Transposes the matrix in-place.
 TridiagMatrix 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, multAdd, norm, norm1, normF, normInf, numColumns, numRows, rank1, rank1, rank1, rank1, rank1, rank1, rank2, rank2, rank2, rank2, scale, set, set, toString, transABmult, transABmult, transABmultAdd, transABmultAdd, transAmult, transAmult, transAmultAdd, transAmultAdd, transBmult, transBmult, transBmultAdd, transBmultAdd, transMult, transMult, transMultAdd, 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

TridiagMatrix

public TridiagMatrix(int n)
Constructor for TridiagMatrix

Parameters:
n - Size of the matrix. Since the matrix must be square, this equals both the number of rows and columns

TridiagMatrix

public TridiagMatrix(Matrix A)
Constructor for TridiagMatrix

Parameters:
A - Matrix to copy from. Only the tridiagonal part is copied

TridiagMatrix

public TridiagMatrix(Matrix A,
                     boolean deep)
Constructor for TridiagMatrix

Parameters:
A - Matrix to copy from. Only the tridiagonal part is copied
deep - True for a deep copy, else it's shallow. For shallow copies, A must be a TridiagMatrix
Method Detail

getDiagonal

public double[] getDiagonal()
Returns the diagonal entries. Length equal n


getSubDiagonal

public double[] getSubDiagonal()
Returns the sub diagonal entries. Length equal n-1


getSuperDiagonal

public double[] getSuperDiagonal()
Returns the super diagonal entries. Length equal n-1


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

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

copy

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

zero

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

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
Overrides:
solve in class AbstractMatrix
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

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

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

iterator

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