cgtsv
cgtsv - solve the equation A*X = B,
SUBROUTINE CGTSV( N, NRHS, LOW, DIAG, UP, B, LDB, INFO)
COMPLEX LOW(*), DIAG(*), UP(*), B(LDB,*)
INTEGER N, NRHS, LDB, INFO
SUBROUTINE CGTSV_64( N, NRHS, LOW, DIAG, UP, B, LDB, INFO)
COMPLEX LOW(*), DIAG(*), UP(*), B(LDB,*)
INTEGER*8 N, NRHS, LDB, INFO
SUBROUTINE GTSV( [N], [NRHS], LOW, DIAG, UP, B, [LDB], [INFO])
COMPLEX, DIMENSION(:) :: LOW, DIAG, UP
COMPLEX, DIMENSION(:,:) :: B
INTEGER :: N, NRHS, LDB, INFO
SUBROUTINE GTSV_64( [N], [NRHS], LOW, DIAG, UP, B, [LDB], [INFO])
COMPLEX, DIMENSION(:) :: LOW, DIAG, UP
COMPLEX, DIMENSION(:,:) :: B
INTEGER(8) :: N, NRHS, LDB, INFO
#include <sunperf.h>
void cgtsv(int n, int nrhs, complex *low, complex *diag, complex *up, complex *b, int ldb, int *info);
void cgtsv_64(long n, long nrhs, complex *low, complex *diag, complex *up, complex *b, long ldb, long *info);
cgtsv solves the equation
where A is an N-by-N tridiagonal matrix, by Gaussian elimination with
partial pivoting.
Note that the equation A'*X = B may be solved by interchanging the
order of the arguments DU and DL.
-
* N (input)
-
The order of the matrix A. N >= 0.
-
* NRHS (input)
-
The number of right hand sides, i.e., the number of columns
of the matrix B. NRHS >= 0.
-
* LOW (input/output)
-
On entry, LOW must contain the (n-1) subdiagonal elements of
A.
On exit, LOW is overwritten by the (n-2) elements of the
second superdiagonal of the upper triangular matrix U from
the LU factorization of A, in LOW(1), ..., LOW(n-2).
-
* DIAG (input/output)
-
On entry, DIAG must contain the diagonal elements of A.
On exit, DIAG is overwritten by the n diagonal elements of U.
-
* UP (input/output)
-
On entry, UP must contain the (n-1) superdiagonal elements
of A.
On exit, UP is overwritten by the (n-1) elements of the first
superdiagonal of U.
-
* B (input/output)
-
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)
-
The leading dimension of the array B. LDB >= max(1,N).
-
* INFO (output)
-