sggbak - form the right or left eigenvectors of a real generalized eigenvalue problem A*x = lambda*B*x, by backward transformation on the computed eigenvectors of the balanced pair of matrices output by SGGBAL
SUBROUTINE SGGBAK( JOB, SIDE, N, ILO, IHI, LSCALE, RSCALE, M, V, * LDV, INFO) CHARACTER * 1 JOB, SIDE INTEGER N, ILO, IHI, M, LDV, INFO REAL LSCALE(*), RSCALE(*), V(LDV,*)
SUBROUTINE SGGBAK_64( JOB, SIDE, N, ILO, IHI, LSCALE, RSCALE, M, V, * LDV, INFO) CHARACTER * 1 JOB, SIDE INTEGER*8 N, ILO, IHI, M, LDV, INFO REAL LSCALE(*), RSCALE(*), V(LDV,*)
SUBROUTINE GGBAK( JOB, SIDE, [N], ILO, IHI, LSCALE, RSCALE, [M], V, * [LDV], [INFO]) CHARACTER(LEN=1) :: JOB, SIDE INTEGER :: N, ILO, IHI, M, LDV, INFO REAL, DIMENSION(:) :: LSCALE, RSCALE REAL, DIMENSION(:,:) :: V
SUBROUTINE GGBAK_64( JOB, SIDE, [N], ILO, IHI, LSCALE, RSCALE, [M], * V, [LDV], [INFO]) CHARACTER(LEN=1) :: JOB, SIDE INTEGER(8) :: N, ILO, IHI, M, LDV, INFO REAL, DIMENSION(:) :: LSCALE, RSCALE REAL, DIMENSION(:,:) :: V
#include <sunperf.h>
void sggbak(char job, char side, int n, int ilo, int ihi, float *lscale, float *rscale, int m, float *v, int ldv, int *info);
void sggbak_64(char job, char side, long n, long ilo, long ihi, float *lscale, float *rscale, long m, float *v, long ldv, long *info);
sggbak forms the right or left eigenvectors of a real generalized eigenvalue problem A*x = lambda*B*x, by backward transformation on the computed eigenvectors of the balanced pair of matrices output by SGGBAL.
= 'N': do nothing, return immediately;
= 'P': do backward transformation for permutation only;
= 'S': do backward transformation for scaling only;
= 'B': do backward transformations for both permutation and scaling. JOB must be the same as the argument JOB supplied to SGGBAL.
= 'R': V contains right eigenvectors;
= 'L': V contains left eigenvectors.
= 0: successful exit.
< 0: if INFO = -i, the i-th argument had an illegal value.
See R.C. Ward, Balancing the generalized eigenvalue problem, SIAM J. Sci. Stat. Comp. 2 (1981), 141-152.