org.jutil.math.matrix
Class HouseholderHessenbergReduction

java.lang.Object
  |
  +--org.jutil.math.matrix.HouseholderHessenbergReduction
All Implemented Interfaces:
HessenbergReduction

public class HouseholderHessenbergReduction
extends java.lang.Object
implements HessenbergReduction

This class represents a HouseHolder Hessenberg factorization of a matrix.


Field Summary
static java.lang.String CVS_REVISION
           
 
Constructor Summary
HouseholderHessenbergReduction(Matrix H, Column[] vs)
          Initialize a new HouseholderHessenbergReduction combination with the given H matrix and v vectors.
 
Method Summary
 Column getV(int i)
          Return the i-th v vector as computed by the Householder algorithm that computed this Hessenberg decomposition.
 Matrix H()
          See superclass
 Matrix Q()
          See superclass
 Column Qtimes(Column column)
          See superclass
 Column QtransposeTimes(Column column)
          See superclass
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

CVS_REVISION

public static final java.lang.String CVS_REVISION
Constructor Detail

HouseholderHessenbergReduction

public HouseholderHessenbergReduction(Matrix H,
                                      Column[] vs)
Initialize a new HouseholderHessenbergReduction combination with the given H matrix and v vectors.

Parameters:
H - The H matrix of the Hessenberg reduction.
vs - An array of v vectors produce by the HouseHolder factorization The first vector of the algorithm is at position -, the last vector is at position vs.length - 1

Specifications:
public behavior
requires H != null;
requires H.isSquare();
requires vs != null;
requires vs.length == H.getNbColumns()-2;
requires ( \forall int i; i >= 0&&i < vs.length; (vs[i] != null)&&(vs[i].size() == H.getNbRows()-i-1));
ensures H().equals(H);
ensures ( \forall int i; i >= 1&&i <= vs.length; getV(i).equals(vs[i-1]));
Method Detail

H

public Matrix H()
See superclass
Specifications inherited from overridden method in interface HessenbergReduction:
public behavior
ensures \result != null;
ensures \result .isSquare();

getV

public Column getV(int i)

Return the i-th v vector as computed by the Householder algorithm that computed this Hessenberg decomposition.

Parameters:
i -

The index of the requested v vector. Indices start from 1.

Specifications:
public behavior
requires i >= 1;
requires i <= H().getNbColumns()-2;
ensures \result != null;

Q

public Matrix Q()
See superclass
Specifications inherited from overridden method in interface HessenbergReduction:
public behavior
ensures \result != null;
ensures \result .isSquare();
ensures (* \result.isUnitary() *);

Qtimes

public Column Qtimes(Column column)
See superclass
Specifications inherited from overridden method in interface HessenbergReduction:
public behavior
requires column != null;
requires column.size() == Q().getNbColumns();
ensures \result .equals(Q().times(column));

QtransposeTimes

public Column QtransposeTimes(Column column)
See superclass
Specifications inherited from overridden method in interface HessenbergReduction:
public behavior
requires column != null;
requires column.size() == Q().getNbRows();
ensures \result .equals(Q().returnTranspose().times(column));