---
name: "ssbgst"
section: "3lapack"
platform: "linux"
package: "liblapack-doc"
version: "3.2.1-8"
release: "Debian 6.0 (Squeeze)"
platforms: ["linux"]
url: "https://new.carta.tech/ssbgst/3lapack"
---

# ssbgst(3lapack)

reduces a real symmetric-definite banded generalized eigenproblem A\*x = lambda\*B\*x to standard form C\*y = lambda\*y,

## NAME

SSBGST - reduces a real symmetric-definite banded generalized eigenproblem A\*x = lambda\*B\*x to standard form C\*y = lambda\*y,

## SYNOPSIS

- SUBROUTINE SSBGST(

  VECT, UPLO, N, KA, KB, AB, LDAB, BB, LDBB, X, LDX, WORK, INFO )

- CHARACTER

  UPLO, VECT

- INTEGER

  INFO, KA, KB, LDAB, LDBB, LDX, N

- REAL

  AB( LDAB, \* ), BB( LDBB, \* ), WORK( \* ), X( LDX, \* )

## PURPOSE

SSBGST reduces a real symmetric-definite banded generalized eigenproblem  A\*x = lambda\*B\*x  to standard form  C\*y = lambda\*y, such that C has the same bandwidth as A.\
 B must have been previously factorized as S\*\*T\*S by SPBSTF, using a split Cholesky factorization. A is overwritten by C = X\*\*T\*A\*X, where X = S\*\*(-1)\*Q and Q is an orthogonal matrix chosen to preserve the bandwidth of A.\

## ARGUMENTS

- VECT (input) CHARACTER\*1

  \= 'N':  do not form the transformation matrix X;\
   \= 'V':  form X.

- UPLO (input) CHARACTER\*1

  \= 'U':  Upper triangle of A is stored;\
   \= 'L':  Lower triangle of A is stored.

- N (input) INTEGER

  The order of the matrices A and B.  N \>= 0.

- KA (input) INTEGER

  The number of superdiagonals of the matrix A if UPLO = 'U', or the number of subdiagonals if UPLO = 'L'.  KA \>= 0.

- KB (input) INTEGER

  The number of superdiagonals of the matrix B if UPLO = 'U', or the number of subdiagonals if UPLO = 'L'.  KA \>= KB \>= 0.

- AB (input/output) REAL array, dimension (LDAB,N)

  On entry, the upper or lower triangle of the symmetric band matrix A, stored in the first ka+1 rows of the array.  The j-th column of A is stored in the j-th column of the array AB as follows: if UPLO = 'U', AB(ka+1+i-j,j) = A(i,j) for max(1,j-ka)\<=i\<=j; if UPLO = 'L', AB(1+i-j,j)    = A(i,j) for j\<=i\<=min(n,j+ka). On exit, the transformed matrix X\*\*T\*A\*X, stored in the same format as A.

- LDAB (input) INTEGER

  The leading dimension of the array AB.  LDAB \>= KA+1.

- BB (input) REAL array, dimension (LDBB,N)

  The banded factor S from the split Cholesky factorization of B, as returned by SPBSTF, stored in the first KB+1 rows of the array.

- LDBB (input) INTEGER

  The leading dimension of the array BB.  LDBB \>= KB+1.

- X (output) REAL array, dimension (LDX,N)

  If VECT = 'V', the n-by-n matrix X. If VECT = 'N', the array X is not referenced.

- LDX (input) INTEGER

  The leading dimension of the array X. LDX \>= max(1,N) if VECT = 'V'; LDX \>= 1 otherwise.

- WORK (workspace) REAL array, dimension (2\*N)

  - INFO (output) INTEGER

  \= 0:  successful exit\
   \< 0:  if INFO = -i, the i-th argument had an illegal value.
