1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
|
.SH NAME
ZDROT - applies a plane rotation, where the cos and sin (c and s) are real and the vectors cx and cy are complex.
.SH SYNOPSIS
.TP 18
SUBROUTINE ZDROT(
N, CX, INCX, CY, INCY, C, S )
.TP 18
.ti +4
INTEGER
INCX, INCY, N
.TP 18
.ti +4
DOUBLE
PRECISION C, S
.TP 18
.ti +4
COMPLEX*16
CX( * ), CY( * )
.TP 18
.ti +4
INTEGER
I, IX, IY
.TP 18
.ti +4
COMPLEX*16
CTEMP
.TP 18
.ti +4
IF(
N.LE.0 )
RETURN
.TP 18
.ti +4
IF(
INCX.EQ.1 .AND. INCY.EQ.1 )
GO TO 20
.TP 18
.ti +4
IX
= 1
.TP 18
.ti +4
IY
= 1
.TP 18
.ti +4
IF(
INCX.LT.0 )
IX = ( -N+1 )*INCX + 1
.TP 18
.ti +4
IF(
INCY.LT.0 )
IY = ( -N+1 )*INCY + 1
.TP 18
.ti +4
DO
10 I = 1, N
.TP 18
.ti +4
CTEMP
= C*CX( IX ) + S*CY( IY )
.TP 18
.ti +4
CY(
IY ) = C*CY( IY ) - S*CX( IX )
.TP 18
.ti +4
CX(
IX ) = CTEMP
.TP 18
.ti +4
IX
= IX + INCX
.TP 18
.ti +4
IY
= IY + INCY
.TP 18
.ti +4
10
CONTINUE
.TP 18
.ti +4
RETURN
.TP 18
.ti +4
20
CONTINUE
.TP 18
.ti +4
DO
30 I = 1, N
.TP 18
.ti +4
CTEMP
= C*CX( I ) + S*CY( I )
.TP 18
.ti +4
CY(
I ) = C*CY( I ) - S*CX( I )
.TP 18
.ti +4
CX(
I ) = CTEMP
.TP 18
.ti +4
30
CONTINUE
.TP 18
.ti +4
RETURN
.TP 18
.ti +4
END
.SH PURPOSE
|