--- rpl/lapack/lapack/zlaesy.f 2010/01/26 15:22:46 1.1.1.1
+++ rpl/lapack/lapack/zlaesy.f 2012/08/22 09:48:35 1.11
@@ -1,61 +1,129 @@
+*> \brief \b ZLAESY
+*
+* =========== DOCUMENTATION ===========
+*
+* Online html documentation available at
+* http://www.netlib.org/lapack/explore-html/
+*
+*> \htmlonly
+*> Download ZLAESY + dependencies
+*>
+*> [TGZ]
+*>
+*> [ZIP]
+*>
+*> [TXT]
+*> \endhtmlonly
+*
+* Definition:
+* ===========
+*
+* SUBROUTINE ZLAESY( A, B, C, RT1, RT2, EVSCAL, CS1, SN1 )
+*
+* .. Scalar Arguments ..
+* COMPLEX*16 A, B, C, CS1, EVSCAL, RT1, RT2, SN1
+* ..
+*
+*
+*> \par Purpose:
+* =============
+*>
+*> \verbatim
+*>
+*> ZLAESY computes the eigendecomposition of a 2-by-2 symmetric matrix
+*> ( ( A, B );( B, C ) )
+*> provided the norm of the matrix of eigenvectors is larger than
+*> some threshold value.
+*>
+*> RT1 is the eigenvalue of larger absolute value, and RT2 of
+*> smaller absolute value. If the eigenvectors are computed, then
+*> on return ( CS1, SN1 ) is the unit eigenvector for RT1, hence
+*>
+*> [ CS1 SN1 ] . [ A B ] . [ CS1 -SN1 ] = [ RT1 0 ]
+*> [ -SN1 CS1 ] [ B C ] [ SN1 CS1 ] [ 0 RT2 ]
+*> \endverbatim
+*
+* Arguments:
+* ==========
+*
+*> \param[in] A
+*> \verbatim
+*> A is COMPLEX*16
+*> The ( 1, 1 ) element of input matrix.
+*> \endverbatim
+*>
+*> \param[in] B
+*> \verbatim
+*> B is COMPLEX*16
+*> The ( 1, 2 ) element of input matrix. The ( 2, 1 ) element
+*> is also given by B, since the 2-by-2 matrix is symmetric.
+*> \endverbatim
+*>
+*> \param[in] C
+*> \verbatim
+*> C is COMPLEX*16
+*> The ( 2, 2 ) element of input matrix.
+*> \endverbatim
+*>
+*> \param[out] RT1
+*> \verbatim
+*> RT1 is COMPLEX*16
+*> The eigenvalue of larger modulus.
+*> \endverbatim
+*>
+*> \param[out] RT2
+*> \verbatim
+*> RT2 is COMPLEX*16
+*> The eigenvalue of smaller modulus.
+*> \endverbatim
+*>
+*> \param[out] EVSCAL
+*> \verbatim
+*> EVSCAL is COMPLEX*16
+*> The complex value by which the eigenvector matrix was scaled
+*> to make it orthonormal. If EVSCAL is zero, the eigenvectors
+*> were not computed. This means one of two things: the 2-by-2
+*> matrix could not be diagonalized, or the norm of the matrix
+*> of eigenvectors before scaling was larger than the threshold
+*> value THRESH (set below).
+*> \endverbatim
+*>
+*> \param[out] CS1
+*> \verbatim
+*> CS1 is COMPLEX*16
+*> \endverbatim
+*>
+*> \param[out] SN1
+*> \verbatim
+*> SN1 is COMPLEX*16
+*> If EVSCAL .NE. 0, ( CS1, SN1 ) is the unit right eigenvector
+*> for RT1.
+*> \endverbatim
+*
+* Authors:
+* ========
+*
+*> \author Univ. of Tennessee
+*> \author Univ. of California Berkeley
+*> \author Univ. of Colorado Denver
+*> \author NAG Ltd.
+*
+*> \date November 2011
+*
+*> \ingroup complex16SYauxiliary
+*
+* =====================================================================
SUBROUTINE ZLAESY( A, B, C, RT1, RT2, EVSCAL, CS1, SN1 )
*
-* -- 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 ..
COMPLEX*16 A, B, C, CS1, EVSCAL, RT1, RT2, SN1
* ..
*
-* Purpose
-* =======
-*
-* ZLAESY computes the eigendecomposition of a 2-by-2 symmetric matrix
-* ( ( A, B );( B, C ) )
-* provided the norm of the matrix of eigenvectors is larger than
-* some threshold value.
-*
-* RT1 is the eigenvalue of larger absolute value, and RT2 of
-* smaller absolute value. If the eigenvectors are computed, then
-* on return ( CS1, SN1 ) is the unit eigenvector for RT1, hence
-*
-* [ CS1 SN1 ] . [ A B ] . [ CS1 -SN1 ] = [ RT1 0 ]
-* [ -SN1 CS1 ] [ B C ] [ SN1 CS1 ] [ 0 RT2 ]
-*
-* Arguments
-* =========
-*
-* A (input) COMPLEX*16
-* The ( 1, 1 ) element of input matrix.
-*
-* B (input) COMPLEX*16
-* The ( 1, 2 ) element of input matrix. The ( 2, 1 ) element
-* is also given by B, since the 2-by-2 matrix is symmetric.
-*
-* C (input) COMPLEX*16
-* The ( 2, 2 ) element of input matrix.
-*
-* RT1 (output) COMPLEX*16
-* The eigenvalue of larger modulus.
-*
-* RT2 (output) COMPLEX*16
-* The eigenvalue of smaller modulus.
-*
-* EVSCAL (output) COMPLEX*16
-* The complex value by which the eigenvector matrix was scaled
-* to make it orthonormal. If EVSCAL is zero, the eigenvectors
-* were not computed. This means one of two things: the 2-by-2
-* matrix could not be diagonalized, or the norm of the matrix
-* of eigenvectors before scaling was larger than the threshold
-* value THRESH (set below).
-*
-* CS1 (output) COMPLEX*16
-* SN1 (output) COMPLEX*16
-* If EVSCAL .NE. 0, ( CS1, SN1 ) is the unit right eigenvector
-* for RT1.
-*
* =====================================================================
*
* .. Parameters ..
@@ -127,7 +195,7 @@
*
* Choose CS1 = 1 and SN1 to satisfy the first equation, then
* scale the components of this eigenvector so that the matrix
-* of eigenvectors X satisfies X * X' = I . (No scaling is
+* of eigenvectors X satisfies X * X**T = I . (No scaling is
* done if the norm of the eigenvalue matrix is less than THRESH.)
*
SN1 = ( RT1-A ) / B