Annotation of rpl/lapack/blas/drotg.f, revision 1.8
1.8 ! bertrand 1: *> \brief \b DROTG
! 2: *
! 3: * =========== DOCUMENTATION ===========
! 4: *
! 5: * Online html documentation available at
! 6: * http://www.netlib.org/lapack/explore-html/
! 7: *
! 8: * Definition:
! 9: * ===========
! 10: *
! 11: * SUBROUTINE DROTG(DA,DB,C,S)
! 12: *
! 13: * .. Scalar Arguments ..
! 14: * DOUBLE PRECISION C,DA,DB,S
! 15: * ..
! 16: *
! 17: *
! 18: *> \par Purpose:
! 19: * =============
! 20: *>
! 21: *> \verbatim
! 22: *>
! 23: *> DROTG construct givens plane rotation.
! 24: *> \endverbatim
! 25: *
! 26: * Authors:
! 27: * ========
! 28: *
! 29: *> \author Univ. of Tennessee
! 30: *> \author Univ. of California Berkeley
! 31: *> \author Univ. of Colorado Denver
! 32: *> \author NAG Ltd.
! 33: *
! 34: *> \date November 2011
! 35: *
! 36: *> \ingroup double_blas_level1
! 37: *
! 38: *> \par Further Details:
! 39: * =====================
! 40: *>
! 41: *> \verbatim
! 42: *>
! 43: *> jack dongarra, linpack, 3/11/78.
! 44: *> \endverbatim
! 45: *>
! 46: * =====================================================================
1.1 bertrand 47: SUBROUTINE DROTG(DA,DB,C,S)
1.8 ! bertrand 48: *
! 49: * -- Reference BLAS level1 routine (version 3.4.0) --
! 50: * -- Reference BLAS is a software package provided by Univ. of Tennessee, --
! 51: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
! 52: * November 2011
! 53: *
1.1 bertrand 54: * .. Scalar Arguments ..
55: DOUBLE PRECISION C,DA,DB,S
56: * ..
57: *
58: * =====================================================================
59: *
60: * .. Local Scalars ..
61: DOUBLE PRECISION R,ROE,SCALE,Z
62: * ..
63: * .. Intrinsic Functions ..
64: INTRINSIC DABS,DSIGN,DSQRT
65: * ..
66: ROE = DB
67: IF (DABS(DA).GT.DABS(DB)) ROE = DA
68: SCALE = DABS(DA) + DABS(DB)
1.7 bertrand 69: IF (SCALE.EQ.0.0d0) THEN
70: C = 1.0d0
71: S = 0.0d0
72: R = 0.0d0
73: Z = 0.0d0
74: ELSE
75: R = SCALE*DSQRT((DA/SCALE)**2+ (DB/SCALE)**2)
76: R = DSIGN(1.0d0,ROE)*R
77: C = DA/R
78: S = DB/R
79: Z = 1.0d0
80: IF (DABS(DA).GT.DABS(DB)) Z = S
81: IF (DABS(DB).GE.DABS(DA) .AND. C.NE.0.0d0) Z = 1.0d0/C
82: END IF
83: DA = R
1.1 bertrand 84: DB = Z
85: RETURN
86: END
CVSweb interface <joel.bertrand@systella.fr>