diff options
author | julie <julielangou@users.noreply.github.com> | 2011-10-06 06:53:11 +0000 |
---|---|---|
committer | julie <julielangou@users.noreply.github.com> | 2011-10-06 06:53:11 +0000 |
commit | e1d39294aee16fa6db9ba079b14442358217db71 (patch) | |
tree | 30e5aa04c1f6596991fda5334f63dfb9b8027849 /SRC/slasd4.f | |
parent | 5fe0466a14e395641f4f8a300ecc9dcb8058081b (diff) | |
download | lapack-e1d39294aee16fa6db9ba079b14442358217db71.tar.gz lapack-e1d39294aee16fa6db9ba079b14442358217db71.tar.bz2 lapack-e1d39294aee16fa6db9ba079b14442358217db71.zip |
Integrating Doxygen in comments
Diffstat (limited to 'SRC/slasd4.f')
-rw-r--r-- | SRC/slasd4.f | 230 |
1 files changed, 153 insertions, 77 deletions
diff --git a/SRC/slasd4.f b/SRC/slasd4.f index ed614458..c2ee73fc 100644 --- a/SRC/slasd4.f +++ b/SRC/slasd4.f @@ -1,95 +1,171 @@ - SUBROUTINE SLASD4( N, I, D, Z, DELTA, RHO, SIGMA, WORK, INFO ) -* -* -- LAPACK auxiliary routine (version 3.3.1) -- -* -- LAPACK is a software package provided by Univ. of Tennessee, -- -* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- -* -- April 2011 -- -* -* .. Scalar Arguments .. - INTEGER I, INFO, N - REAL RHO, SIGMA -* .. -* .. Array Arguments .. - REAL D( * ), DELTA( * ), WORK( * ), Z( * ) -* .. -* +*> \brief \b SLASD4 +* +* =========== DOCUMENTATION =========== +* +* Online html documentation available at +* http://www.netlib.org/lapack/explore-html/ +* +* Definition +* ========== +* +* SUBROUTINE SLASD4( N, I, D, Z, DELTA, RHO, SIGMA, WORK, INFO ) +* +* .. Scalar Arguments .. +* INTEGER I, INFO, N +* REAL RHO, SIGMA +* .. +* .. Array Arguments .. +* REAL D( * ), DELTA( * ), WORK( * ), Z( * ) +* .. +* * Purpose * ======= * -* This subroutine computes the square root of the I-th updated -* eigenvalue of a positive symmetric rank-one modification to -* a positive diagonal matrix whose entries are given as the squares -* of the corresponding entries in the array d, and that -* -* 0 <= D(i) < D(j) for i < j -* -* and that RHO > 0. This is arranged by the calling routine, and is -* no loss in generality. The rank-one modified system is thus -* -* diag( D ) * diag( D ) + RHO * Z * Z_transpose. -* -* where we assume the Euclidean norm of Z is 1. -* -* The method consists of approximating the rational functions in the -* secular equation by simpler interpolating rational functions. +*>\details \b Purpose: +*>\verbatim +*> +*> This subroutine computes the square root of the I-th updated +*> eigenvalue of a positive symmetric rank-one modification to +*> a positive diagonal matrix whose entries are given as the squares +*> of the corresponding entries in the array d, and that +*> +*> 0 <= D(i) < D(j) for i < j +*> +*> and that RHO > 0. This is arranged by the calling routine, and is +*> no loss in generality. The rank-one modified system is thus +*> +*> diag( D ) * diag( D ) + RHO * Z * Z_transpose. +*> +*> where we assume the Euclidean norm of Z is 1. +*> +*> The method consists of approximating the rational functions in the +*> secular equation by simpler interpolating rational functions. +*> +*>\endverbatim * * Arguments * ========= * -* N (input) INTEGER -* The length of all arrays. -* -* I (input) INTEGER -* The index of the eigenvalue to be computed. 1 <= I <= N. -* -* D (input) REAL array, dimension ( N ) -* The original eigenvalues. It is assumed that they are in -* order, 0 <= D(I) < D(J) for I < J. -* -* Z (input) REAL array, dimension (N) -* The components of the updating vector. -* -* DELTA (output) REAL array, dimension (N) -* If N .ne. 1, DELTA contains (D(j) - sigma_I) in its j-th -* component. If N = 1, then DELTA(1) = 1. The vector DELTA -* contains the information necessary to construct the -* (singular) eigenvectors. -* -* RHO (input) REAL -* The scalar in the symmetric updating formula. -* -* SIGMA (output) REAL -* The computed sigma_I, the I-th updated eigenvalue. -* -* WORK (workspace) REAL array, dimension (N) -* If N .ne. 1, WORK contains (D(j) + sigma_I) in its j-th -* component. If N = 1, then WORK( 1 ) = 1. -* -* INFO (output) INTEGER -* = 0: successful exit -* > 0: if INFO = 1, the updating process failed. -* -* Internal Parameters -* =================== +*> \param[in] N +*> \verbatim +*> N is INTEGER +*> The length of all arrays. +*> \endverbatim +*> +*> \param[in] I +*> \verbatim +*> I is INTEGER +*> The index of the eigenvalue to be computed. 1 <= I <= N. +*> \endverbatim +*> +*> \param[in] D +*> \verbatim +*> D is REAL array, dimension ( N ) +*> The original eigenvalues. It is assumed that they are in +*> order, 0 <= D(I) < D(J) for I < J. +*> \endverbatim +*> +*> \param[in] Z +*> \verbatim +*> Z is REAL array, dimension (N) +*> The components of the updating vector. +*> \endverbatim +*> +*> \param[out] DELTA +*> \verbatim +*> DELTA is REAL array, dimension (N) +*> If N .ne. 1, DELTA contains (D(j) - sigma_I) in its j-th +*> component. If N = 1, then DELTA(1) = 1. The vector DELTA +*> contains the information necessary to construct the +*> (singular) eigenvectors. +*> \endverbatim +*> +*> \param[in] RHO +*> \verbatim +*> RHO is REAL +*> The scalar in the symmetric updating formula. +*> \endverbatim +*> +*> \param[out] SIGMA +*> \verbatim +*> SIGMA is REAL +*> The computed sigma_I, the I-th updated eigenvalue. +*> \endverbatim +*> +*> \param[out] WORK +*> \verbatim +*> WORK is REAL array, dimension (N) +*> If N .ne. 1, WORK contains (D(j) + sigma_I) in its j-th +*> component. If N = 1, then WORK( 1 ) = 1. +*> \endverbatim +*> +*> \param[out] INFO +*> \verbatim +*> INFO is INTEGER +*> = 0: successful exit +*> > 0: if INFO = 1, the updating process failed. +*> \endverbatim +*> \verbatim +*> Internal Parameters +*> =================== +*> \endverbatim +*> \verbatim +*> Logical variable ORGATI (origin-at-i?) is used for distinguishing +*> whether D(i) or D(i+1) is treated as the origin. +*> \endverbatim +*> \verbatim +*> ORGATI = .true. origin at i +*> ORGATI = .false. origin at i+1 +*> \endverbatim +*> \verbatim +*> Logical variable SWTCH3 (switch-for-3-poles?) is for noting +*> if we are working with THREE poles! +*> \endverbatim +*> \verbatim +*> MAXIT is the maximum number of iterations allowed for each +*> eigenvalue. +*> \endverbatim +*> +* +* Authors +* ======= * -* Logical variable ORGATI (origin-at-i?) is used for distinguishing -* whether D(i) or D(i+1) is treated as the origin. +*> \author Univ. of Tennessee +*> \author Univ. of California Berkeley +*> \author Univ. of Colorado Denver +*> \author NAG Ltd. * -* ORGATI = .true. origin at i -* ORGATI = .false. origin at i+1 +*> \date November 2011 * -* Logical variable SWTCH3 (switch-for-3-poles?) is for noting -* if we are working with THREE poles! +*> \ingroup auxOTHERauxiliary * -* MAXIT is the maximum number of iterations allowed for each -* eigenvalue. * * Further Details * =============== +*>\details \b Further \b Details +*> \verbatim +*> +*> Based on contributions by +*> Ren-Cang Li, Computer Science Division, University of California +*> at Berkeley, USA +*> +*> \endverbatim +*> +* ===================================================================== + SUBROUTINE SLASD4( N, I, D, Z, DELTA, RHO, SIGMA, WORK, INFO ) * -* Based on contributions by -* Ren-Cang Li, Computer Science Division, University of California -* at Berkeley, USA +* -- LAPACK auxiliary routine (version 3.3.1) -- +* -- LAPACK is a software package provided by Univ. of Tennessee, -- +* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..-- +* November 2011 +* +* .. Scalar Arguments .. + INTEGER I, INFO, N + REAL RHO, SIGMA +* .. +* .. Array Arguments .. + REAL D( * ), DELTA( * ), WORK( * ), Z( * ) +* .. * * ===================================================================== * |