##### hegst

###### Prototype

There is one prototype of `hegst` available, please see below.

    hegst( const int_t itype, MatrixA& a, const MatrixB& b );

###### Description

`hegst` (short for $FRIENDLY_NAME) provides a C++ interface to LAPACK routines SSYGST, DSYGST, CHEGST, and ZHEGST. `hegst` reduces a complex Hermitian-definite generalized eigenproblem to standard form.

If ITYPE = 1, the problem is A*x = lambdaB*x, and A is overwritten by inv(U*H)*A*inv(U) or inv(L)A*inv(L*H)

If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or B*A*x = lambda*x, and A is overwritten by UA*UH or L*H*A*L.

B must have been previously factorized as U**H*U or LL*H by ZPOTRF.

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.186. Dispatching of hegst

Value type of MatrixA | LAPACK routine
--- | ---
`float` | SSYGST
`double` | DSYGST
`complex<float>` | CHEGST
`complex<double>` | ZHEGST

###### Definition

Defined in header `boost/numeric/bindings/lapack/computational/hegst.hpp`.

###### Parameters or Requirements on Types

Parameters

MatrixA

  The definition of term 1

MatrixB

  The definition of term 2

MatrixC

  The definition of term 3.

  Definitions may contain paragraphs.

###### Complexity

###### Example

    #include <boost/numeric/bindings/lapack/computational/hegst.hpp>
    using namespace boost::numeric::bindings;

    lapack::hegst( x, y, z );

this will output

    [5] 0 1 2 3 4 5

###### Notes

###### See Also

- Originating Fortran source files ssygst.f, dsygst.f, chegst.f, and zhegst.f at Netlib.