Diff for /rpl/lapack/blas/drotg.f between versions 1.2 and 1.10

version 1.2, 2010/04/21 13:45:09 version 1.10, 2012/12/14 14:22:02
Line 1 Line 1
       SUBROUTINE DROTG(DA,DB,C,S)  *> \brief \b DROTG
 *     .. Scalar Arguments ..  *
       DOUBLE PRECISION C,DA,DB,S  *  =========== DOCUMENTATION ===========
 *     ..  
 *  *
 *  Purpose  * Online html documentation available at 
 *  =======  *            http://www.netlib.org/lapack/explore-html/ 
 *  *
 *     DROTG construct givens plane rotation.  *  Definition:
   *  ===========
   *
   *       SUBROUTINE DROTG(DA,DB,C,S)
   * 
   *       .. Scalar Arguments ..
   *       DOUBLE PRECISION C,DA,DB,S
   *       ..
   *  
   *
   *> \par Purpose:
   *  =============
   *>
   *> \verbatim
   *>
   *>    DROTG construct givens plane rotation.
   *> \endverbatim
   *
   *  Authors:
   *  ========
   *
   *> \author Univ. of Tennessee 
   *> \author Univ. of California Berkeley 
   *> \author Univ. of Colorado Denver 
   *> \author NAG Ltd. 
   *
   *> \date November 2011
   *
   *> \ingroup double_blas_level1
   *
   *> \par Further Details:
   *  =====================
   *>
   *> \verbatim
   *>
   *>     jack dongarra, linpack, 3/11/78.
   *> \endverbatim
   *>
   *  =====================================================================
         SUBROUTINE DROTG(DA,DB,C,S)
 *  *
 *  Further Details  *  -- Reference BLAS level1 routine (version 3.4.0) --
 *  ===============  *  -- Reference BLAS is a software package provided by Univ. of Tennessee,    --
   *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
   *     November 2011
 *  *
 *     jack dongarra, linpack, 3/11/78.  *     .. Scalar Arguments ..
         DOUBLE PRECISION C,DA,DB,S
   *     ..
 *  *
 *  =====================================================================  *  =====================================================================
 *  *
Line 24 Line 66
       ROE = DB        ROE = DB
       IF (DABS(DA).GT.DABS(DB)) ROE = DA        IF (DABS(DA).GT.DABS(DB)) ROE = DA
       SCALE = DABS(DA) + DABS(DB)        SCALE = DABS(DA) + DABS(DB)
       IF (SCALE.NE.0.0d0) GO TO 10        IF (SCALE.EQ.0.0d0) THEN
       C = 1.0d0           C = 1.0d0
       S = 0.0d0           S = 0.0d0
       R = 0.0d0           R = 0.0d0
       Z = 0.0d0           Z = 0.0d0
       GO TO 20        ELSE
    10 R = SCALE*DSQRT((DA/SCALE)**2+ (DB/SCALE)**2)           R = SCALE*DSQRT((DA/SCALE)**2+ (DB/SCALE)**2)
       R = DSIGN(1.0d0,ROE)*R           R = DSIGN(1.0d0,ROE)*R
       C = DA/R           C = DA/R
       S = DB/R           S = DB/R
       Z = 1.0d0           Z = 1.0d0
       IF (DABS(DA).GT.DABS(DB)) Z = S           IF (DABS(DA).GT.DABS(DB)) Z = S
       IF (DABS(DB).GE.DABS(DA) .AND. C.NE.0.0d0) Z = 1.0d0/C           IF (DABS(DB).GE.DABS(DA) .AND. C.NE.0.0d0) Z = 1.0d0/C
    20 DA = R        END IF
         DA = R
       DB = Z        DB = Z
       RETURN        RETURN
       END        END

Removed from v.1.2  
changed lines
  Added in v.1.10


CVSweb interface <joel.bertrand@systella.fr>