zggbak(3S)

ZGGBAK - form the right or left eigenvectors of a complex generalized eigenvalue problem A*x = lambda*B*x, by backward transformation on the computed eigenvectors of the balanced pair of matrices output by ZGGBAL

As shipped in IRIX 6.5.30. Added in IRIX 6.5.15.

NAME
     ZGGBAK - form the right or left eigenvectors of a complex generalized
     eigenvalue problem A*x = lambda*B*x, by backward transformation on the
     computed eigenvectors of the balanced pair of matrices output by ZGGBAL

SYNOPSIS
     SUBROUTINE ZGGBAK( JOB, SIDE, N, ILO, IHI, LSCALE, RSCALE, M, V, LDV,
                        INFO )

         CHARACTER      JOB, SIDE

         INTEGER        IHI, ILO, INFO, LDV, M, N

         DOUBLE         PRECISION LSCALE( * ), RSCALE( * )

         COMPLEX*16     V( LDV, * )

IMPLEMENTATION
     These routines are part of the SCSL Scientific Library and can be loaded
     using either the -lscs or the -lscs_mp option.  The -lscs_mp option
     directs the linker to use the multi-processor version of the library.

     When linking to SCSL with -lscs or -lscs_mp, the default integer size is
     4 bytes (32 bits). Another version of SCSL is available in which integers
     are 8 bytes (64 bits).  This version allows the user access to larger
     memory sizes and helps when porting legacy Cray codes.  It can be loaded
     by using the -lscs_i8 option or the -lscs_i8_mp option. A program may use
     only one of the two versions; 4-byte integer and 8-byte integer library
     calls cannot be mixed.

PURPOSE
     ZGGBAK forms the right or left eigenvectors of a complex generalized
     eigenvalue problem A*x = lambda*B*x, by backward transformation on the
     computed eigenvectors of the balanced pair of matrices output by ZGGBAL.

ARGUMENTS
     JOB     (input) CHARACTER*1
             Specifies the type of backward transformation required:
             = '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
             ZGGBAL.

     SIDE    (input) CHARACTER*1
             = 'R':  V contains right eigenvectors;
             = 'L':  V contains left eigenvectors.

     N       (input) INTEGER
             The number of rows of the matrix V.  N >= 0.
     ILO     (input) INTEGER
             IHI     (input) INTEGER The integers ILO and IHI determined by
             ZGGBAL.  1 <= ILO <= IHI <= N, if N > 0; ILO=1 and IHI=0, if N=0.

     LSCALE  (input) DOUBLE PRECISION array, dimension (N)
             Details of the permutations and/or scaling factors applied to the
             left side of A and B, as returned by ZGGBAL.

     RSCALE  (input) DOUBLE PRECISION array, dimension (N)
             Details of the permutations and/or scaling factors applied to the
             right side of A and B, as returned by ZGGBAL.

     M       (input) INTEGER
             The number of columns of the matrix V.  M >= 0.

     V       (input/output) COMPLEX*16 array, dimension (LDV,M)
             On entry, the matrix of right or left eigenvectors to be
             transformed, as returned by ZTGEVC.  On exit, V is overwritten by
             the transformed eigenvectors.

     LDV     (input) INTEGER
             The leading dimension of the matrix V. LDV >= max(1,N).

     INFO    (output) INTEGER
             = 0:  successful exit.
             < 0:  if INFO = -i, the i-th argument had an illegal value.

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


SEE ALSO
     INTRO_LAPACK(3S), INTRO_SCSL(3S)

     This man page is available only online.