(S|D|C|Z)GEBAK

Single, double, single complex, and double complex GEBAK.

Description

Computes the transformed right and left eigenvectors for a balanced matrix using back transformation.

This routine takes eigenvectors computed using a routine such as TREVC together with the SCALE output of GEBAL and performs back substitution to adjust the eigenvectors to account for the permutation and scaling operations done during balancing.

LAPACK Interface

void sgebak(const char *JOB, const char *SIDE, const qml_long *N,
    const qml_long *ILO, const qml_long *IHI, float *SCALE,
    const qml_long *M, float *V, const qml_long *LDV, qml_long *INFO);

void dgebak(const char *JOB, const char *SIDE, const qml_long *N,
    const qml_long *ILO, const qml_long *IHI, double *SCALE,
    const qml_long *M, double *V, const qml_long *LDV, qml_long *INFO);

void cgebak(const char *JOB, const char *SIDE, const qml_long *N,
    const qml_long *ILO, const qml_long *IHI, float *SCALE,
    const qml_long *M, qml_single_complex *V, const qml_long *LDV,
    qml_long *INFO);

void zgebak(const char *JOB, const char *SIDE, const qml_long *N,
    const qml_long *ILO, const qml_long *IHI, double *SCALE,
    const qml_long *M, qml_double_complex *V, const qml_long *LDV,
    qml_long *INFO);

Arguments

JOB Operations to perform, ‘N’ none, ‘P’ permute only, ‘S’ scale only, ‘B’ both
SIDE Choose ‘R’ right or ‘L’ left eigenvectors in V
N Number of rows of V
ILO Lower index
IHI Upper index, 1 <= ILO <= IHI <= N
SCALE Array of size N, permutation and scale factors of columns
M Number of columns of V
V Left or right eigenvectors, overwritten with transformed eigenvectors
LDV Leading dimension of V
INFO 0 on success