cptsv


NAME

cptsv - compute the solution to a complex system of linear equations A*X = B, where A is an N-by-N Hermitian positive definite tridiagonal matrix, and X and B are N-by-NRHS matrices.


SYNOPSIS

  SUBROUTINE CPTSV( N, NRHS, DIAG, SUB, B, LDB, INFO)
  COMPLEX SUB(*), B(LDB,*)
  INTEGER N, NRHS, LDB, INFO
  REAL DIAG(*)
 
  SUBROUTINE CPTSV_64( N, NRHS, DIAG, SUB, B, LDB, INFO)
  COMPLEX SUB(*), B(LDB,*)
  INTEGER*8 N, NRHS, LDB, INFO
  REAL DIAG(*)
 

F95 INTERFACE

  SUBROUTINE PTSV( [N], [NRHS], DIAG, SUB, B, [LDB], [INFO])
  COMPLEX, DIMENSION(:) :: SUB
  COMPLEX, DIMENSION(:,:) :: B
  INTEGER :: N, NRHS, LDB, INFO
  REAL, DIMENSION(:) :: DIAG
 
  SUBROUTINE PTSV_64( [N], [NRHS], DIAG, SUB, B, [LDB], [INFO])
  COMPLEX, DIMENSION(:) :: SUB
  COMPLEX, DIMENSION(:,:) :: B
  INTEGER(8) :: N, NRHS, LDB, INFO
  REAL, DIMENSION(:) :: DIAG
 

C INTERFACE

#include <sunperf.h>

void cptsv(int n, int nrhs, float *diag, complex *sub, complex *b, int ldb, int *info);

void cptsv_64(long n, long nrhs, float *diag, complex *sub, complex *b, long ldb, long *info);


PURPOSE

cptsv computes the solution to a complex system of linear equations A*X = B, where A is an N-by-N Hermitian positive definite tridiagonal matrix, and X and B are N-by-NRHS matrices.

A is factored as A = L*D*L**H, and the factored form of A is then used to solve the system of equations.


ARGUMENTS

* 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.

* DIAG (input/output)
On entry, the n diagonal elements of the tridiagonal matrix A. On exit, the n diagonal elements of the diagonal matrix DIAG from the factorization A = L*DIAG*L**H.

* SUB (input/output)
On entry, the (n-1) subdiagonal elements of the tridiagonal matrix A. On exit, the (n-1) subdiagonal elements of the unit bidiagonal factor L from the L*DIAG*L**H factorization of A. SUB can also be regarded as the superdiagonal of the unit bidiagonal factor U from the U**H*DIAG*U factorization of A.

* 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)