cgttrs - solve one of the systems of equations A*X=B, A**T*X=B, or A**H*X=B, with a tridiagonal matrix A using the LU factorization com- puted by CGTTRF
SUBROUTINE CGTTRS(TRANSA, N, NRHS, LOW, D, UP1, UP2, IPIVOT, B, LDB, INFO) CHARACTER*1 TRANSA COMPLEX LOW(*), D(*), UP1(*), UP2(*), B(LDB,*) INTEGER N, NRHS, LDB, INFO INTEGER IPIVOT(*) SUBROUTINE CGTTRS_64(TRANSA, N, NRHS, LOW, D, UP1, UP2, IPIVOT, B, LDB, INFO) CHARACTER*1 TRANSA COMPLEX LOW(*), D(*), UP1(*), UP2(*), B(LDB,*) INTEGER*8 N, NRHS, LDB, INFO INTEGER*8 IPIVOT(*) F95 INTERFACE SUBROUTINE GTTRS(TRANSA, N, NRHS, LOW, D, UP1, UP2, IPIVOT, B, LDB, INFO) CHARACTER(LEN=1) :: TRANSA COMPLEX, DIMENSION(:) :: LOW, D, UP1, UP2 COMPLEX, DIMENSION(:,:) :: B INTEGER :: N, NRHS, LDB, INFO INTEGER, DIMENSION(:) :: IPIVOT SUBROUTINE GTTRS_64(TRANSA, N, NRHS, LOW, D, UP1, UP2, IPIVOT, B, LDB, INFO) CHARACTER(LEN=1) :: TRANSA COMPLEX, DIMENSION(:) :: LOW, D, 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, complex *d, complex *up1, complex *up2, int *ipivot, complex *b, int ldb, int *info); void cgttrs_64(char transa, long n, long nrhs, complex *low, complex *d, complex *up1, complex *up2, long *ipivot, complex *b, long ldb, long *info);
Oracle Solaris Studio Performance Library cgttrs(3P)
NAME
cgttrs - solve one of the systems of equations A*X=B, A**T*X=B, or
A**H*X=B, with a tridiagonal matrix A using the LU factorization com-
puted by CGTTRF
SYNOPSIS
SUBROUTINE CGTTRS(TRANSA, N, NRHS, LOW, D, UP1, UP2, IPIVOT, B,
LDB, INFO)
CHARACTER*1 TRANSA
COMPLEX LOW(*), D(*), UP1(*), UP2(*), B(LDB,*)
INTEGER N, NRHS, LDB, INFO
INTEGER IPIVOT(*)
SUBROUTINE CGTTRS_64(TRANSA, N, NRHS, LOW, D, UP1, UP2, IPIVOT, B,
LDB, INFO)
CHARACTER*1 TRANSA
COMPLEX LOW(*), D(*), UP1(*), UP2(*), B(LDB,*)
INTEGER*8 N, NRHS, LDB, INFO
INTEGER*8 IPIVOT(*)
F95 INTERFACE
SUBROUTINE GTTRS(TRANSA, N, NRHS, LOW, D, UP1, UP2, IPIVOT,
B, LDB, INFO)
CHARACTER(LEN=1) :: TRANSA
COMPLEX, DIMENSION(:) :: LOW, D, UP1, UP2
COMPLEX, DIMENSION(:,:) :: B
INTEGER :: N, NRHS, LDB, INFO
INTEGER, DIMENSION(:) :: IPIVOT
SUBROUTINE GTTRS_64(TRANSA, N, NRHS, LOW, D, UP1, UP2,
IPIVOT, B, LDB, INFO)
CHARACTER(LEN=1) :: TRANSA
COMPLEX, DIMENSION(:) :: LOW, D, 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, complex *d,
complex *up1, complex *up2, int *ipivot, complex *b, int ldb,
int *info);
void cgttrs_64(char transa, long n, long nrhs, complex *low, complex
*d, complex *up1, complex *up2, long *ipivot, complex *b,
long ldb, long *info);
PURPOSE
cgttrs solves one of the systems of equations
A * X = B, A**T * X = B, or A**H * X = B, with a tridiagonal
matrix A using the LU factorization computed by CGTTRF.
ARGUMENTS
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)
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.
D (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 illegal value
7 Nov 2015 cgttrs(3P)