cpttrs


NAME

cpttrs - solve a tridiagonal system of the form A * X = B using the factorization A = U'*D*U or A = L*D*L' computed by CPTTRF


SYNOPSIS

  SUBROUTINE CPTTRS( UPLO, N, NRHS, DIAG, OFFD, B, LDB, INFO)
  CHARACTER * 1 UPLO
  COMPLEX OFFD(*), B(LDB,*)
  INTEGER N, NRHS, LDB, INFO
  REAL DIAG(*)
 
  SUBROUTINE CPTTRS_64( UPLO, N, NRHS, DIAG, OFFD, B, LDB, INFO)
  CHARACTER * 1 UPLO
  COMPLEX OFFD(*), B(LDB,*)
  INTEGER*8 N, NRHS, LDB, INFO
  REAL DIAG(*)
 

F95 INTERFACE

  SUBROUTINE PTTRS( UPLO, [N], [NRHS], DIAG, OFFD, B, [LDB], [INFO])
  CHARACTER(LEN=1) :: UPLO
  COMPLEX, DIMENSION(:) :: OFFD
  COMPLEX, DIMENSION(:,:) :: B
  INTEGER :: N, NRHS, LDB, INFO
  REAL, DIMENSION(:) :: DIAG
 
  SUBROUTINE PTTRS_64( UPLO, [N], [NRHS], DIAG, OFFD, B, [LDB], [INFO])
  CHARACTER(LEN=1) :: UPLO
  COMPLEX, DIMENSION(:) :: OFFD
  COMPLEX, DIMENSION(:,:) :: B
  INTEGER(8) :: N, NRHS, LDB, INFO
  REAL, DIMENSION(:) :: DIAG
 

C INTERFACE

#include <sunperf.h>

void cpttrs(char uplo, int n, int nrhs, float *diag, complex *offd, complex *b, int ldb, int *info);

void cpttrs_64(char uplo, long n, long nrhs, float *diag, complex *offd, complex *b, long ldb, long *info);


PURPOSE

cpttrs solves a tridiagonal system of the form A * X = B using the factorization A = U'*D*U or A = L*D*L' computed by CPTTRF. D is a diagonal matrix specified in the vector D, U (or L) is a unit bidiagonal matrix whose superdiagonal (subdiagonal) is specified in the vector E, and X and B are N by NRHS matrices.


ARGUMENTS

* UPLO (input)
Specifies the form of the factorization and whether the vector OFFD is the superdiagonal of the upper bidiagonal factor U or the subdiagonal of the lower bidiagonal factor L.

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

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

* DIAG (input)
The n diagonal elements of the diagonal matrix DIAG from the factorization A = U'*DIAG*U or A = L*DIAG*L'.

* OFFD (input/output)
If UPLO = 'U', the (n-1) superdiagonal elements of the unit bidiagonal factor U from the factorization A = U'*DIAG*U. If UPLO = 'L', the (n-1) subdiagonal elements of the unit bidiagonal factor L from the factorization A = L*DIAG*L'.

* B (input/output)
On entry, the right hand side vectors B for the system of linear equations. On exit, the solution vectors, X.

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

* INFO (output)