ssbtrd.f −

**Functions/Subroutines**

subroutine **ssbtrd** (VECT, UPLO, N, KD, AB, LDAB, D, E, Q, LDQ, WORK, INFO)

SSBTRD

**subroutine ssbtrd (characterVECT, characterUPLO, integerN, integerKD, real, dimension( ldab, * )AB, integerLDAB, real, dimension( * )D, real, dimension( * )E, real, dimension( ldq, * )Q, integerLDQ, real, dimension( * )WORK, integerINFO)
SSBTRD**

**Purpose:**

SSBTRD reduces a real symmetric band matrix A to symmetric

tridiagonal form T by an orthogonal similarity transformation:

Q**T * A * Q = T.

**Parameters:**

*VECT*

VECT is CHARACTER*1

= ’N’: do not form Q;

= ’V’: form Q;

= ’U’: update a matrix X, by forming X*Q.

*UPLO*

UPLO is CHARACTER*1

= ’U’: Upper triangle of A is stored;

= ’L’: Lower triangle of A is stored.

*N*

N is INTEGER

The order of the matrix A. N >= 0.

*KD*

KD is INTEGER

The number of superdiagonals of the matrix A if UPLO = ’U’,

or the number of subdiagonals if UPLO = ’L’. KD >= 0.

*AB*

AB is REAL array, dimension (LDAB,N)

On entry, the upper or lower triangle of the symmetric band

matrix A, stored in the first KD+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(kd+1+i-j,j) = A(i,j) for max(1,j-kd)<=i<=j;

if UPLO = ’L’, AB(1+i-j,j) = A(i,j) for j<=i<=min(n,j+kd).

On exit, the diagonal elements of AB are overwritten by the

diagonal elements of the tridiagonal matrix T; if KD > 0, the

elements on the first superdiagonal (if UPLO = ’U’) or the

first subdiagonal (if UPLO = ’L’) are overwritten by the

off-diagonal elements of T; the rest of AB is overwritten by

values generated during the reduction.

*LDAB*

LDAB is INTEGER

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

*D*

D is REAL array, dimension (N)

The diagonal elements of the tridiagonal matrix T.

*E*

E is REAL array, dimension (N-1)

The off-diagonal elements of the tridiagonal matrix T:

E(i) = T(i,i+1) if UPLO = ’U’; E(i) = T(i+1,i) if UPLO = ’L’.

*Q*

Q is REAL array, dimension (LDQ,N)

On entry, if VECT = ’U’, then Q must contain an N-by-N

matrix X; if VECT = ’N’ or ’V’, then Q need not be set.

On exit:

if VECT = ’V’, Q contains the N-by-N orthogonal matrix Q;

if VECT = ’U’, Q contains the product X*Q;

if VECT = ’N’, the array Q is not referenced.

*LDQ*

LDQ is INTEGER

The leading dimension of the array Q.

LDQ >= 1, and LDQ >= N if VECT = ’V’ or ’U’.

*WORK*

WORK is REAL array, dimension (N)

*INFO*

INFO is INTEGER

= 0: successful exit

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

**Author:**

Univ. of Tennessee

Univ. of California Berkeley

Univ. of Colorado Denver

NAG Ltd.

**Date:**

November 2011

**Further Details:**

Modified by Linda Kaufman, Bell Labs.

Definition at line 163 of file ssbtrd.f.

Generated automatically by Doxygen for LAPACK from the source code.