Diff for /rpl/lapack/blas/drotg.f between versions 1.6 and 1.13

version 1.6, 2010/12/21 13:51:25 version 1.13, 2017/06/17 10:53:43
Line 1 Line 1
       SUBROUTINE DROTG(DA,DB,C,S)  *> \brief \b DROTG
 *     .. Scalar Arguments ..  *
       DOUBLE PRECISION C,DA,DB,S  *  =========== DOCUMENTATION ===========
 *     ..  *
   * Online html documentation available at
   *            http://www.netlib.org/lapack/explore-html/
   *
   *  Definition:
   *  ===========
   *
   *       SUBROUTINE DROTG(DA,DB,C,S)
   *
   *       .. Scalar Arguments ..
   *       DOUBLE PRECISION C,DA,DB,S
   *       ..
   *
 *  *
 *  Purpose  *> \par Purpose:
 *  =======  *  =============
   *>
   *> \verbatim
   *>
   *>    DROTG construct givens plane rotation.
   *> \endverbatim
 *  *
 *     DROTG construct givens plane rotation.  *  Authors:
   *  ========
 *  *
 *  Further Details  *> \author Univ. of Tennessee
 *  ===============  *> \author Univ. of California Berkeley
   *> \author Univ. of Colorado Denver
   *> \author NAG Ltd.
 *  *
 *     jack dongarra, linpack, 3/11/78.  *> \date December 2016
   *
   *> \ingroup double_blas_level1
   *
   *> \par Further Details:
   *  =====================
   *>
   *> \verbatim
   *>
   *>     jack dongarra, linpack, 3/11/78.
   *> \endverbatim
   *>
   *  =====================================================================
         SUBROUTINE DROTG(DA,DB,C,S)
   *
   *  -- Reference BLAS level1 routine (version 3.7.0) --
   *  -- Reference BLAS is a software package provided by Univ. of Tennessee,    --
   *  -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
   *     December 2016
   *
   *     .. 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.6  
changed lines
  Added in v.1.13


CVSweb interface <joel.bertrand@systella.fr>