NAME

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


SYNOPSIS

  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,*)

F95 INTERFACE

  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

C INTERFACE

#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);


PURPOSE

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.


ARGUMENTS


FURTHER DETAILS

See R.C. Ward, Balancing the generalized eigenvalue problem, SIAM J. Sci. Stat. Comp. 2 (1981), 141-152.