3
* =========== DOCUMENTATION ===========
5
* Online html documentation available at
6
* http://www.netlib.org/lapack/explore-html/
11
* SUBROUTINE DROT(N,DX,INCX,DY,INCY,C,S)
13
* .. Scalar Arguments ..
14
* DOUBLE PRECISION C,S
17
* .. Array Arguments ..
18
* DOUBLE PRECISION DX(*),DY(*)
27
*> DROT applies a plane rotation.
33
*> \author Univ. of Tennessee
34
*> \author Univ. of California Berkeley
35
*> \author Univ. of Colorado Denver
38
*> \date November 2011
40
*> \ingroup double_blas_level1
42
*> \par Further Details:
43
* =====================
47
*> jack dongarra, linpack, 3/11/78.
48
*> modified 12/3/93, array(1) declarations changed to array(*)
51
* =====================================================================
52
SUBROUTINE DROT(N,DX,INCX,DY,INCY,C,S)
54
* -- Reference BLAS level1 routine (version 3.4.0) --
55
* -- Reference BLAS is a software package provided by Univ. of Tennessee, --
56
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
59
* .. Scalar Arguments ..
63
* .. Array Arguments ..
64
DOUBLE PRECISION DX(*),DY(*)
67
* =====================================================================
70
DOUBLE PRECISION DTEMP
74
IF (INCX.EQ.1 .AND. INCY.EQ.1) THEN
76
* code for both increments equal to 1
79
DTEMP = C*DX(I) + S*DY(I)
80
DY(I) = C*DY(I) - S*DX(I)
85
* code for unequal increments or equal increments not equal
90
IF (INCX.LT.0) IX = (-N+1)*INCX + 1
91
IF (INCY.LT.0) IY = (-N+1)*INCY + 1
93
DTEMP = C*DX(IX) + S*DY(IY)
94
DY(IY) = C*DY(IY) - S*DX(IX)