File:  [local] / rpl / lapack / blas / drotg.f
Revision 1.7: download - view: text, annotated - select for diffs - revision graph
Fri Jul 22 07:38:01 2011 UTC (12 years, 10 months ago) by bertrand
Branches: MAIN
CVS tags: rpl-4_1_3, rpl-4_1_2, rpl-4_1_1, HEAD
En route vers la 4.4.1.

    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.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
   42:       DB = Z
   43:       RETURN
   44:       END

CVSweb interface <joel.bertrand@systella.fr>