--- rpl/lapack/lapack/dgttrf.f 2010/08/06 15:28:38 1.3 +++ rpl/lapack/lapack/dgttrf.f 2023/08/07 08:38:52 1.18 @@ -1,9 +1,130 @@ +*> \brief \b DGTTRF +* +* =========== DOCUMENTATION =========== +* +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ +* +*> \htmlonly +*> Download DGTTRF + dependencies +*> +*> [TGZ] +*> +*> [ZIP] +*> +*> [TXT] +*> \endhtmlonly +* +* Definition: +* =========== +* +* SUBROUTINE DGTTRF( N, DL, D, DU, DU2, IPIV, INFO ) +* +* .. Scalar Arguments .. +* INTEGER INFO, N +* .. +* .. Array Arguments .. +* INTEGER IPIV( * ) +* DOUBLE PRECISION D( * ), DL( * ), DU( * ), DU2( * ) +* .. +* +* +*> \par Purpose: +* ============= +*> +*> \verbatim +*> +*> DGTTRF 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. +*> \endverbatim +* +* Arguments: +* ========== +* +*> \param[in] N +*> \verbatim +*> N is INTEGER +*> The order of the matrix A. +*> \endverbatim +*> +*> \param[in,out] DL +*> \verbatim +*> DL is DOUBLE PRECISION array, dimension (N-1) +*> On entry, DL must contain the (n-1) sub-diagonal elements of +*> A. +*> +*> On exit, DL is overwritten by the (n-1) multipliers that +*> define the matrix L from the LU factorization of A. +*> \endverbatim +*> +*> \param[in,out] D +*> \verbatim +*> D is DOUBLE PRECISION array, dimension (N) +*> On entry, D must contain the diagonal elements of A. +*> +*> On exit, D is overwritten by the n diagonal elements of the +*> upper triangular matrix U from the LU factorization of A. +*> \endverbatim +*> +*> \param[in,out] DU +*> \verbatim +*> DU is DOUBLE PRECISION array, dimension (N-1) +*> On entry, DU must contain the (n-1) super-diagonal elements +*> of A. +*> +*> On exit, DU is overwritten by the (n-1) elements of the first +*> super-diagonal of U. +*> \endverbatim +*> +*> \param[out] DU2 +*> \verbatim +*> DU2 is DOUBLE PRECISION array, dimension (N-2) +*> On exit, DU2 is overwritten by the (n-2) elements of the +*> second super-diagonal of U. +*> \endverbatim +*> +*> \param[out] IPIV +*> \verbatim +*> IPIV is INTEGER array, dimension (N) +*> The pivot indices; for 1 <= i <= n, row i of the matrix was +*> interchanged with row IPIV(i). IPIV(i) will always be either +*> i or i+1; IPIV(i) = i indicates a row interchange was not +*> required. +*> \endverbatim +*> +*> \param[out] INFO +*> \verbatim +*> INFO is INTEGER +*> = 0: successful exit +*> < 0: if INFO = -k, the k-th argument had an illegal value +*> > 0: if INFO = k, U(k,k) is exactly zero. The factorization +*> has been completed, but the factor U is exactly +*> singular, and division by zero will occur if it is used +*> to solve a system of equations. +*> \endverbatim +* +* Authors: +* ======== +* +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. +* +*> \ingroup doubleGTcomputational +* +* ===================================================================== SUBROUTINE DGTTRF( N, DL, D, DU, DU2, IPIV, INFO ) * -* -- LAPACK routine (version 3.2) -- +* -- LAPACK computational routine -- * -- LAPACK is a software package provided by Univ. of Tennessee, -- * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* November 2006 * * .. Scalar Arguments .. INTEGER INFO, N @@ -13,62 +134,6 @@ DOUBLE PRECISION D( * ), DL( * ), DU( * ), DU2( * ) * .. * -* Purpose -* ======= -* -* DGTTRF 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) INTEGER -* The order of the matrix A. -* -* DL (input/output) DOUBLE PRECISION array, dimension (N-1) -* On entry, DL must contain the (n-1) sub-diagonal elements of -* A. -* -* On exit, DL is overwritten by the (n-1) multipliers that -* define the matrix L from the LU factorization of A. -* -* D (input/output) DOUBLE PRECISION array, dimension (N) -* On entry, D must contain the diagonal elements of A. -* -* On exit, D is overwritten by the n diagonal elements of the -* upper triangular matrix U from the LU factorization of A. -* -* DU (input/output) DOUBLE PRECISION array, dimension (N-1) -* On entry, DU must contain the (n-1) super-diagonal elements -* of A. -* -* On exit, DU is overwritten by the (n-1) elements of the first -* super-diagonal of U. -* -* DU2 (output) DOUBLE PRECISION array, dimension (N-2) -* On exit, DU2 is overwritten by the (n-2) elements of the -* second super-diagonal of U. -* -* IPIV (output) INTEGER array, dimension (N) -* The pivot indices; for 1 <= i <= n, row i of the matrix was -* interchanged with row IPIV(i). IPIV(i) will always be either -* i or i+1; IPIV(i) = i indicates a row interchange was not -* required. -* -* INFO (output) INTEGER -* = 0: successful exit -* < 0: if INFO = -k, the k-th argument had an illegal value -* > 0: if INFO = k, U(k,k) is exactly zero. The factorization -* has been completed, but the factor U is exactly -* singular, and division by zero will occur if it is used -* to solve a system of equations. -* * ===================================================================== * * .. Parameters ..