Contents


NAME

     ssttrf - compute the factorization of a symmetric  tridiago-
     nal  matrix  A  using  the  Bunch-Kaufman  diagonal pivoting
     method

SYNOPSIS

     SUBROUTINE SSTTRF(N, L, D, SUBL, IPIV, INFO)

     INTEGER N, INFO
     INTEGER IPIV(*)
     REAL L(*), D(*), SUBL(*)

     SUBROUTINE SSTTRF_64(N, L, D, SUBL, IPIV, INFO)

     INTEGER*8 N, INFO
     INTEGER*8 IPIV(*)
     REAL L(*), D(*), SUBL(*)

  F95 INTERFACE
     SUBROUTINE STTRF([N], L, D, SUBL, IPIV, [INFO])

     INTEGER :: N, INFO
     INTEGER, DIMENSION(:) :: IPIV
     REAL, DIMENSION(:) :: L, D, SUBL

     SUBROUTINE STTRF_64([N], L, D, SUBL, IPIV, [INFO])

     INTEGER(8) :: N, INFO
     INTEGER(8), DIMENSION(:) :: IPIV
     REAL, DIMENSION(:) :: L, D, SUBL

  C INTERFACE
     #include <sunperf.h>

     void ssttrf(int n, float *l,  float  *d,  float  *subl,  int
               *ipiv, int *info);

     void ssttrf_64(long n, float *l, float *d, float *subl, long
               *ipiv, long *info);

PURPOSE

     ssttrf computes the L*D*L' factorization of a real symmetric
     tridiagonal matrix A using the Bunch-Kaufman diagonal pivot-
     ing method.

ARGUMENTS

     N (input)  INTEGER
               The order of the matrix A.  N >= 0.

     L (input/output)
                REAL array, dimension (N-1)
               On entry, the n-1 subdiagonal elements of the tri-
               diagonal  matrix A.  On exit, part of the factori-
               zation of A.

     D (input/output)
                REAL array, dimension (N)
               On entry, the n diagonal elements of the tridiago-
               nal matrix A.  On exit, the n diagonal elements of
               the diagonal matrix D from the L*D*L**H factoriza-
               tion of A.

     SUBL (output)
                REAL array, dimension (N-2)
               On exit, part of the factorization of A.

     IPIV (output)
                INTEGER array, dimension (N)
               On exit, the pivot indices of the factorization.

     INFO (output)
                INTEGER
               = 0:  successful exit
               < 0:  if INFO = -i, the i-th argument had an ille-
               gal value
               > 0:  if INFO = i, D(k,k) is  exactly  zero.   The
               factorization  has  been  completed, but the block
               diagonal matrix D is exactly singular and division
               by zero will occur if it is used to solve a system
               of equations.