diff options
author | jason <jason@8a072113-8704-0410-8d35-dd094bca7971> | 2008-10-28 01:38:50 +0000 |
---|---|---|
committer | jason <jason@8a072113-8704-0410-8d35-dd094bca7971> | 2008-10-28 01:38:50 +0000 |
commit | baba851215b44ac3b60b9248eb02bcce7eb76247 (patch) | |
tree | 8c0f5c006875532a30d4409f5e94b0f310ff00a7 /SRC/slar2v.f | |
download | lapack-baba851215b44ac3b60b9248eb02bcce7eb76247.tar.gz lapack-baba851215b44ac3b60b9248eb02bcce7eb76247.tar.bz2 lapack-baba851215b44ac3b60b9248eb02bcce7eb76247.zip |
Move LAPACK trunk into position.
Diffstat (limited to 'SRC/slar2v.f')
-rw-r--r-- | SRC/slar2v.f | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/SRC/slar2v.f b/SRC/slar2v.f new file mode 100644 index 00000000..4dcceb32 --- /dev/null +++ b/SRC/slar2v.f @@ -0,0 +1,86 @@ + SUBROUTINE SLAR2V( N, X, Y, Z, INCX, C, S, INCC ) +* +* -- LAPACK auxiliary routine (version 3.1) -- +* Univ. of Tennessee, Univ. of California Berkeley and NAG Ltd.. +* November 2006 +* +* .. Scalar Arguments .. + INTEGER INCC, INCX, N +* .. +* .. Array Arguments .. + REAL C( * ), S( * ), X( * ), Y( * ), Z( * ) +* .. +* +* Purpose +* ======= +* +* SLAR2V applies a vector of real plane rotations from both sides to +* a sequence of 2-by-2 real symmetric matrices, defined by the elements +* of the vectors x, y and z. For i = 1,2,...,n +* +* ( x(i) z(i) ) := ( c(i) s(i) ) ( x(i) z(i) ) ( c(i) -s(i) ) +* ( z(i) y(i) ) ( -s(i) c(i) ) ( z(i) y(i) ) ( s(i) c(i) ) +* +* Arguments +* ========= +* +* N (input) INTEGER +* The number of plane rotations to be applied. +* +* X (input/output) REAL array, +* dimension (1+(N-1)*INCX) +* The vector x. +* +* Y (input/output) REAL array, +* dimension (1+(N-1)*INCX) +* The vector y. +* +* Z (input/output) REAL array, +* dimension (1+(N-1)*INCX) +* The vector z. +* +* INCX (input) INTEGER +* The increment between elements of X, Y and Z. INCX > 0. +* +* C (input) REAL array, dimension (1+(N-1)*INCC) +* The cosines of the plane rotations. +* +* S (input) REAL array, dimension (1+(N-1)*INCC) +* The sines of the plane rotations. +* +* INCC (input) INTEGER +* The increment between elements of C and S. INCC > 0. +* +* ===================================================================== +* +* .. Local Scalars .. + INTEGER I, IC, IX + REAL CI, SI, T1, T2, T3, T4, T5, T6, XI, YI, ZI +* .. +* .. Executable Statements .. +* + IX = 1 + IC = 1 + DO 10 I = 1, N + XI = X( IX ) + YI = Y( IX ) + ZI = Z( IX ) + CI = C( IC ) + SI = S( IC ) + T1 = SI*ZI + T2 = CI*ZI + T3 = T2 - SI*XI + T4 = T2 + SI*YI + T5 = CI*XI + T1 + T6 = CI*YI - T1 + X( IX ) = CI*T5 + SI*T4 + Y( IX ) = CI*T6 - SI*T3 + Z( IX ) = CI*T4 - SI*T5 + IX = IX + INCX + IC = IC + INCC + 10 CONTINUE +* +* End of SLAR2V +* + RETURN + END |