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