Class HessenbergTransformer


  • class HessenbergTransformer
    extends java.lang.Object
    Class transforming a general real matrix to Hessenberg form.

    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.

    Since:
    3.1
    See Also:
    MathWorld, Householder Transformations
    • Constructor Summary

      Constructors 
      Constructor Description
      HessenbergTransformer​(RealMatrix matrix)
      Build the transformation to Hessenberg form of a general matrix.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method 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.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • householderVectors

        private final double[][] householderVectors
        Householder vectors.
      • ort

        private final double[] ort
        Temporary storage vector.
      • cachedP

        private RealMatrix cachedP
        Cached value of P.
      • cachedPt

        private RealMatrix cachedPt
        Cached value of Pt.
      • cachedH

        private RealMatrix cachedH
        Cached value of H.
    • Constructor Detail

      • HessenbergTransformer

        HessenbergTransformer​(RealMatrix matrix)
        Build the transformation to Hessenberg form of a general matrix.
        Parameters:
        matrix - matrix to transform
        Throws:
        NonSquareMatrixException - if the matrix is not square
    • Method Detail

      • getP

        public RealMatrix getP()
        Returns the matrix P of the transform.

        P is an orthogonal matrix, i.e. its inverse is also its transpose.

        Returns:
        the P matrix
      • getPT

        public RealMatrix getPT()
        Returns the transpose of the matrix P of the transform.

        P is an orthogonal matrix, i.e. its inverse is also its transpose.

        Returns:
        the transpose of the P matrix
      • getH

        public RealMatrix getH()
        Returns the Hessenberg matrix H of the transform.
        Returns:
        the H matrix
      • getHouseholderVectorsRef

        double[][] getHouseholderVectorsRef()
        Get the Householder vectors of the transform.

        Note that since this class is only intended for internal use, it returns directly a reference to its internal arrays, not a copy.

        Returns:
        the main diagonal elements of the B matrix
      • transform

        private void transform()
        Transform original matrix to Hessenberg form.

        Transformation is done using Householder transforms.