spttrs


NAME

spttrs - solve a tridiagonal system of the form A * X = B using the L*D*L' factorization of A computed by SPTTRF


SYNOPSIS

  SUBROUTINE SPTTRS( N, NRHS, DIAG, OFFD, B, LDB, INFO)
  INTEGER N, NRHS, LDB, INFO
  REAL DIAG(*), OFFD(*), B(LDB,*)
 
  SUBROUTINE SPTTRS_64( N, NRHS, DIAG, OFFD, B, LDB, INFO)
  INTEGER*8 N, NRHS, LDB, INFO
  REAL DIAG(*), OFFD(*), B(LDB,*)
 

F95 INTERFACE

  SUBROUTINE PTTRS( [N], [NRHS], DIAG, OFFD, B, [LDB], [INFO])
  INTEGER :: N, NRHS, LDB, INFO
  REAL, DIMENSION(:) :: DIAG, OFFD
  REAL, DIMENSION(:,:) :: B
 
  SUBROUTINE PTTRS_64( [N], [NRHS], DIAG, OFFD, B, [LDB], [INFO])
  INTEGER(8) :: N, NRHS, LDB, INFO
  REAL, DIMENSION(:) :: DIAG, OFFD
  REAL, DIMENSION(:,:) :: B
 

C INTERFACE

#include <sunperf.h>

void spttrs(int n, int nrhs, float *diag, float *offd, float *b, int ldb, int *info);

void spttrs_64(long n, long nrhs, float *diag, float *offd, float *b, long ldb, long *info);


PURPOSE

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


ARGUMENTS

* 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 L*DIAG*L' factorization of A.

* OFFD (input/output)
The (n-1) subdiagonal elements of the unit bidiagonal factor L from the L*DIAG*L' factorization of A. OFFD can also be regarded as the superdiagonal of the unit bidiagonal factor U from the factorization A = U'*DIAG*U.

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