File:  [local] / rpl / lapack / blas / drot.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 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) THEN
   29: *
   30: *       code for both increments equal to 1
   31: *
   32:          DO I = 1,N
   33:             DTEMP = C*DX(I) + S*DY(I)
   34:             DY(I) = C*DY(I) - S*DX(I)
   35:             DX(I) = DTEMP
   36:          END DO
   37:       ELSE
   38: *
   39: *       code for unequal increments or equal increments not equal
   40: *         to 1
   41: *
   42:          IX = 1
   43:          IY = 1
   44:          IF (INCX.LT.0) IX = (-N+1)*INCX + 1
   45:          IF (INCY.LT.0) IY = (-N+1)*INCY + 1
   46:          DO I = 1,N
   47:             DTEMP = C*DX(IX) + S*DY(IY)
   48:             DY(IY) = C*DY(IY) - S*DX(IX)
   49:             DX(IX) = DTEMP
   50:             IX = IX + INCX
   51:             IY = IY + INCY
   52:          END DO
   53:       END IF
   54:       RETURN
   55:       END

CVSweb interface <joel.bertrand@systella.fr>