org.jutil.math.matrix
Interface QRDecomposition

All Known Implementing Classes:
HouseholderQRDecomposition

public interface QRDecomposition

This class represents a QR factorization of a matrix. The methods Qtimes and QtranposeTimes are provide because the matrix Q itself isn't interesting most of the times, and isn't required explicitly to calculate Q * x and transpose(Q) * x.

Version:
$Revision: 1.3 $
Author:
Marko van Dooren

Field Summary
static java.lang.String CVS_REVISION
           
 
Method Summary
 Matrix Q()
          public invariant Q().getNbColumns() == R().getNbRows();

public behavior

post \result != null;
post \result.getNbRows() == R().getNbRows();
post \result.getNbColumns() == R().getNbRows();
post \result.isOrthoNormal();
Return the Q matrix of this QR factorization.
 Matrix Qreduced()
          public behavior

post \result.equals(Q().subMatrix(1,1,Q().getNbRows(), R().getNbColumns()));
Return the reduced Q matrix.
 Column QreducedTimes(Column column)
          public behavior

pre column != null;
pre column.size() = Qreduced().getNbColumns();

post \result.equals(Qreduced().times(column));
Return Qreduced().times(column)
 Column QreducedTransposeTimes(Column column)
          public behavior

pre column != null;
pre column.size() = Qreduced().getNbRows();

post \result.equals(Qreduced().returnTranspose().times(column));
Return Qreduced().returnTranspose().times(column)
 Column Qtimes(Column column)
          public behavior

pre column != null;
pre column.size() = Q().getNbColumns();

post \result.equals(Q().times(column));
Return Q().times(column)
 Column QtransposeTimes(Column column)
          public behavior

pre column != null;
pre column.size() = Q().getNbRows();

post \result.equals(Q().returnTranspose().times(column));
Return Q().returnTranspose().times(column)
 Matrix R()
          public behavior

post \result != null;
post \result.isUpperTriangular();
Return the R matrix of this QR factorization.
 Matrix Rreduced()
          public behavior

post \result.equals(R().subMatrix(1,1,R().getNbColumns(), R().getNbColumns()));
Return the reduced R matrix.
 

Field Detail

CVS_REVISION

public static final java.lang.String CVS_REVISION
Method Detail

Q

public Matrix Q()
public invariant Q().getNbColumns() == R().getNbRows();

public behavior

post \result != null;
post \result.getNbRows() == R().getNbRows();
post \result.getNbColumns() == R().getNbRows();
post \result.isOrthoNormal();
Return the Q matrix of this QR factorization.

R

public Matrix R()
public behavior

post \result != null;
post \result.isUpperTriangular();
Return the R matrix of this QR factorization.

Qreduced

public Matrix Qreduced()
public behavior

post \result.equals(Q().subMatrix(1,1,Q().getNbRows(), R().getNbColumns()));
Return the reduced Q matrix.

Rreduced

public Matrix Rreduced()
public behavior

post \result.equals(R().subMatrix(1,1,R().getNbColumns(), R().getNbColumns()));
Return the reduced R matrix.

Qtimes

public Column Qtimes(Column column)
public behavior

pre column != null;
pre column.size() = Q().getNbColumns();

post \result.equals(Q().times(column));
Return Q().times(column)
Parameters:
column - The vector with which Q() must be multiplied

QreducedTimes

public Column QreducedTimes(Column column)
public behavior

pre column != null;
pre column.size() = Qreduced().getNbColumns();

post \result.equals(Qreduced().times(column));
Return Qreduced().times(column)
Parameters:
column - The vector with which Qreduced must be multiplied

QtransposeTimes

public Column QtransposeTimes(Column column)
public behavior

pre column != null;
pre column.size() = Q().getNbRows();

post \result.equals(Q().returnTranspose().times(column));
Return Q().returnTranspose().times(column)
Parameters:
column - The vector with which Q must be multiplied

QreducedTransposeTimes

public Column QreducedTransposeTimes(Column column)
public behavior

pre column != null;
pre column.size() = Qreduced().getNbRows();

post \result.equals(Qreduced().returnTranspose().times(column));
Return Qreduced().returnTranspose().times(column)
Parameters:
column - The vector with which Q must be multiplied