org.ejml.alg.dense.decomposition.hessenberg
Class HessenbergSimilarDecomposition

java.lang.Object
  extended by org.ejml.alg.dense.decomposition.hessenberg.HessenbergSimilarDecomposition
All Implemented Interfaces:
DecompositionInterface<DenseMatrix64F>

public class HessenbergSimilarDecomposition
extends Object
implements DecompositionInterface<DenseMatrix64F>

Finds the decomposition of a matrix in the form of:

A = OHOT

where A is an m by m matrix, O is an orthogonal matrix, and H is an upper Hessenberg matrix.

A matrix is upper Hessenberg if aij = 0 for all i > j+1. For example, the following matrix is upper Hessenberg.

WRITE IT OUT USING A TABLE

This decomposition is primarily used as a step for computing the eigenvalue decomposition of a matrix. The basic algorithm comes from David S. Watkins, "Fundamentals of MatrixComputations" Second Edition.


Constructor Summary
HessenbergSimilarDecomposition()
           
HessenbergSimilarDecomposition(int initialSize)
          Creates a decomposition that won't need to allocate new memory if it is passed matrices up to the specified size.
 
Method Summary
 boolean decompose(DenseMatrix64F A)
          Computes the decomposition of the provided matrix.
 double[] getGammas()
           
 DenseMatrix64F getH(DenseMatrix64F H)
          An upper Hessenberg matrix from the decompostion.
 DenseMatrix64F getQ(DenseMatrix64F Q)
          An orthogonal matrix that has the following property: H = QTAQ
 DenseMatrix64F getQH()
          The raw QH matrix that is stored internally.
 boolean inputModified()
          Is the input matrix to DecompositionInterface.decompose(org.ejml.data.Matrix64F) is modified during the decomposition process.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

HessenbergSimilarDecomposition

public HessenbergSimilarDecomposition(int initialSize)
Creates a decomposition that won't need to allocate new memory if it is passed matrices up to the specified size.

Parameters:
initialSize - Expected size of the matrices it will decompose.

HessenbergSimilarDecomposition

public HessenbergSimilarDecomposition()
Method Detail

decompose

public boolean decompose(DenseMatrix64F A)
Computes the decomposition of the provided matrix. If no errors are detected then true is returned, false otherwise.

Specified by:
decompose in interface DecompositionInterface<DenseMatrix64F>
Parameters:
A - The matrix that is being decomposed. Not modified.
Returns:
If it detects any errors or not.

inputModified

public boolean inputModified()
Description copied from interface: DecompositionInterface
Is the input matrix to DecompositionInterface.decompose(org.ejml.data.Matrix64F) is modified during the decomposition process.

Specified by:
inputModified in interface DecompositionInterface<DenseMatrix64F>
Returns:
true if the input matrix to decompose() is modified.

getQH

public DenseMatrix64F getQH()
The raw QH matrix that is stored internally.

Returns:
QH matrix.

getH

public DenseMatrix64F getH(DenseMatrix64F H)
An upper Hessenberg matrix from the decompostion.

Parameters:
H - If not null then the results will be stored here. Otherwise a new matrix will be created.
Returns:
The extracted H matrix.

getQ

public DenseMatrix64F getQ(DenseMatrix64F Q)
An orthogonal matrix that has the following property: H = QTAQ

Parameters:
Q - If not null then the results will be stored here. Otherwise a new matrix will be created.
Returns:
The extracted Q matrix.

getGammas

public double[] getGammas()


Copyright © 2012. All Rights Reserved.