Annotation of rpl/lapack/blas/drotg.f, revision 1.6
1.1 bertrand 1: SUBROUTINE DROTG(DA,DB,C,S)
2: * .. Scalar Arguments ..
3: DOUBLE PRECISION C,DA,DB,S
4: * ..
5: *
6: * Purpose
7: * =======
8: *
9: * DROTG construct givens plane rotation.
10: *
11: * Further Details
12: * ===============
13: *
14: * jack dongarra, linpack, 3/11/78.
15: *
16: * =====================================================================
17: *
18: * .. Local Scalars ..
19: DOUBLE PRECISION R,ROE,SCALE,Z
20: * ..
21: * .. Intrinsic Functions ..
22: INTRINSIC DABS,DSIGN,DSQRT
23: * ..
24: ROE = DB
25: IF (DABS(DA).GT.DABS(DB)) ROE = DA
26: SCALE = DABS(DA) + DABS(DB)
27: IF (SCALE.NE.0.0d0) GO TO 10
28: C = 1.0d0
29: S = 0.0d0
30: R = 0.0d0
31: Z = 0.0d0
32: GO TO 20
33: 10 R = SCALE*DSQRT((DA/SCALE)**2+ (DB/SCALE)**2)
34: R = DSIGN(1.0d0,ROE)*R
35: C = DA/R
36: S = DB/R
37: Z = 1.0d0
38: IF (DABS(DA).GT.DABS(DB)) Z = S
39: IF (DABS(DB).GE.DABS(DA) .AND. C.NE.0.0d0) Z = 1.0d0/C
40: 20 DA = R
41: DB = Z
42: RETURN
43: END
CVSweb interface <joel.bertrand@systella.fr>