Contents


NAME

     csttrs - computes the solution to a complex system of linear
     equations A * X = B

SYNOPSIS

     SUBROUTINE CSTTRS(N, NRHS, L, D, SUBL, B, LDB, IPIV, INFO)

     COMPLEX L(*), D(*), SUBL(*), B(LDB,*)
     INTEGER N, NRHS, LDB, INFO
     INTEGER IPIV(*)

     SUBROUTINE CSTTRS_64(N, NRHS, L, D, SUBL, B, LDB, IPIV, INFO)

     COMPLEX L(*), D(*), SUBL(*), B(LDB,*)
     INTEGER*8 N, NRHS, LDB, INFO
     INTEGER*8 IPIV(*)

  F95 INTERFACE
     SUBROUTINE STTRS([N], [NRHS], L, D, SUBL, B, [LDB], IPIV, [INFO])

     COMPLEX, DIMENSION(:) :: L, D, SUBL
     COMPLEX, DIMENSION(:,:) :: B
     INTEGER :: N, NRHS, LDB, INFO
     INTEGER, DIMENSION(:) :: IPIV

     SUBROUTINE STTRS_64([N], [NRHS], L, D, SUBL, B, [LDB], IPIV, [INFO])

     COMPLEX, DIMENSION(:) :: L, D, SUBL
     COMPLEX, DIMENSION(:,:) :: B
     INTEGER(8) :: N, NRHS, LDB, INFO
     INTEGER(8), DIMENSION(:) :: IPIV

  C INTERFACE
     #include <sunperf.h>

     void csttrs(int n, int nrhs, complex *l, complex *d, complex
               *subl, complex *b, int ldb, int *ipiv, int *info);

     void csttrs_64(long n, long nrhs, complex  *l,  complex  *d,
               complex  *subl,  complex *b, long ldb, long *ipiv,
               long *info);

PURPOSE

     csttrs computes the solution to a complex system  of  linear
     equations A * X = B, where A is an N-by-N symmetric tridiag-
     onal matrix and X and B are N-by-NRHS matrices.

ARGUMENTS

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

     NRHS (input)
                INTEGER
               The number of right hand sides, i.e.,  the  number
               of columns of the matrix B. NRHS >= 0.

     L (input)  COMPLEX array, dimension (N-1)
               On entry, the subdiagonal elements of L.

     D (input)  COMPLEX array, dimension (N)
               On entry, the diagonal elements of D.

     SUBL (input)
                COMPLEX array, dimension (N-2)
               On entry, the second subdiagonal elements of L.

     B (input/output)
                COMPLEX array, dimension (LDB, NRHS)
               On entry, the N-by-NRHS right hand side matrix  B.
               On  exit,  if  INFO  =  0,  the N-by-NRHS solution
               matrix X.

     LDB (input)
                INTEGER
               The leading dimension of  the  array  B.   LDB  >=
               max(1, N)

     IPIV (output)
                INTEGER array, dimension (N)
               Details of the interchanges and block  pivot.   If
               IPIV(K)  > 0, 1 by 1 pivot, and if IPIV(K) = K + 1
               an interchange done;  If  IPIV(K)  <  0,  2  by  2
               pivot, no interchange required.

     INFO (output)
                INTEGER
               = 0:  successful exit
               < 0:  if INFO = -k, the k-th argument had an ille-
               gal value