dspgst - reduce a real symmetric-definite generalized eigenproblem to standard form, using packed storage
SUBROUTINE DSPGST( ITYPE, UPLO, N, AP, BP, INFO) CHARACTER * 1 UPLO INTEGER ITYPE, N, INFO DOUBLE PRECISION AP(*), BP(*)
SUBROUTINE DSPGST_64( ITYPE, UPLO, N, AP, BP, INFO) CHARACTER * 1 UPLO INTEGER*8 ITYPE, N, INFO DOUBLE PRECISION AP(*), BP(*)
SUBROUTINE SPGST( ITYPE, UPLO, N, AP, BP, [INFO]) CHARACTER(LEN=1) :: UPLO INTEGER :: ITYPE, N, INFO REAL(8), DIMENSION(:) :: AP, BP
SUBROUTINE SPGST_64( ITYPE, UPLO, N, AP, BP, [INFO]) CHARACTER(LEN=1) :: UPLO INTEGER(8) :: ITYPE, N, INFO REAL(8), DIMENSION(:) :: AP, BP
#include <sunperf.h>
void dspgst(int itype, char uplo, int n, double *ap, double *bp, int *info);
void dspgst_64(long itype, char uplo, long n, double *ap, double *bp, long *info);
dspgst reduces a real symmetric-definite generalized eigenproblem to standard form, using packed storage.
If ITYPE = 1, the problem is A*x = lambda*B*x,
and A is overwritten by inv(U**T)*A*inv(U)
or inv(L)*A*inv(L**T)
If ITYPE = 2 or 3, the problem is A*B*x = lambda*x or
B*A*x = lambda*x, and A is overwritten by U*A*U**T or L**T*A*L.
B must have been previously factorized as U**T*U or L*L**T by SPPTRF.
= 1: compute inv(U**T)*A*inv(U) or inv(L)*A*inv(L**T);
= 2 or 3: compute U*A*U**T or L**T*A*L.
= 'U': Upper triangle of A is stored and B is factored as U**T*U; = 'L': Lower triangle of A is stored and B is factored as L*L**T.
A(i,j)
for 1 < =i < =j;
if UPLO = 'L', AP(i + (j-1)*(2n-j)/2) = A(i,j)
for j < =i < =n.
On exit, if INFO = 0, the transformed matrix, stored in the same format as A.
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value