sgttrf


NAME

sgttrf - compute an LU factorization of a real tridiagonal matrix A using elimination with partial pivoting and row interchanges


SYNOPSIS

  SUBROUTINE SGTTRF( N, LOW, DIAG, UP1, UP2, IPIVOT, INFO)
  INTEGER N, INFO
  INTEGER IPIVOT(*)
  REAL LOW(*), DIAG(*), UP1(*), UP2(*)
 
  SUBROUTINE SGTTRF_64( N, LOW, DIAG, UP1, UP2, IPIVOT, INFO)
  INTEGER*8 N, INFO
  INTEGER*8 IPIVOT(*)
  REAL LOW(*), DIAG(*), UP1(*), UP2(*)
 

F95 INTERFACE

  SUBROUTINE GTTRF( [N], LOW, DIAG, UP1, UP2, IPIVOT, [INFO])
  INTEGER :: N, INFO
  INTEGER, DIMENSION(:) :: IPIVOT
  REAL, DIMENSION(:) :: LOW, DIAG, UP1, UP2
 
  SUBROUTINE GTTRF_64( [N], LOW, DIAG, UP1, UP2, IPIVOT, [INFO])
  INTEGER(8) :: N, INFO
  INTEGER(8), DIMENSION(:) :: IPIVOT
  REAL, DIMENSION(:) :: LOW, DIAG, UP1, UP2
 

C INTERFACE

#include <sunperf.h>

void sgttrf(int n, float *low, float *diag, float *up1, float *up2, int *ipivot, int *info);

void sgttrf_64(long n, float *low, float *diag, float *up1, float *up2, long *ipivot, long *info);


PURPOSE

sgttrf computes an LU factorization of a real tridiagonal matrix A using elimination with partial pivoting and row interchanges.

The factorization has the form

   A = L * U

where L is a product of permutation and unit lower bidiagonal matrices and U is upper triangular with nonzeros in only the main diagonal and first two superdiagonals.


ARGUMENTS

* N (input)
The order of the matrix A.

* LOW (input/output)
On entry, LOW must contain the (n-1) sub-diagonal elements of A.

On exit, LOW is overwritten by the (n-1) multipliers that define the matrix L from the LU factorization of A.

* DIAG (input/output)
On entry, DIAG must contain the diagonal elements of A.

On exit, DIAG is overwritten by the n diagonal elements of the upper triangular matrix U from the LU factorization of A.

* UP1 (input/output)
On entry, UP1 must contain the (n-1) super-diagonal elements of A.

On exit, UP1 is overwritten by the (n-1) elements of the first super-diagonal of U.

* UP2 (output)
On exit, UP2 is overwritten by the (n-2) elements of the second super-diagonal of U.

* IPIVOT (output)
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.

* INFO (output)