Diff for /rpl/lapack/lapack/dlaed4.f between versions 1.7 and 1.8

version 1.7, 2010/12/21 13:53:29 version 1.8, 2011/11/21 20:42:54
Line 1 Line 1
   *> \brief \b DLAED4
   *
   *  =========== DOCUMENTATION ===========
   *
   * Online html documentation available at 
   *            http://www.netlib.org/lapack/explore-html/ 
   *
   *> \htmlonly
   *> Download DLAED4 + dependencies 
   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dlaed4.f"> 
   *> [TGZ]</a> 
   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dlaed4.f"> 
   *> [ZIP]</a> 
   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dlaed4.f"> 
   *> [TXT]</a>
   *> \endhtmlonly 
   *
   *  Definition:
   *  ===========
   *
   *       SUBROUTINE DLAED4( N, I, D, Z, DELTA, RHO, DLAM, INFO )
   * 
   *       .. Scalar Arguments ..
   *       INTEGER            I, INFO, N
   *       DOUBLE PRECISION   DLAM, RHO
   *       ..
   *       .. Array Arguments ..
   *       DOUBLE PRECISION   D( * ), DELTA( * ), Z( * )
   *       ..
   *  
   *
   *> \par Purpose:
   *  =============
   *>
   *> \verbatim
   *>
   *> This subroutine computes the I-th updated eigenvalue of a symmetric
   *> rank-one modification to a diagonal matrix whose elements are
   *> given in the array d, and that
   *>
   *>            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 )  +  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:
   *  ==========
   *
   *> \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 DOUBLE PRECISION array, dimension (N)
   *>         The original eigenvalues.  It is assumed that they are in
   *>         order, D(I) < D(J)  for I < J.
   *> \endverbatim
   *>
   *> \param[in] Z
   *> \verbatim
   *>          Z is DOUBLE PRECISION array, dimension (N)
   *>         The components of the updating vector.
   *> \endverbatim
   *>
   *> \param[out] DELTA
   *> \verbatim
   *>          DELTA is DOUBLE PRECISION array, dimension (N)
   *>         If N .GT. 2, DELTA contains (D(j) - lambda_I) in its  j-th
   *>         component.  If N = 1, then DELTA(1) = 1. If N = 2, see DLAED5
   *>         for detail. The vector DELTA contains the information necessary
   *>         to construct the eigenvectors by DLAED3 and DLAED9.
   *> \endverbatim
   *>
   *> \param[in] RHO
   *> \verbatim
   *>          RHO is DOUBLE PRECISION
   *>         The scalar in the symmetric updating formula.
   *> \endverbatim
   *>
   *> \param[out] DLAM
   *> \verbatim
   *>          DLAM is DOUBLE PRECISION
   *>         The computed lambda_I, the I-th updated eigenvalue.
   *> \endverbatim
   *>
   *> \param[out] INFO
   *> \verbatim
   *>          INFO is INTEGER
   *>         = 0:  successful exit
   *>         > 0:  if INFO = 1, the updating process failed.
   *> \endverbatim
   *
   *> \par Internal Parameters:
   *  =========================
   *>
   *> \verbatim
   *>  Logical variable ORGATI (origin-at-i?) is used for distinguishing
   *>  whether D(i) or D(i+1) is treated as the origin.
   *>
   *>            ORGATI = .true.    origin at i
   *>            ORGATI = .false.   origin at i+1
   *>
   *>   Logical variable SWTCH3 (switch-for-3-poles?) is for noting
   *>   if we are working with THREE poles!
   *>
   *>   MAXIT is the maximum number of iterations allowed for each
   *>   eigenvalue.
   *> \endverbatim
   *
   *  Authors:
   *  ========
   *
   *> \author Univ. of Tennessee 
   *> \author Univ. of California Berkeley 
   *> \author Univ. of Colorado Denver 
   *> \author NAG Ltd. 
   *
   *> \date November 2011
   *
   *> \ingroup auxOTHERcomputational
   *
   *> \par Contributors:
   *  ==================
   *>
   *>     Ren-Cang Li, Computer Science Division, University of California
   *>     at Berkeley, USA
   *>
   *  =====================================================================
       SUBROUTINE DLAED4( N, I, D, Z, DELTA, RHO, DLAM, INFO )        SUBROUTINE DLAED4( N, I, D, Z, DELTA, RHO, DLAM, INFO )
 *  *
 *  -- LAPACK routine (version 3.2) --  *  -- LAPACK computational routine (version 3.4.0) --
 *  -- LAPACK is a software package provided by Univ. of Tennessee,    --  *  -- LAPACK is a software package provided by Univ. of Tennessee,    --
 *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--  *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
 *     November 2006  *     November 2011
 *  *
 *     .. Scalar Arguments ..  *     .. Scalar Arguments ..
       INTEGER            I, INFO, N        INTEGER            I, INFO, N
Line 13 Line 158
       DOUBLE PRECISION   D( * ), DELTA( * ), Z( * )        DOUBLE PRECISION   D( * ), DELTA( * ), Z( * )
 *     ..  *     ..
 *  *
 *  Purpose  
 *  =======  
 *  
 *  This subroutine computes the I-th updated eigenvalue of a symmetric  
 *  rank-one modification to a diagonal matrix whose elements are  
 *  given in the array d, and that  
 *  
 *             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 )  +  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.  
 *  
 *  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) DOUBLE PRECISION array, dimension (N)  
 *         The original eigenvalues.  It is assumed that they are in  
 *         order, D(I) < D(J)  for I < J.  
 *  
 *  Z      (input) DOUBLE PRECISION array, dimension (N)  
 *         The components of the updating vector.  
 *  
 *  DELTA  (output) DOUBLE PRECISION array, dimension (N)  
 *         If N .GT. 2, DELTA contains (D(j) - lambda_I) in its  j-th  
 *         component.  If N = 1, then DELTA(1) = 1. If N = 2, see DLAED5  
 *         for detail. The vector DELTA contains the information necessary  
 *         to construct the eigenvectors by DLAED3 and DLAED9.  
 *  
 *  RHO    (input) DOUBLE PRECISION  
 *         The scalar in the symmetric updating formula.  
 *  
 *  DLAM   (output) DOUBLE PRECISION  
 *         The computed lambda_I, the I-th updated eigenvalue.  
 *  
 *  INFO   (output) INTEGER  
 *         = 0:  successful exit  
 *         > 0:  if INFO = 1, the updating process failed.  
 *  
 *  Internal Parameters  
 *  ===================  
 *  
 *  Logical variable ORGATI (origin-at-i?) is used for distinguishing  
 *  whether D(i) or D(i+1) is treated as the origin.  
 *  
 *            ORGATI = .true.    origin at i  
 *            ORGATI = .false.   origin at i+1  
 *  
 *   Logical variable SWTCH3 (switch-for-3-poles?) is for noting  
 *   if we are working with THREE poles!  
 *  
 *   MAXIT is the maximum number of iterations allowed for each  
 *   eigenvalue.  
 *  
 *  Further Details  
 *  ===============  
 *  
 *  Based on contributions by  
 *     Ren-Cang Li, Computer Science Division, University of California  
 *     at Berkeley, USA  
 *  
 *  =====================================================================  *  =====================================================================
 *  *
 *     .. Parameters ..  *     .. Parameters ..

Removed from v.1.7  
changed lines
  Added in v.1.8


CVSweb interface <joel.bertrand@systella.fr>