File:  [local] / rpl / lapack / blas / drotg.f
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Tue Jan 26 15:22:45 2010 UTC (14 years, 3 months ago) by bertrand
Branches: MAIN
CVS tags: HEAD
Initial revision

    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>