--- rpl/lapack/lapack/dlagtf.f 2010/12/21 13:53:29 1.7
+++ rpl/lapack/lapack/dlagtf.f 2011/11/21 20:42:55 1.8
@@ -1,9 +1,165 @@
+*> \brief \b DLAGTF
+*
+* =========== DOCUMENTATION ===========
+*
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
+*
+*> \htmlonly
+*> Download DLAGTF + dependencies
+*>
+*> [TGZ]
+*>
+*> [ZIP]
+*>
+*> [TXT]
+*> \endhtmlonly
+*
+* Definition:
+* ===========
+*
+* SUBROUTINE DLAGTF( N, A, LAMBDA, B, C, TOL, D, IN, INFO )
+*
+* .. Scalar Arguments ..
+* INTEGER INFO, N
+* DOUBLE PRECISION LAMBDA, TOL
+* ..
+* .. Array Arguments ..
+* INTEGER IN( * )
+* DOUBLE PRECISION A( * ), B( * ), C( * ), D( * )
+* ..
+*
+*
+*> \par Purpose:
+* =============
+*>
+*> \verbatim
+*>
+*> DLAGTF factorizes the matrix (T - lambda*I), where T is an n by n
+*> tridiagonal matrix and lambda is a scalar, as
+*>
+*> T - lambda*I = PLU,
+*>
+*> where P is a permutation matrix, L is a unit lower tridiagonal matrix
+*> with at most one non-zero sub-diagonal elements per column and U is
+*> an upper triangular matrix with at most two non-zero super-diagonal
+*> elements per column.
+*>
+*> The factorization is obtained by Gaussian elimination with partial
+*> pivoting and implicit row scaling.
+*>
+*> The parameter LAMBDA is included in the routine so that DLAGTF may
+*> be used, in conjunction with DLAGTS, to obtain eigenvectors of T by
+*> inverse iteration.
+*> \endverbatim
+*
+* Arguments:
+* ==========
+*
+*> \param[in] N
+*> \verbatim
+*> N is INTEGER
+*> The order of the matrix T.
+*> \endverbatim
+*>
+*> \param[in,out] A
+*> \verbatim
+*> A is DOUBLE PRECISION array, dimension (N)
+*> On entry, A must contain the diagonal elements of T.
+*>
+*> On exit, A is overwritten by the n diagonal elements of the
+*> upper triangular matrix U of the factorization of T.
+*> \endverbatim
+*>
+*> \param[in] LAMBDA
+*> \verbatim
+*> LAMBDA is DOUBLE PRECISION
+*> On entry, the scalar lambda.
+*> \endverbatim
+*>
+*> \param[in,out] B
+*> \verbatim
+*> B is DOUBLE PRECISION array, dimension (N-1)
+*> On entry, B must contain the (n-1) super-diagonal elements of
+*> T.
+*>
+*> On exit, B is overwritten by the (n-1) super-diagonal
+*> elements of the matrix U of the factorization of T.
+*> \endverbatim
+*>
+*> \param[in,out] C
+*> \verbatim
+*> C is DOUBLE PRECISION array, dimension (N-1)
+*> On entry, C must contain the (n-1) sub-diagonal elements of
+*> T.
+*>
+*> On exit, C is overwritten by the (n-1) sub-diagonal elements
+*> of the matrix L of the factorization of T.
+*> \endverbatim
+*>
+*> \param[in] TOL
+*> \verbatim
+*> TOL is DOUBLE PRECISION
+*> On entry, a relative tolerance used to indicate whether or
+*> not the matrix (T - lambda*I) is nearly singular. TOL should
+*> normally be chose as approximately the largest relative error
+*> in the elements of T. For example, if the elements of T are
+*> correct to about 4 significant figures, then TOL should be
+*> set to about 5*10**(-4). If TOL is supplied as less than eps,
+*> where eps is the relative machine precision, then the value
+*> eps is used in place of TOL.
+*> \endverbatim
+*>
+*> \param[out] D
+*> \verbatim
+*> D is DOUBLE PRECISION array, dimension (N-2)
+*> On exit, D is overwritten by the (n-2) second super-diagonal
+*> elements of the matrix U of the factorization of T.
+*> \endverbatim
+*>
+*> \param[out] IN
+*> \verbatim
+*> IN is INTEGER array, dimension (N)
+*> On exit, IN contains details of the permutation matrix P. If
+*> an interchange occurred at the kth step of the elimination,
+*> then IN(k) = 1, otherwise IN(k) = 0. The element IN(n)
+*> returns the smallest positive integer j such that
+*>
+*> abs( u(j,j) ).le. norm( (T - lambda*I)(j) )*TOL,
+*>
+*> where norm( A(j) ) denotes the sum of the absolute values of
+*> the jth row of the matrix A. If no such j exists then IN(n)
+*> is returned as zero. If IN(n) is returned as positive, then a
+*> diagonal element of U is small, indicating that
+*> (T - lambda*I) is singular or nearly singular,
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*> INFO is INTEGER
+*> = 0 : successful exit
+*> .lt. 0: if INFO = -k, the kth argument had an illegal value
+*> \endverbatim
+*
+* Authors:
+* ========
+*
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
+*
+*> \date November 2011
+*
+*> \ingroup auxOTHERcomputational
+*
+* =====================================================================
SUBROUTINE DLAGTF( N, A, LAMBDA, B, C, TOL, D, IN, INFO )
*
-* -- LAPACK routine (version 3.2) --
+* -- LAPACK computational routine (version 3.4.0) --
* -- LAPACK is a software package provided by Univ. of Tennessee, --
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
-* November 2006
+* November 2011
*
* .. Scalar Arguments ..
INTEGER INFO, N
@@ -14,87 +170,6 @@
DOUBLE PRECISION A( * ), B( * ), C( * ), D( * )
* ..
*
-* Purpose
-* =======
-*
-* DLAGTF factorizes the matrix (T - lambda*I), where T is an n by n
-* tridiagonal matrix and lambda is a scalar, as
-*
-* T - lambda*I = PLU,
-*
-* where P is a permutation matrix, L is a unit lower tridiagonal matrix
-* with at most one non-zero sub-diagonal elements per column and U is
-* an upper triangular matrix with at most two non-zero super-diagonal
-* elements per column.
-*
-* The factorization is obtained by Gaussian elimination with partial
-* pivoting and implicit row scaling.
-*
-* The parameter LAMBDA is included in the routine so that DLAGTF may
-* be used, in conjunction with DLAGTS, to obtain eigenvectors of T by
-* inverse iteration.
-*
-* Arguments
-* =========
-*
-* N (input) INTEGER
-* The order of the matrix T.
-*
-* A (input/output) DOUBLE PRECISION array, dimension (N)
-* On entry, A must contain the diagonal elements of T.
-*
-* On exit, A is overwritten by the n diagonal elements of the
-* upper triangular matrix U of the factorization of T.
-*
-* LAMBDA (input) DOUBLE PRECISION
-* On entry, the scalar lambda.
-*
-* B (input/output) DOUBLE PRECISION array, dimension (N-1)
-* On entry, B must contain the (n-1) super-diagonal elements of
-* T.
-*
-* On exit, B is overwritten by the (n-1) super-diagonal
-* elements of the matrix U of the factorization of T.
-*
-* C (input/output) DOUBLE PRECISION array, dimension (N-1)
-* On entry, C must contain the (n-1) sub-diagonal elements of
-* T.
-*
-* On exit, C is overwritten by the (n-1) sub-diagonal elements
-* of the matrix L of the factorization of T.
-*
-* TOL (input) DOUBLE PRECISION
-* On entry, a relative tolerance used to indicate whether or
-* not the matrix (T - lambda*I) is nearly singular. TOL should
-* normally be chose as approximately the largest relative error
-* in the elements of T. For example, if the elements of T are
-* correct to about 4 significant figures, then TOL should be
-* set to about 5*10**(-4). If TOL is supplied as less than eps,
-* where eps is the relative machine precision, then the value
-* eps is used in place of TOL.
-*
-* D (output) DOUBLE PRECISION array, dimension (N-2)
-* On exit, D is overwritten by the (n-2) second super-diagonal
-* elements of the matrix U of the factorization of T.
-*
-* IN (output) INTEGER array, dimension (N)
-* On exit, IN contains details of the permutation matrix P. If
-* an interchange occurred at the kth step of the elimination,
-* then IN(k) = 1, otherwise IN(k) = 0. The element IN(n)
-* returns the smallest positive integer j such that
-*
-* abs( u(j,j) ).le. norm( (T - lambda*I)(j) )*TOL,
-*
-* where norm( A(j) ) denotes the sum of the absolute values of
-* the jth row of the matrix A. If no such j exists then IN(n)
-* is returned as zero. If IN(n) is returned as positive, then a
-* diagonal element of U is small, indicating that
-* (T - lambda*I) is singular or nearly singular,
-*
-* INFO (output) INTEGER
-* = 0 : successful exit
-* .lt. 0: if INFO = -k, the kth argument had an illegal value
-*
* =====================================================================
*
* .. Parameters ..