--- rpl/lapack/lapack/dlaqtr.f 2010/08/13 21:03:50 1.6
+++ rpl/lapack/lapack/dlaqtr.f 2011/11/21 22:19:33 1.10
@@ -1,10 +1,174 @@
+*> \brief \b DLAQTR
+*
+* =========== DOCUMENTATION ===========
+*
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
+*
+*> \htmlonly
+*> Download DLAQTR + dependencies
+*>
+*> [TGZ]
+*>
+*> [ZIP]
+*>
+*> [TXT]
+*> \endhtmlonly
+*
+* Definition:
+* ===========
+*
+* SUBROUTINE DLAQTR( LTRAN, LREAL, N, T, LDT, B, W, SCALE, X, WORK,
+* INFO )
+*
+* .. Scalar Arguments ..
+* LOGICAL LREAL, LTRAN
+* INTEGER INFO, LDT, N
+* DOUBLE PRECISION SCALE, W
+* ..
+* .. Array Arguments ..
+* DOUBLE PRECISION B( * ), T( LDT, * ), WORK( * ), X( * )
+* ..
+*
+*
+*> \par Purpose:
+* =============
+*>
+*> \verbatim
+*>
+*> DLAQTR solves the real quasi-triangular system
+*>
+*> op(T)*p = scale*c, if LREAL = .TRUE.
+*>
+*> or the complex quasi-triangular systems
+*>
+*> op(T + iB)*(p+iq) = scale*(c+id), if LREAL = .FALSE.
+*>
+*> in real arithmetic, where T is upper quasi-triangular.
+*> If LREAL = .FALSE., then the first diagonal block of T must be
+*> 1 by 1, B is the specially structured matrix
+*>
+*> B = [ b(1) b(2) ... b(n) ]
+*> [ w ]
+*> [ w ]
+*> [ . ]
+*> [ w ]
+*>
+*> op(A) = A or A**T, A**T denotes the transpose of
+*> matrix A.
+*>
+*> On input, X = [ c ]. On output, X = [ p ].
+*> [ d ] [ q ]
+*>
+*> This subroutine is designed for the condition number estimation
+*> in routine DTRSNA.
+*> \endverbatim
+*
+* Arguments:
+* ==========
+*
+*> \param[in] LTRAN
+*> \verbatim
+*> LTRAN is LOGICAL
+*> On entry, LTRAN specifies the option of conjugate transpose:
+*> = .FALSE., op(T+i*B) = T+i*B,
+*> = .TRUE., op(T+i*B) = (T+i*B)**T.
+*> \endverbatim
+*>
+*> \param[in] LREAL
+*> \verbatim
+*> LREAL is LOGICAL
+*> On entry, LREAL specifies the input matrix structure:
+*> = .FALSE., the input is complex
+*> = .TRUE., the input is real
+*> \endverbatim
+*>
+*> \param[in] N
+*> \verbatim
+*> N is INTEGER
+*> On entry, N specifies the order of T+i*B. N >= 0.
+*> \endverbatim
+*>
+*> \param[in] T
+*> \verbatim
+*> T is DOUBLE PRECISION array, dimension (LDT,N)
+*> On entry, T contains a matrix in Schur canonical form.
+*> If LREAL = .FALSE., then the first diagonal block of T mu
+*> be 1 by 1.
+*> \endverbatim
+*>
+*> \param[in] LDT
+*> \verbatim
+*> LDT is INTEGER
+*> The leading dimension of the matrix T. LDT >= max(1,N).
+*> \endverbatim
+*>
+*> \param[in] B
+*> \verbatim
+*> B is DOUBLE PRECISION array, dimension (N)
+*> On entry, B contains the elements to form the matrix
+*> B as described above.
+*> If LREAL = .TRUE., B is not referenced.
+*> \endverbatim
+*>
+*> \param[in] W
+*> \verbatim
+*> W is DOUBLE PRECISION
+*> On entry, W is the diagonal element of the matrix B.
+*> If LREAL = .TRUE., W is not referenced.
+*> \endverbatim
+*>
+*> \param[out] SCALE
+*> \verbatim
+*> SCALE is DOUBLE PRECISION
+*> On exit, SCALE is the scale factor.
+*> \endverbatim
+*>
+*> \param[in,out] X
+*> \verbatim
+*> X is DOUBLE PRECISION array, dimension (2*N)
+*> On entry, X contains the right hand side of the system.
+*> On exit, X is overwritten by the solution.
+*> \endverbatim
+*>
+*> \param[out] WORK
+*> \verbatim
+*> WORK is DOUBLE PRECISION array, dimension (N)
+*> \endverbatim
+*>
+*> \param[out] INFO
+*> \verbatim
+*> INFO is INTEGER
+*> On exit, INFO is set to
+*> 0: successful exit.
+*> 1: the some diagonal 1 by 1 block has been perturbed by
+*> a small number SMIN to keep nonsingularity.
+*> 2: the some diagonal 2 by 2 block has been perturbed by
+*> a small number in DLALN2 to keep nonsingularity.
+*> NOTE: In the interests of speed, this routine does not
+*> check the inputs for errors.
+*> \endverbatim
+*
+* Authors:
+* ========
+*
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
+*
+*> \date November 2011
+*
+*> \ingroup doubleOTHERauxiliary
+*
+* =====================================================================
SUBROUTINE DLAQTR( LTRAN, LREAL, N, T, LDT, B, W, SCALE, X, WORK,
$ INFO )
*
-* -- LAPACK auxiliary routine (version 3.2) --
+* -- LAPACK auxiliary 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 ..
LOGICAL LREAL, LTRAN
@@ -15,88 +179,6 @@
DOUBLE PRECISION B( * ), T( LDT, * ), WORK( * ), X( * )
* ..
*
-* Purpose
-* =======
-*
-* DLAQTR solves the real quasi-triangular system
-*
-* op(T)*p = scale*c, if LREAL = .TRUE.
-*
-* or the complex quasi-triangular systems
-*
-* op(T + iB)*(p+iq) = scale*(c+id), if LREAL = .FALSE.
-*
-* in real arithmetic, where T is upper quasi-triangular.
-* If LREAL = .FALSE., then the first diagonal block of T must be
-* 1 by 1, B is the specially structured matrix
-*
-* B = [ b(1) b(2) ... b(n) ]
-* [ w ]
-* [ w ]
-* [ . ]
-* [ w ]
-*
-* op(A) = A or A', A' denotes the conjugate transpose of
-* matrix A.
-*
-* On input, X = [ c ]. On output, X = [ p ].
-* [ d ] [ q ]
-*
-* This subroutine is designed for the condition number estimation
-* in routine DTRSNA.
-*
-* Arguments
-* =========
-*
-* LTRAN (input) LOGICAL
-* On entry, LTRAN specifies the option of conjugate transpose:
-* = .FALSE., op(T+i*B) = T+i*B,
-* = .TRUE., op(T+i*B) = (T+i*B)'.
-*
-* LREAL (input) LOGICAL
-* On entry, LREAL specifies the input matrix structure:
-* = .FALSE., the input is complex
-* = .TRUE., the input is real
-*
-* N (input) INTEGER
-* On entry, N specifies the order of T+i*B. N >= 0.
-*
-* T (input) DOUBLE PRECISION array, dimension (LDT,N)
-* On entry, T contains a matrix in Schur canonical form.
-* If LREAL = .FALSE., then the first diagonal block of T mu
-* be 1 by 1.
-*
-* LDT (input) INTEGER
-* The leading dimension of the matrix T. LDT >= max(1,N).
-*
-* B (input) DOUBLE PRECISION array, dimension (N)
-* On entry, B contains the elements to form the matrix
-* B as described above.
-* If LREAL = .TRUE., B is not referenced.
-*
-* W (input) DOUBLE PRECISION
-* On entry, W is the diagonal element of the matrix B.
-* If LREAL = .TRUE., W is not referenced.
-*
-* SCALE (output) DOUBLE PRECISION
-* On exit, SCALE is the scale factor.
-*
-* X (input/output) DOUBLE PRECISION array, dimension (2*N)
-* On entry, X contains the right hand side of the system.
-* On exit, X is overwritten by the solution.
-*
-* WORK (workspace) DOUBLE PRECISION array, dimension (N)
-*
-* INFO (output) INTEGER
-* On exit, INFO is set to
-* 0: successful exit.
-* 1: the some diagonal 1 by 1 block has been perturbed by
-* a small number SMIN to keep nonsingularity.
-* 2: the some diagonal 2 by 2 block has been perturbed by
-* a small number in DLALN2 to keep nonsingularity.
-* NOTE: In the interests of speed, this routine does not
-* check the inputs for errors.
-*
* =====================================================================
*
* .. Parameters ..
@@ -290,7 +372,7 @@
*
ELSE
*
-* Solve T'*p = scale*c
+* Solve T**T*p = scale*c
*
JNEXT = 1
DO 40 J = 1, N
@@ -532,7 +614,7 @@
*
ELSE
*
-* Solve (T + iB)'*(p+iq) = c+id
+* Solve (T + iB)**T*(p+iq) = c+id
*
JNEXT = 1
DO 80 J = 1, N