Diff for /rpl/lapack/lapack/dgeql2.f between versions 1.1 and 1.20

version 1.1, 2010/01/26 15:22:45 version 1.20, 2023/08/07 08:38:49
Line 1 Line 1
   *> \brief \b DGEQL2 computes the QL factorization of a general rectangular matrix using an unblocked algorithm.
   *
   *  =========== DOCUMENTATION ===========
   *
   * Online html documentation available at
   *            http://www.netlib.org/lapack/explore-html/
   *
   *> \htmlonly
   *> Download DGEQL2 + dependencies
   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.tgz?format=tgz&filename=/lapack/lapack_routine/dgeql2.f">
   *> [TGZ]</a>
   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.zip?format=zip&filename=/lapack/lapack_routine/dgeql2.f">
   *> [ZIP]</a>
   *> <a href="http://www.netlib.org/cgi-bin/netlibfiles.txt?format=txt&filename=/lapack/lapack_routine/dgeql2.f">
   *> [TXT]</a>
   *> \endhtmlonly
   *
   *  Definition:
   *  ===========
   *
   *       SUBROUTINE DGEQL2( M, N, A, LDA, TAU, WORK, INFO )
   *
   *       .. Scalar Arguments ..
   *       INTEGER            INFO, LDA, M, N
   *       ..
   *       .. Array Arguments ..
   *       DOUBLE PRECISION   A( LDA, * ), TAU( * ), WORK( * )
   *       ..
   *
   *
   *> \par Purpose:
   *  =============
   *>
   *> \verbatim
   *>
   *> DGEQL2 computes a QL factorization of a real m by n matrix A:
   *> A = Q * L.
   *> \endverbatim
   *
   *  Arguments:
   *  ==========
   *
   *> \param[in] M
   *> \verbatim
   *>          M is INTEGER
   *>          The number of rows of the matrix A.  M >= 0.
   *> \endverbatim
   *>
   *> \param[in] N
   *> \verbatim
   *>          N is INTEGER
   *>          The number of columns of the matrix A.  N >= 0.
   *> \endverbatim
   *>
   *> \param[in,out] A
   *> \verbatim
   *>          A is DOUBLE PRECISION array, dimension (LDA,N)
   *>          On entry, the m by n matrix A.
   *>          On exit, if m >= n, the lower triangle of the subarray
   *>          A(m-n+1:m,1:n) contains the n by n lower triangular matrix L;
   *>          if m <= n, the elements on and below the (n-m)-th
   *>          superdiagonal contain the m by n lower trapezoidal matrix L;
   *>          the remaining elements, with the array TAU, represent the
   *>          orthogonal matrix Q as a product of elementary reflectors
   *>          (see Further Details).
   *> \endverbatim
   *>
   *> \param[in] LDA
   *> \verbatim
   *>          LDA is INTEGER
   *>          The leading dimension of the array A.  LDA >= max(1,M).
   *> \endverbatim
   *>
   *> \param[out] TAU
   *> \verbatim
   *>          TAU is DOUBLE PRECISION array, dimension (min(M,N))
   *>          The scalar factors of the elementary reflectors (see Further
   *>          Details).
   *> \endverbatim
   *>
   *> \param[out] WORK
   *> \verbatim
   *>          WORK is DOUBLE PRECISION array, dimension (N)
   *> \endverbatim
   *>
   *> \param[out] INFO
   *> \verbatim
   *>          INFO is INTEGER
   *>          = 0: successful exit
   *>          < 0: if INFO = -i, the i-th argument had an illegal value
   *> \endverbatim
   *
   *  Authors:
   *  ========
   *
   *> \author Univ. of Tennessee
   *> \author Univ. of California Berkeley
   *> \author Univ. of Colorado Denver
   *> \author NAG Ltd.
   *
   *> \ingroup doubleGEcomputational
   *
   *> \par Further Details:
   *  =====================
   *>
   *> \verbatim
   *>
   *>  The matrix Q is represented as a product of elementary reflectors
   *>
   *>     Q = H(k) . . . H(2) H(1), where k = min(m,n).
   *>
   *>  Each H(i) has the form
   *>
   *>     H(i) = I - tau * v * v**T
   *>
   *>  where tau is a real scalar, and v is a real vector with
   *>  v(m-k+i+1:m) = 0 and v(m-k+i) = 1; v(1:m-k+i-1) is stored on exit in
   *>  A(1:m-k+i-1,n-k+i), and tau in TAU(i).
   *> \endverbatim
   *>
   *  =====================================================================
       SUBROUTINE DGEQL2( M, N, A, LDA, TAU, WORK, INFO )        SUBROUTINE DGEQL2( M, N, A, LDA, TAU, WORK, INFO )
 *  *
 *  -- LAPACK routine (version 3.2) --  *  -- LAPACK computational routine --
 *  -- 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  
 *  *
 *     .. Scalar Arguments ..  *     .. Scalar Arguments ..
       INTEGER            INFO, LDA, M, N        INTEGER            INFO, LDA, M, N
Line 12 Line 132
       DOUBLE PRECISION   A( LDA, * ), TAU( * ), WORK( * )        DOUBLE PRECISION   A( LDA, * ), TAU( * ), WORK( * )
 *     ..  *     ..
 *  *
 *  Purpose  
 *  =======  
 *  
 *  DGEQL2 computes a QL factorization of a real m by n matrix A:  
 *  A = Q * L.  
 *  
 *  Arguments  
 *  =========  
 *  
 *  M       (input) INTEGER  
 *          The number of rows of the matrix A.  M >= 0.  
 *  
 *  N       (input) INTEGER  
 *          The number of columns of the matrix A.  N >= 0.  
 *  
 *  A       (input/output) DOUBLE PRECISION array, dimension (LDA,N)  
 *          On entry, the m by n matrix A.  
 *          On exit, if m >= n, the lower triangle of the subarray  
 *          A(m-n+1:m,1:n) contains the n by n lower triangular matrix L;  
 *          if m <= n, the elements on and below the (n-m)-th  
 *          superdiagonal contain the m by n lower trapezoidal matrix L;  
 *          the remaining elements, with the array TAU, represent the  
 *          orthogonal matrix Q as a product of elementary reflectors  
 *          (see Further Details).  
 *  
 *  LDA     (input) INTEGER  
 *          The leading dimension of the array A.  LDA >= max(1,M).  
 *  
 *  TAU     (output) DOUBLE PRECISION array, dimension (min(M,N))  
 *          The scalar factors of the elementary reflectors (see Further  
 *          Details).  
 *  
 *  WORK    (workspace) DOUBLE PRECISION array, dimension (N)  
 *  
 *  INFO    (output) INTEGER  
 *          = 0: successful exit  
 *          < 0: if INFO = -i, the i-th argument had an illegal value  
 *  
 *  Further Details  
 *  ===============  
 *  
 *  The matrix Q is represented as a product of elementary reflectors  
 *  
 *     Q = H(k) . . . H(2) H(1), where k = min(m,n).  
 *  
 *  Each H(i) has the form  
 *  
 *     H(i) = I - tau * v * v'  
 *  
 *  where tau is a real scalar, and v is a real vector with  
 *  v(m-k+i+1:m) = 0 and v(m-k+i) = 1; v(1:m-k+i-1) is stored on exit in  
 *  A(1:m-k+i-1,n-k+i), and tau in TAU(i).  
 *  
 *  =====================================================================  *  =====================================================================
 *  *
 *     .. Parameters ..  *     .. Parameters ..
Line 76 Line 143
       DOUBLE PRECISION   AII        DOUBLE PRECISION   AII
 *     ..  *     ..
 *     .. External Subroutines ..  *     .. External Subroutines ..
       EXTERNAL           DLARF, DLARFP, XERBLA        EXTERNAL           DLARF, DLARFG, XERBLA
 *     ..  *     ..
 *     .. Intrinsic Functions ..  *     .. Intrinsic Functions ..
       INTRINSIC          MAX, MIN        INTRINSIC          MAX, MIN
Line 105 Line 172
 *        Generate elementary reflector H(i) to annihilate  *        Generate elementary reflector H(i) to annihilate
 *        A(1:m-k+i-1,n-k+i)  *        A(1:m-k+i-1,n-k+i)
 *  *
          CALL DLARFP( M-K+I, A( M-K+I, N-K+I ), A( 1, N-K+I ), 1,           CALL DLARFG( M-K+I, A( M-K+I, N-K+I ), A( 1, N-K+I ), 1,
      $                TAU( I ) )       $                TAU( I ) )
 *  *
 *        Apply H(i) to A(1:m-k+i,1:n-k+i-1) from the left  *        Apply H(i) to A(1:m-k+i,1:n-k+i-1) from the left

Removed from v.1.1  
changed lines
  Added in v.1.20


CVSweb interface <joel.bertrand@systella.fr>