Contents


NAME

     dpttrf - compute the L*D*L' factorization  of  a  real  sym-
     metric positive definite tridiagonal matrix A

SYNOPSIS

     SUBROUTINE DPTTRF(N, D, E, INFO)

     INTEGER N, INFO
     DOUBLE PRECISION D(*), E(*)

     SUBROUTINE DPTTRF_64(N, D, E, INFO)

     INTEGER*8 N, INFO
     DOUBLE PRECISION D(*), E(*)

  F95 INTERFACE
     SUBROUTINE PTTRF([N], D, E, [INFO])

     INTEGER :: N, INFO
     REAL(8), DIMENSION(:) :: D, E

     SUBROUTINE PTTRF_64([N], D, E, [INFO])

     INTEGER(8) :: N, INFO
     REAL(8), DIMENSION(:) :: D, E

  C INTERFACE
     #include <sunperf.h>

     void dpttrf(int n, double *d, double *e, int *info);

     void dpttrf_64(long n, double *d, double *e, long *info);

PURPOSE

     dpttrf computes the L*D*L' factorization of a real symmetric
     positive  definite  tridiagonal matrix A.  The factorization
     may also be regarded as having the form A = U'*D*U.

ARGUMENTS

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

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

     E (input/output)
               On entry, the (n-1) subdiagonal  elements  of  the
               tridiagonal matrix A.  On exit, the (n-1) subdiag-
               onal elements of the unit bidiagonal factor L from
               the  L*D*L'  factorization  of  A.   E can also be
               regarded as the superdiagonal of the unit bidiago-
               nal factor U from the U'*D*U factorization of A.

     INFO (output)
               = 0: successful exit
               < 0: if INFO = -k, the k-th argument had an  ille-
               gal value
               > 0: if INFO = k, the leading minor of order k  is
               not positive definite; if k < N, the factorization
               could not be completed, while if k = N,  the  fac-
               torization was completed, but D(N) = 0.