Contents
cgttrs - solve one of the systems of equations A * X = B,
A**T * X = B, or A**H * X = B,
SUBROUTINE CGTTRS(TRANSA, N, NRHS, LOW, DIAG, UP1, UP2, IPIVOT, B,
LDB, INFO)
CHARACTER * 1 TRANSA
COMPLEX LOW(*), DIAG(*), UP1(*), UP2(*), B(LDB,*)
INTEGER N, NRHS, LDB, INFO
INTEGER IPIVOT(*)
SUBROUTINE CGTTRS_64(TRANSA, N, NRHS, LOW, DIAG, UP1, UP2, IPIVOT, B,
LDB, INFO)
CHARACTER * 1 TRANSA
COMPLEX LOW(*), DIAG(*), UP1(*), UP2(*), B(LDB,*)
INTEGER*8 N, NRHS, LDB, INFO
INTEGER*8 IPIVOT(*)
F95 INTERFACE
SUBROUTINE GTTRS([TRANSA], [N], [NRHS], LOW, DIAG, UP1, UP2, IPIVOT,
B, [LDB], [INFO])
CHARACTER(LEN=1) :: TRANSA
COMPLEX, DIMENSION(:) :: LOW, DIAG, UP1, UP2
COMPLEX, DIMENSION(:,:) :: B
INTEGER :: N, NRHS, LDB, INFO
INTEGER, DIMENSION(:) :: IPIVOT
SUBROUTINE GTTRS_64([TRANSA], [N], [NRHS], LOW, DIAG, UP1, UP2,
IPIVOT, B, [LDB], [INFO])
CHARACTER(LEN=1) :: TRANSA
COMPLEX, DIMENSION(:) :: LOW, DIAG, UP1, UP2
COMPLEX, DIMENSION(:,:) :: B
INTEGER(8) :: N, NRHS, LDB, INFO
INTEGER(8), DIMENSION(:) :: IPIVOT
C INTERFACE
#include <sunperf.h>
void cgttrs(char transa, int n, int nrhs, complex *low, com-
plex *diag, complex *up1, complex *up2, int
*ipivot, complex *b, int ldb, int *info);
void cgttrs_64(char transa, long n, long nrhs, complex *low,
complex *diag, complex *up1, complex *up2, long
*ipivot, complex *b, long ldb, long *info);
cgttrs solves one of the systems of equations
A * X = B, A**T * X = B, or A**H * X = B, with a tri-
diagonal matrix A using the LU factorization computed by
CGTTRF.
TRANSA (input)
Specifies the form of the system of equations. =
'N': A * X = B (No transpose)
= 'T': A**T * X = B (Transpose)
= 'C': A**H * X = B (Conjugate transpose)
TRANSA is defaulted to 'N' for F95 INTERFACE.
N (input) The order of the matrix A.
NRHS (input)
The number of right hand sides, i.e., the number
of columns of the matrix B. NRHS >= 0.
LOW (input)
The (n-1) multipliers that define the matrix L
from the LU factorization of A.
DIAG (input)
The n diagonal elements of the upper triangular
matrix U from the LU factorization of A.
UP1 (input)
The (n-1) elements of the first super-diagonal of
U.
UP2 (input)
The (n-2) elements of the second super-diagonal of
U.
IPIVOT (input)
The pivot indices; for 1 <= i <= n, row i of the
matrix was interchanged with row IPIVOT(i).
IPIVOT(i) will always be either i or i+1;
IPIVOT(i) = i indicates a row interchange was not
required.
B (input/output)
On entry, the matrix of right hand side vectors B.
On exit, B is overwritten by the solution vectors
X.
LDB (input)
The leading dimension of the array B. LDB >=
max(1,N).
INFO (output)
= 0: successful exit
< 0: if INFO = -k, the k-th argument had an ille-
gal value