(S|D|C|Z)GEEV

Single, double, single complex, and double complex GEEV.

Description

Computes the eigenvalues and (optionally) eigenvectors of a general matrix.

Right eigenvectors satisfy:

\fvar{A} \mult v_i = \lambda_i v_i

Left eigenvectors satisfy:

\herm{u_i} \mult \fvar{A} = \lambda \herm{u_i}

Computed eigenvectors are normalized to have Euclidean unit length and largest real component.

LAPACK Interface

void sgeev(const char *JOBVL, const char *JOBVR, const qml_long *N, float *A,
    const qml_long *LDA, float *WR, float *WI, float *VL,
    const qml_long *LDVL, float *VR, const qml_long *LDVR, float *WORK,
    const qml_long *LWORK, qml_long *INFO);

void dgeev(const char *JOBVL, const char *JOBVR, const qml_long *N, double *A,
    const qml_long *LDA, double *WR, double *WI, double *VL,
    const qml_long *LDVL, double *VR, const qml_long *LDVR, double *WORK,
    const qml_long *LWORK, qml_long *INFO);

void cgeev(const char *JOBVL, const char *JOBVR, const qml_long *N,
    qml_single_complex *A, const qml_long *LDA, qml_single_complex *W,
    qml_single_complex *VL, const qml_long *LDVL, qml_single_complex *VR,
    const qml_long *LDVR, qml_single_complex *WORK, const qml_long *LWORK,
    float *RWORK, qml_long *INFO);

void zgeev(const char *JOBVL, const char *JOBVR, const qml_long *N,
    qml_double_complex *A, const qml_long *LDA, qml_double_complex *W,
    qml_double_complex *VL, const qml_long *LDVL, qml_double_complex *VR,
    const qml_long *LDVR, qml_double_complex *WORK, const qml_long *LWORK,
    double *RWORK, qml_long *INFO);

Arguments

JOBVL Compute VL if ‘V’, otherwise do not compute
JOBVR Compute VR if ‘V’, otherwise do not compute
N Number of rows and columns of A
A Matrix of size N x N, overwritten on exit
LDA Leading dimension of A
W Array of size N containing eigenvalues on exit
WR Real part of W for real versions
WI Complex part of W for real version
VL On exit contains left eigenvectors if JOBVL is ‘V’
LDVL Leading dimension of VL
VR On exit contains right eigenvectors if JOBVR is ‘V’
LDVR Leading dimension of VR
WORK Work space of size at least LWORK
LWORK Size of work space, at least 4N but optimally a larger multiple of N (-1 to query)
RWORK Work space of size 2N
INFO 0 on success