toUpperHessenbergTransform a real square matrix A to upper Hessenberg form H by orthogonal similarity transformation: Q' * A * Q = H |
This information is part of the Modelica Standard Library maintained by the Modelica Association.
H = Matrices.Utilities.toUpperHessenberg(A); (H, V, tau, info) = Matrices.Utilities.toUpperHessenberg(A,ilo, ihi);
Function toUpperHessenberg computes a upper Hessenberg form H of a matrix A by orthogonal similarity transformation: Q' * A * Q = H. The optional inputs ilo and ihi improve efficiency if the matrix is already partially converted to Hessenberg form; it is assumed that matrix A is already upper Hessenberg for rows and columns 1:(ilo-1) and (ihi+1):size(A, 1). The function calls LAPACK.dgehrd. See Matrices.LAPACK.dgehrd for more information about the additional outputs V, tau, info and inputs ilo, ihi.
A = [1, 2, 3; 6, 5, 4; 1, 0, 0]; H = toUpperHessenberg(A); results in: H = [1.0, -2.466, 2.630; -6.083, 5.514, -3.081; 0.0, 0.919, -0.514]
A |
Type: Real[:,size(A, 1)] Description: Square matrix A |
---|---|
ilo |
Default Value: 1 Type: Integer Description: Lowest index where the original matrix is not in upper triangular form |
ihi |
Default Value: size(A, 1) Type: Integer Description: Highest index where the original matrix is not in upper triangular form |
H |
Type: Real[size(A, 1),size(A, 2)] Description: Upper Hessenberg form |
---|---|
V |
Type: Real[size(A, 1),size(A, 2)] Description: V=[v1,v2,..vn-1,0] with vi are vectors which define the elementary reflectors |
tau |
Type: Real[max(0, size(A, 1) - 1)] Description: Scalar factors of the elementary reflectors |
info |
Type: Integer Description: Information of successful function call |