[/ 

THIS FILE IS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT!

]

[section geev]

[heading Prototype]
There are two prototypes of `geev` available, please see below.
``
geev( const char jobvl, const char jobvr, MatrixA& a, VectorWR& wr,
        VectorWI& wi, MatrixVL& vl, MatrixVR& vr );
``

``
geev( const char jobvl, const char jobvr, MatrixA& a, VectorW& w,
        MatrixVL& vl, MatrixVR& vr );
``


[heading Description]

`geev` (short for $FRIENDLY_NAME) provides a C++
interface to LAPACK routines SGEEV, DGEEV, CGEEV, and ZGEEV. 
`geev` computes for an N-by-N complex nonsymmetric matrix A, the
eigenvalues and, optionally, the left and/or right eigenvectors.

The right eigenvector v(j) of A satisfies
A * v(j) = lambda(j) * v(j)
where lambda(j) is its eigenvalue.
The left eigenvector u(j) of A satisfies
u(j)**H * A = lambda(j) * u(j)**H
where u(j)**H denotes the conjugate transpose of u(j).

The computed eigenvectors are normalized to have Euclidean norm
equal to 1 and largest component real.

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 Dispatching of geev
[  [ Value type of MatrixA ] [LAPACK routine] ]
[  [`float`][SGEEV] ]
[  [`double`][DGEEV] ]
[  [`complex<float>`][CGEEV] ]
[  [`complex<double>`][ZGEEV] ]

]


[heading Definition]
Defined in header [headerref boost/numeric/bindings/lapack/driver/geev.hpp].


[heading Parameters or Requirements on Types]

[variablelist Parameters
    [[MatrixA] [The definition of term 1]]
    [[MatrixB] [The definition of term 2]]
    [[MatrixC] [
    The definition of term 3.

    Definitions may contain paragraphs.
    ]]
]


[heading Complexity]


[heading Example]
``
#include <boost/numeric/bindings/lapack/driver/geev.hpp>
using namespace boost::numeric::bindings;

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

``

this will output

``
[5] 0 1 2 3 4 5
``



[heading Notes]


[heading See Also]

* Originating Fortran source files [@http://www.netlib.org/lapack/single/sgeev.f sgeev.f], [@http://www.netlib.org/lapack/double/dgeev.f dgeev.f], [@http://www.netlib.org/lapack/complex/cgeev.f cgeev.f], and [@http://www.netlib.org/lapack/complex16/zgeev.f zgeev.f] at Netlib.

[endsect]
