There is one prototype of gghrd
available, please see below.
gghrd( const char compq, const char compz, const int_t ilo, MatrixA& a, MatrixB& b, MatrixQ& q, MatrixZ& z );
gghrd (short for $FRIENDLY_NAME)
provides a C++ interface to LAPACK routines SGGHRD, DGGHRD, CGGHRD, and
ZGGHRD. gghrd reduces
a pair of complex matrices (A,B) to generalized upper Hessenberg form
using unitary 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 unitary matrix Q to the left side of the equation.
This subroutine simultaneously reduces A to a Hessenberg matrix H: Q**HA*Z = H and transforms B to another upper triangular matrix T: Q*H*B*Z = T in order to reduce the problem to its standard form H*y = lambdaT*y where y = Z*H*x.
The unitary 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**H = (Q1*Q) * H * (Z1Z)H Q1 * B * Z1*H
= (Q1*Q) * T * (Z1Z)*H If Q1 is the
unitary matrix from the QR factorization of B in the original equation
A*x = lambda*B*x, then gghrd
reduces the original problem to generalized Hessenberg form.
The selection of the LAPACK routine is done during compile-time, and
is determined by the type of values contained in type MatrixA.
The type of values is obtained through the value_type
meta-function typename value_type<MatrixA>::type. The dispatching table below illustrates
to which specific routine the code path will be generated.
Table 1.332. Dispatching of gghrd
|
Value type of MatrixA |
LAPACK routine |
|---|---|
|
|
SGGHRD |
|
|
DGGHRD |
|
|
CGGHRD |
|
|
ZGGHRD |
Defined in header boost/numeric/bindings/lapack/computational/gghrd.hpp.
Parameters
The definition of term 1
The definition of term 2
The definition of term 3.
Definitions may contain paragraphs.
#include <boost/numeric/bindings/lapack/computational/gghrd.hpp> using namespace boost::numeric::bindings; lapack::gghrd( x, y, z );
this will output
[5] 0 1 2 3 4 5