dgttrs - solve one of the systems of equations A*X = B or A'*X = B,
SUBROUTINE DGTTRS( TRANSA, N, NRHS, LOW, DIAG, UP1, UP2, IPIVOT, B, * LDB, INFO) CHARACTER * 1 TRANSA INTEGER N, NRHS, LDB, INFO INTEGER IPIVOT(*) DOUBLE PRECISION LOW(*), DIAG(*), UP1(*), UP2(*), B(LDB,*)
SUBROUTINE DGTTRS_64( TRANSA, N, NRHS, LOW, DIAG, UP1, UP2, IPIVOT, * B, LDB, INFO) CHARACTER * 1 TRANSA INTEGER*8 N, NRHS, LDB, INFO INTEGER*8 IPIVOT(*) DOUBLE PRECISION LOW(*), DIAG(*), UP1(*), UP2(*), B(LDB,*)
SUBROUTINE GTTRS( [TRANSA], [N], [NRHS], LOW, DIAG, UP1, UP2, * IPIVOT, B, [LDB], [INFO]) CHARACTER(LEN=1) :: TRANSA INTEGER :: N, NRHS, LDB, INFO INTEGER, DIMENSION(:) :: IPIVOT REAL(8), DIMENSION(:) :: LOW, DIAG, UP1, UP2 REAL(8), DIMENSION(:,:) :: B
SUBROUTINE GTTRS_64( [TRANSA], [N], [NRHS], LOW, DIAG, UP1, UP2, * IPIVOT, B, [LDB], [INFO]) CHARACTER(LEN=1) :: TRANSA INTEGER(8) :: N, NRHS, LDB, INFO INTEGER(8), DIMENSION(:) :: IPIVOT REAL(8), DIMENSION(:) :: LOW, DIAG, UP1, UP2 REAL(8), DIMENSION(:,:) :: B
#include <sunperf.h>
void dgttrs(char transa, int n, int nrhs, double *low, double *diag, double *up1, double *up2, int *ipivot, double *b, int ldb, int *info);
void dgttrs_64(char transa, long n, long nrhs, double *low, double *diag, double *up1, double *up2, long *ipivot, double *b, long ldb, long *info);
dgttrs solves one of the systems of equations A*X = B or A'*X = B, with a tridiagonal matrix A using the LU factorization computed by SGTTRF.
= 'T': A'* X = B (Transpose)
= 'C': A'* X = B (Conjugate transpose = Transpose)
IPIVOT(i)
will always be either
i or i+1; IPIVOT(i)
= i indicates a row interchange was not
required.
= 0: successful exit
< 0: if INFO = -i, the i-th argument had an illegal value