class HessenbergTransformer
extends java.lang.Object
A m × m matrix A can be written as the product of three matrices: A = P × H × PT with P an orthogonal matrix and H a Hessenberg matrix. Both P and H are m × m matrices.
Transformation to Hessenberg form is often not a goal by itself, but it is an
intermediate step in more general decomposition algorithms like
eigen decomposition
. This class is therefore
intended for internal use by the library and is not public. As a consequence
of this explicitly limited scope, many methods directly returns references to
internal arrays, not copies.
This class is based on the method orthes in class EigenvalueDecomposition from the JAMA library.
Modifier and Type | Field and Description |
---|---|
private RealMatrix |
cachedH
Cached value of H.
|
private RealMatrix |
cachedP
Cached value of P.
|
private RealMatrix |
cachedPt
Cached value of Pt.
|
private double[][] |
householderVectors
Householder vectors.
|
private double[] |
ort
Temporary storage vector.
|
Constructor and Description |
---|
HessenbergTransformer(RealMatrix matrix)
Build the transformation to Hessenberg form of a general matrix.
|
Modifier and Type | Method and Description |
---|---|
RealMatrix |
getH()
Returns the Hessenberg matrix H of the transform.
|
(package private) double[][] |
getHouseholderVectorsRef()
Get the Householder vectors of the transform.
|
RealMatrix |
getP()
Returns the matrix P of the transform.
|
RealMatrix |
getPT()
Returns the transpose of the matrix P of the transform.
|
private void |
transform()
Transform original matrix to Hessenberg form.
|
private final double[][] householderVectors
private final double[] ort
private RealMatrix cachedP
private RealMatrix cachedPt
private RealMatrix cachedH
public HessenbergTransformer(RealMatrix matrix)
matrix
- matrix to transformNonSquareMatrixException
- if the matrix is not squarepublic RealMatrix getP()
P is an orthogonal matrix, i.e. its inverse is also its transpose.
public RealMatrix getPT()
P is an orthogonal matrix, i.e. its inverse is also its transpose.
public RealMatrix getH()
double[][] getHouseholderVectorsRef()
Note that since this class is only intended for internal use, it returns directly a reference to its internal arrays, not a copy.
private void transform()
Transformation is done using Householder transforms.
Copyright (c) 2003-2014 Apache Software Foundation