PrevUpHomeNext
tgevc
Prototype

There is one prototype of tgevc available, please see below.

tgevc( const Side side, const char howmny, const VectorSELECT& select,
        const MatrixS& s, const MatrixP& p, MatrixVL& vl, MatrixVR& vr,
        const int_t mm, int_t& m );

Description

tgevc (short for $FRIENDLY_NAME) provides a C++ interface to LAPACK routines STGEVC, DTGEVC, CTGEVC, and ZTGEVC. tgevc computes some or all of the right and/or left eigenvectors of a pair of complex matrices (S,P), where S and P are upper triangular. Matrix pairs of this type are produced by the generalized Schur factorization of a complex matrix pair (A,B):

A = QS*Z*H, B = QP*Z*H

as computed by ZGGHRD + ZHGEQZ.

The right eigenvector x and the left eigenvector y of (S,P) corresponding to an eigenvalue w are defined by:

S*x = wP*x, (y*H)S = w(y**H)*P,

where y**H denotes the conjugate tranpose of y. The eigenvalues are not input to this routine, but are computed directly from the diagonal elements of S and P.

This routine returns the matrices X and/or Y of right and left eigenvectors of (S,P), or the products Z*X and/or Q*Y, where Z and Q are input matrices. If Q and Z are the unitary factors from the generalized Schur factorization of a matrix pair (A,B), then Z*X and Q*Y are the matrices of right and left eigenvectors of (A,B).

The selection of the LAPACK routine is done during compile-time, and is determined by the type of values contained in type VectorSELECT. The type of values is obtained through the value_type meta-function typename value_type<VectorSELECT>::type. The dispatching table below illustrates to which specific routine the code path will be generated.

Table 1.334. Dispatching of tgevc

Value type of VectorSELECT

LAPACK routine

float

STGEVC

double

DTGEVC

complex<float>

CTGEVC

complex<double>

ZTGEVC


Definition

Defined in header boost/numeric/bindings/lapack/computational/tgevc.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/tgevc.hpp>
using namespace boost::numeric::bindings;

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

this will output

[5] 0 1 2 3 4 5

Notes
See Also

PrevUpHomeNext