fortran-lapack
Loading...
Searching...
No Matches
la_lapack::gghd3 Interface Reference

GGHD3: reduces a pair of real matrices (A,B) to generalized upper Hessenberg form using orthogonal transformations, where A is a general matrix and B is upper triangular. The form of the generalized eigenvalue problem is A*x = lambda*B*x, and B is typically made upper triangular by computing its QR factorization and moving the orthogonal matrix Q to the left side of the equation. This subroutine simultaneously reduces A to a Hessenberg matrix H: Q**T*A*Z = H and transforms B to another upper triangular matrix T: Q**T*B*Z = T in order to reduce the problem to its standard form H*y = lambda*T*y where y = Z**T*x. The orthogonal matrices Q and Z are determined as products of Givens rotations. They may either be formed explicitly, or they may be postmultiplied into input matrices Q1 and Z1, so that Q1 * A * Z1**T = (Q1*Q) * H * (Z1*Z)**T Q1 * B * Z1**T = (Q1*Q) * T * (Z1*Z)**T If Q1 is the orthogonal matrix from the QR factorization of B in the original equation A*x = lambda*B*x, then GGHD3 reduces the original problem to generalized Hessenberg form. This is a blocked variant of GGHRD, using matrix-matrix multiplications for parts of the computation to enhance performance. More...

Public Member Functions

 la_cgghd3
 
 la_dgghd3
 
 la_qgghd3
 
 la_sgghd3
 
 la_wgghd3
 
 la_zgghd3
 

Detailed Description

GGHD3: reduces a pair of real matrices (A,B) to generalized upper Hessenberg form using orthogonal transformations, where A is a general matrix and B is upper triangular. The form of the generalized eigenvalue problem is A*x = lambda*B*x, and B is typically made upper triangular by computing its QR factorization and moving the orthogonal matrix Q to the left side of the equation. This subroutine simultaneously reduces A to a Hessenberg matrix H: Q**T*A*Z = H and transforms B to another upper triangular matrix T: Q**T*B*Z = T in order to reduce the problem to its standard form H*y = lambda*T*y where y = Z**T*x. The orthogonal matrices Q and Z are determined as products of Givens rotations. They may either be formed explicitly, or they may be postmultiplied into input matrices Q1 and Z1, so that Q1 * A * Z1**T = (Q1*Q) * H * (Z1*Z)**T Q1 * B * Z1**T = (Q1*Q) * T * (Z1*Z)**T If Q1 is the orthogonal matrix from the QR factorization of B in the original equation A*x = lambda*B*x, then GGHD3 reduces the original problem to generalized Hessenberg form. This is a blocked variant of GGHRD, using matrix-matrix multiplications for parts of the computation to enhance performance.

Member Function/Subroutine Documentation

◆ la_cgghd3()

la_lapack::gghd3::la_cgghd3

◆ la_dgghd3()

la_lapack::gghd3::la_dgghd3

◆ la_qgghd3()

la_lapack::gghd3::la_qgghd3

◆ la_sgghd3()

la_lapack::gghd3::la_sgghd3

◆ la_wgghd3()

la_lapack::gghd3::la_wgghd3

◆ la_zgghd3()

la_lapack::gghd3::la_zgghd3

The documentation for this interface was generated from the following file: