PrevUpHomeNext
trevc
Prototype

There are two prototypes of trevc available, please see below.

trevc( const Side side, const char howmny, VectorSELECT& select,
        const MatrixT& t, MatrixVL& vl, MatrixVR& vr,
        const int_t mm, int_t& m );

trevc( const Side side, const char howmny, const VectorSELECT& select,
        MatrixT& t, MatrixVL& vl, MatrixVR& vr, const int_t mm,
        int_t& m );

Description

trevc (short for $FRIENDLY_NAME) provides a C++ interface to LAPACK routines STREVC, DTREVC, CTREVC, and ZTREVC. trevc computes some or all of the right and/or left eigenvectors of a complex upper triangular matrix T. Matrices of this type are produced by the Schur factorization of a complex general matrix: A = QT*Q*H, as computed by ZHSEQR.

The right eigenvector x and the left eigenvector y of T corresponding to an eigenvalue w are defined by:

T*x = wx, (y*H)T = w(y**H)

where y**H denotes the conjugate transpose of the vector y. The eigenvalues are not input to this routine, but are read directly from the diagonal of T.

This routine returns the matrices X and/or Y of right and left eigenvectors of T, or the products Q*X and/or Q*Y, where Q is an input matrix. If Q is the unitary factor that reduces a matrix A to Schur form T, then Q*X and Q*Y are the matrices of right and left eigenvectors of A.

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.231. Dispatching of trevc

Value type of VectorSELECT

LAPACK routine

float

STREVC

double

DTREVC

complex<float>

CTREVC

complex<double>

ZTREVC


Definition

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

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

this will output

[5] 0 1 2 3 4 5

Notes
See Also

PrevUpHomeNext