Annotation of rpl/lapack/blas/drotg.f, revision 1.7
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)
1.7 ! bertrand 27: IF (SCALE.EQ.0.0d0) THEN
! 28: C = 1.0d0
! 29: S = 0.0d0
! 30: R = 0.0d0
! 31: Z = 0.0d0
! 32: ELSE
! 33: 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: END IF
! 41: DA = R
1.1 bertrand 42: DB = Z
43: RETURN
44: END
CVSweb interface <joel.bertrand@systella.fr>