File:  [local] / rpl / lapack / blas / drot.f
Revision 1.2: download - view: text, annotated - select for diffs - revision graph
Wed Apr 21 13:45:09 2010 UTC (14 years, 1 month ago) by bertrand
Branches: MAIN
CVS tags: rpl-4_0_17, rpl-4_0_16, rpl-4_0_15, HEAD
En route pour la 4.0.15 !

    1:       SUBROUTINE DROT(N,DX,INCX,DY,INCY,C,S)
    2: *     .. Scalar Arguments ..
    3:       DOUBLE PRECISION C,S
    4:       INTEGER INCX,INCY,N
    5: *     ..
    6: *     .. Array Arguments ..
    7:       DOUBLE PRECISION DX(*),DY(*)
    8: *     ..
    9: *
   10: *  Purpose
   11: *  =======
   12: *
   13: *     DROT applies a plane rotation.
   14: *
   15: *  Further Details
   16: *  ===============
   17: *
   18: *     jack dongarra, linpack, 3/11/78.
   19: *     modified 12/3/93, array(1) declarations changed to array(*)
   20: *
   21: *  =====================================================================
   22: *
   23: *     .. Local Scalars ..
   24:       DOUBLE PRECISION DTEMP
   25:       INTEGER I,IX,IY
   26: *     ..
   27:       IF (N.LE.0) RETURN
   28:       IF (INCX.EQ.1 .AND. INCY.EQ.1) GO TO 20
   29: *
   30: *       code for unequal increments or equal increments not equal
   31: *         to 1
   32: *
   33:       IX = 1
   34:       IY = 1
   35:       IF (INCX.LT.0) IX = (-N+1)*INCX + 1
   36:       IF (INCY.LT.0) IY = (-N+1)*INCY + 1
   37:       DO 10 I = 1,N
   38:           DTEMP = C*DX(IX) + S*DY(IY)
   39:           DY(IY) = C*DY(IY) - S*DX(IX)
   40:           DX(IX) = DTEMP
   41:           IX = IX + INCX
   42:           IY = IY + INCY
   43:    10 CONTINUE
   44:       RETURN
   45: *
   46: *       code for both increments equal to 1
   47: *
   48:    20 DO 30 I = 1,N
   49:           DTEMP = C*DX(I) + S*DY(I)
   50:           DY(I) = C*DY(I) - S*DX(I)
   51:           DX(I) = DTEMP
   52:    30 CONTINUE
   53:       RETURN
   54:       END

CVSweb interface <joel.bertrand@systella.fr>