no.uib.cipr.matrix
Class UnitUpperTriangDenseMatrix

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

public class UnitUpperTriangDenseMatrix
extends UpperTriangDenseMatrix

Unit upper triangular dense matrix. Almost the same as the UpperTriangDenseMatrix, but additionally assumes the main diagonal to be all ones. However it does not access it, so it may be actually be different.


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
UnitUpperTriangDenseMatrix(int n)
          Constructor for UnitUpperTriangDenseMatrix
UnitUpperTriangDenseMatrix(Matrix A)
          Constructor for UnitUpperTriangDenseMatrix.
UnitUpperTriangDenseMatrix(Matrix A, boolean deep)
          Constructor for UnitUpperTriangDenseMatrix.
 
Method Summary
 void add(int row, int column, double value)
          A(row,column) += value
 UnitUpperTriangDenseMatrix 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()
           
 Matrix mult(double alpha, Matrix B, Matrix C)
          C = alpha*A*B
 Vector mult(double alpha, Vector x, Vector y)
          y = alpha*A*x
 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 transAmult(double alpha, Matrix B, Matrix C)
          C = alpha*AT*B
 Vector transMult(double alpha, Vector x, Vector y)
          y = alpha*AT*x
 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, max, max, mult, mult, multAdd, 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, transAmultAdd, transAmultAdd, transBmult, transBmult, transBmultAdd, transBmultAdd, transMult, transMultAdd, transMultAdd, transpose, transpose, transRank1, transRank1, transRank2, transRank2
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UnitUpperTriangDenseMatrix

public UnitUpperTriangDenseMatrix(int n)
Constructor for UnitUpperTriangDenseMatrix

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

UnitUpperTriangDenseMatrix

public UnitUpperTriangDenseMatrix(Matrix A)
Constructor for UnitUpperTriangDenseMatrix. Matrix is copied from the supplied matrix

Parameters:
A - Matrix to copy from. Only the strictly upper triangular part is copied

UnitUpperTriangDenseMatrix

public UnitUpperTriangDenseMatrix(Matrix A,
                                  boolean deep)
Constructor for UnitUpperTriangDenseMatrix. Matrix is copied from the supplied matrix

Parameters:
A - Matrix to copy from. Only the strictly upper triangular part is copied
deep - If true, A is copied, else a shallow copy is made and the matrices share underlying storage. For this, A must be a dense matrix
Method Detail

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 UpperTriangDenseMatrix

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 UpperTriangDenseMatrix

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 UpperTriangDenseMatrix

copy

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

Specified by:
copy in interface Matrix
Overrides:
copy in class UpperTriangDenseMatrix
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
Returns:
A

mult

public Vector mult(double alpha,
                   Vector x,
                   Vector y)
Description copied from interface: Matrix
y = alpha*A*x

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

transMult

public Vector transMult(double alpha,
                        Vector x,
                        Vector y)
Description copied from interface: Matrix
y = alpha*AT*x

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

mult

public Matrix mult(double alpha,
                   Matrix B,
                   Matrix C)
Description copied from interface: Matrix
C = alpha*A*B

Specified by:
mult in interface Matrix
Overrides:
mult in class AbstractMatrix
B - 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()
Returns:
C

transAmult

public Matrix transAmult(double alpha,
                         Matrix B,
                         Matrix C)
Description copied from interface: Matrix
C = alpha*AT*B

Specified by:
transAmult in interface Matrix
Overrides:
transAmult in class AbstractMatrix
B - 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()
Returns:
C

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

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

iterator

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

getData

public double[] getData()
Returns the matrix contents. Ordering depends on the underlying storage assumptions


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