org.jutil.math.matrix
Interface HessenbergReduction

All Known Implementing Classes:
HouseholderHessenbergReduction

public interface HessenbergReduction

A HessenbergReduction represents a Hessenberg reduction of a matrix.

The Hessenberg reduction of a matrix A contains a Hessenberg matrix H and a unitary matrix Q such that H=(Q*)*A*Q. (Q*) is the adjoint of Q.


Field Summary
static java.lang.String CVS_REVISION
           
 
Method Summary
abstract  Matrix H()
          Return the Hessenberg matrix of this HessenbergReduction.
abstract  Matrix Q()
          Return the unitary Q matrix of this HessenbergReduction.
abstract  Column Qtimes(Column column)
          Return Q().times(column)
abstract  Column QtransposeTimes(Column column)
          Return Q().returnTranspose().times(column)
 

Field Detail

CVS_REVISION

public static final java.lang.String CVS_REVISION
Method Detail

H

public abstract Matrix H()
Return the Hessenberg matrix of this HessenbergReduction.

Specifications:
public behavior
ensures \result != null;
ensures \result .isSquare();

Q

public abstract Matrix Q()
Return the unitary Q matrix of this HessenbergReduction.

Specifications:
public behavior
ensures \result != null;
ensures \result .isSquare();
ensures (* \result.isUnitary() *);

Qtimes

public abstract Column Qtimes(Column column)
Return Q().times(column)

Parameters:
column - The vector with which Q() must be multiplied

Specifications:
public behavior
requires column != null;
requires column.size() == Q().getNbColumns();
ensures \result .equals(Q().times(column));

QtransposeTimes

public abstract Column QtransposeTimes(Column column)
Return Q().returnTranspose().times(column)

Parameters:
column - The vector with which Q must be multiplied

Specifications:
public behavior
requires column != null;
requires column.size() == Q().getNbRows();
ensures \result .equals(Q().returnTranspose().times(column));