Developer Reference for Intel® oneAPI Math Kernel Library for C

ID 766684
Date 11/07/2023
Public

A newer version of this document is available. Customers should click here to go to the newest version.

Document Table of Contents

?ggbak

Forms the right or left eigenvectors of a generalized eigenvalue problem.

Syntax

lapack_int LAPACKE_sggbak( int matrix_layout, char job, char side, lapack_int n, lapack_int ilo, lapack_int ihi, const float* lscale, const float* rscale, lapack_int m, float* v, lapack_int ldv );

lapack_int LAPACKE_dggbak( int matrix_layout, char job, char side, lapack_int n, lapack_int ilo, lapack_int ihi, const double* lscale, const double* rscale, lapack_int m, double* v, lapack_int ldv );

lapack_int LAPACKE_cggbak( int matrix_layout, char job, char side, lapack_int n, lapack_int ilo, lapack_int ihi, const float* lscale, const float* rscale, lapack_int m, lapack_complex_float* v, lapack_int ldv );

lapack_int LAPACKE_zggbak( int matrix_layout, char job, char side, lapack_int n, lapack_int ilo, lapack_int ihi, const double* lscale, const double* rscale, lapack_int m, lapack_complex_double* v, lapack_int ldv );

Include Files

  • mkl.h

Description

The routine forms the right or left eigenvectors of a real/complex generalized eigenvalue problem

A*x = λ*B*x

by backward transformation on the computed eigenvectors of the balanced pair of matrices output by ggbal.

Input Parameters

matrix_layout

Specifies whether matrix storage layout is row major (LAPACK_ROW_MAJOR) or column major (LAPACK_COL_MAJOR).

job

Specifies the type of backward transformation required. Must be 'N', 'P', 'S', or 'B'.

If job = 'N', then no operations are done; return.

If job = 'P', then do backward transformation for permutation only.

If job = 'S', then do backward transformation for scaling only.

If job = 'B', then do backward transformation for both permutation and scaling. This argument must be the same as the argument job supplied to ?ggbal.

side

Must be 'L' or 'R'.

If side = 'L', then v contains left eigenvectors.

If side = 'R', then v contains right eigenvectors.

n

The number of rows of the matrix V (n 0).

ilo, ihi

The integers ilo and ihi determined by ?gebal. Constraint:

If n > 0, then 1 iloihin;

if n = 0, then ilo = 1 and ihi = 0.

lscale, rscale

Arrays, size at least max(1, n).

The array lscale contains details of the permutations and/or scaling factors applied to the left side of A and B, as returned by ?ggbal.

The array rscale contains details of the permutations and/or scaling factors applied to the right side of A and B, as returned by ?ggbal.

m

The number of columns of the matrix V

(m 0).

v

Array v(size max(1, ldv*m) for column major layout and max(1, ldv*n) for row major layout) . Contains the matrix of right or left eigenvectors to be transformed, as returned by tgevc.

ldv

The leading dimension of v; at least max(1, n) for column major layout and at least max(1, m) for row major layout .

Output Parameters

v

Overwritten by the transformed eigenvectors

Return Values

This function returns a value info.

If info=0, the execution is successful.

If info = -i, the i-th parameter had an illegal value.