Those are just cosmetic changes to update version number and various other minor change.
92 lines
2.3 KiB
FortranFixed
92 lines
2.3 KiB
FortranFixed
SUBROUTINE CLACRT( N, CX, INCX, CY, INCY, C, S )
|
|
*
|
|
* -- LAPACK auxiliary routine (version 3.2) --
|
|
* -- LAPACK is a software package provided by Univ. of Tennessee, --
|
|
* -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
|
|
* November 2006
|
|
*
|
|
* .. Scalar Arguments ..
|
|
INTEGER INCX, INCY, N
|
|
COMPLEX C, S
|
|
* ..
|
|
* .. Array Arguments ..
|
|
COMPLEX CX( * ), CY( * )
|
|
* ..
|
|
*
|
|
* Purpose
|
|
* =======
|
|
*
|
|
* CLACRT performs the operation
|
|
*
|
|
* ( c s )( x ) ==> ( x )
|
|
* ( -s c )( y ) ( y )
|
|
*
|
|
* where c and s are complex and the vectors x and y are complex.
|
|
*
|
|
* Arguments
|
|
* =========
|
|
*
|
|
* N (input) INTEGER
|
|
* The number of elements in the vectors CX and CY.
|
|
*
|
|
* CX (input/output) COMPLEX array, dimension (N)
|
|
* On input, the vector x.
|
|
* On output, CX is overwritten with c*x + s*y.
|
|
*
|
|
* INCX (input) INTEGER
|
|
* The increment between successive values of CX. INCX <> 0.
|
|
*
|
|
* CY (input/output) COMPLEX array, dimension (N)
|
|
* On input, the vector y.
|
|
* On output, CY is overwritten with -s*x + c*y.
|
|
*
|
|
* INCY (input) INTEGER
|
|
* The increment between successive values of CY. INCY <> 0.
|
|
*
|
|
* C (input) COMPLEX
|
|
* S (input) COMPLEX
|
|
* C and S define the matrix
|
|
* [ C S ].
|
|
* [ -S C ]
|
|
*
|
|
* =====================================================================
|
|
*
|
|
* .. Local Scalars ..
|
|
INTEGER I, IX, IY
|
|
COMPLEX CTEMP
|
|
* ..
|
|
* .. Executable Statements ..
|
|
*
|
|
IF( N.LE.0 )
|
|
$ RETURN
|
|
IF( INCX.EQ.1 .AND. INCY.EQ.1 )
|
|
$ GO TO 20
|
|
*
|
|
* Code for unequal increments or equal increments not equal to 1
|
|
*
|
|
IX = 1
|
|
IY = 1
|
|
IF( INCX.LT.0 )
|
|
$ IX = ( -N+1 )*INCX + 1
|
|
IF( INCY.LT.0 )
|
|
$ IY = ( -N+1 )*INCY + 1
|
|
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
|
|
*
|
|
20 CONTINUE
|
|
DO 30 I = 1, N
|
|
CTEMP = C*CX( I ) + S*CY( I )
|
|
CY( I ) = C*CY( I ) - S*CX( I )
|
|
CX( I ) = CTEMP
|
|
30 CONTINUE
|
|
RETURN
|
|
END
|