version 1.6, 2010/12/21 13:51:26
|
version 1.7, 2011/07/22 07:38:02
|
Line 63
|
Line 63
|
* |
* |
IF( N.LE.0 ) |
IF( N.LE.0 ) |
$ RETURN |
$ RETURN |
IF( INCX.EQ.1 .AND. INCY.EQ.1 ) |
IF( INCX.EQ.1 .AND. INCY.EQ.1 ) THEN |
$ GO TO 20 |
|
* |
* |
* code for unequal increments or equal increments not equal |
* code for both increments equal to 1 |
* to 1 |
|
* |
* |
IX = 1 |
DO I = 1, N |
IY = 1 |
CTEMP = C*CX( I ) + S*CY( I ) |
IF( INCX.LT.0 ) |
CY( I ) = C*CY( I ) - S*CX( I ) |
$ IX = ( -N+1 )*INCX + 1 |
CX( I ) = CTEMP |
IF( INCY.LT.0 ) |
END DO |
$ IY = ( -N+1 )*INCY + 1 |
ELSE |
DO 10 I = 1, N |
|
CTEMP = C*CX( IX ) + S*CY( IY ) |
|
CY( IY ) = C*CY( IY ) - S*CX( IX ) |
|
CX( IX ) = CTEMP |
|
IX = IX + INCX |
|
IY = IY + INCY |
|
10 CONTINUE |
|
RETURN |
|
* |
* |
* code for both increments equal to 1 |
* code for unequal increments or equal increments not equal |
|
* to 1 |
* |
* |
20 CONTINUE |
IX = 1 |
DO 30 I = 1, N |
IY = 1 |
CTEMP = C*CX( I ) + S*CY( I ) |
IF( INCX.LT.0 ) |
CY( I ) = C*CY( I ) - S*CX( I ) |
$ IX = ( -N+1 )*INCX + 1 |
CX( I ) = CTEMP |
IF( INCY.LT.0 ) |
30 CONTINUE |
$ IY = ( -N+1 )*INCY + 1 |
|
DO I = 1, N |
|
CTEMP = C*CX( IX ) + S*CY( IY ) |
|
CY( IY ) = C*CY( IY ) - S*CX( IX ) |
|
CX( IX ) = CTEMP |
|
IX = IX + INCX |
|
IY = IY + INCY |
|
END DO |
|
END IF |
RETURN |
RETURN |
END |
END |