?ggbak

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

Syntax

FORTRAN 77:

call sggbak(job, side, n, ilo, ihi, lscale, rscale, m, v, ldv, info)

call dggbak(job, side, n, ilo, ihi, lscale, rscale, m, v, ldv, info)

call cggbak(job, side, n, ilo, ihi, lscale, rscale, m, v, ldv, info)

call zggbak(job, side, n, ilo, ihi, lscale, rscale, m, v, ldv, info)

Fortran 95:

call ggbak(v [, ilo] [,ihi] [,lscale] [,rscale] [,job] [,info])

C:

lapack_int LAPACKE_sggbak( int matrix_order, 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_order, 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_order, 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_order, 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

The FORTRAN 77 interfaces are specified in the mkl_lapack.fi and mkl_lapack.h include files, the Fortran 95 interfaces are specified in the lapack.f90 include file, and the C interfaces are specified in the mkl_lapacke.h include file.

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

The data types are given for the Fortran interface. A <datatype> placeholder, if present, is used for the C interface data types in the C interface section above. See C Interface Conventions for the C interface principal conventions and type definitions.

job

CHARACTER*1. 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

CHARACTER*1. Must be 'L' or 'R'.

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

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

n

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

ilo, ihi

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

If n > 0, then 1 ilo ihi n;

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

lscale, rscale

REAL for single precision flavors

DOUBLE PRECISION for double precision flavors.

Arrays, DIMENSION 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

INTEGER. The number of columns of the matrix V

(m 0).

v

REAL for sggbak

DOUBLE PRECISION for dggbak

COMPLEX for cggbak

DOUBLE COMPLEX for zggbak.

Array v(ldv,*). Contains the matrix of right or left eigenvectors to be transformed, as returned by ?tgevc.

The second dimension of v must be at least max(1, m).

ldv

INTEGER. The leading dimension of v; at least max(1, n).

Output Parameters

v

Overwritten by the transformed eigenvectors

info

INTEGER.

If info = 0, the execution is successful.

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

Fortran 95 Interface Notes

Routines in Fortran 95 interface have fewer arguments in the calling sequence than their FORTRAN 77 counterparts. For general conventions applied to skip redundant or restorable arguments, see Fortran 95 Interface Conventions.

Specific details for the routine ggbak interface are the following:

v

Holds the matrix V of size (n,m).

lscale

Holds the vector of length n.

rscale

Holds the vector of length n.

ilo

Default value for this argument is ilo = 1.

ihi

Default value for this argument is ihi = n.

job

Must be 'B', 'S', 'P', or 'N'. The default value is 'B'.

side

If omitted, this argument is restored based on the presence of arguments lscale and rscale as follows:

side = 'L', if lscale is present and rscale omitted,

side = 'R', if lscale is omitted and rscale present.

Note that there will be an error condition if both lscale and rscale are present or if they both are omitted.


Submit feedback on this help topic

Copyright © 1994 - 2011, Intel Corporation. All rights reserved.