Annotation of rpl/lapack/lapack/dlar2v.f, revision 1.7
1.1 bertrand 1: SUBROUTINE DLAR2V( N, X, Y, Z, INCX, C, S, INCC )
2: *
3: * -- LAPACK auxiliary routine (version 3.2) --
4: * -- LAPACK is a software package provided by Univ. of Tennessee, --
5: * -- Univ. of California Berkeley, Univ. of Colorado Denver and NAG Ltd..--
6: * November 2006
7: *
8: * .. Scalar Arguments ..
9: INTEGER INCC, INCX, N
10: * ..
11: * .. Array Arguments ..
12: DOUBLE PRECISION C( * ), S( * ), X( * ), Y( * ), Z( * )
13: * ..
14: *
15: * Purpose
16: * =======
17: *
18: * DLAR2V applies a vector of real plane rotations from both sides to
19: * a sequence of 2-by-2 real symmetric matrices, defined by the elements
20: * of the vectors x, y and z. For i = 1,2,...,n
21: *
22: * ( x(i) z(i) ) := ( c(i) s(i) ) ( x(i) z(i) ) ( c(i) -s(i) )
23: * ( z(i) y(i) ) ( -s(i) c(i) ) ( z(i) y(i) ) ( s(i) c(i) )
24: *
25: * Arguments
26: * =========
27: *
28: * N (input) INTEGER
29: * The number of plane rotations to be applied.
30: *
31: * X (input/output) DOUBLE PRECISION array,
32: * dimension (1+(N-1)*INCX)
33: * The vector x.
34: *
35: * Y (input/output) DOUBLE PRECISION array,
36: * dimension (1+(N-1)*INCX)
37: * The vector y.
38: *
39: * Z (input/output) DOUBLE PRECISION array,
40: * dimension (1+(N-1)*INCX)
41: * The vector z.
42: *
43: * INCX (input) INTEGER
44: * The increment between elements of X, Y and Z. INCX > 0.
45: *
46: * C (input) DOUBLE PRECISION array, dimension (1+(N-1)*INCC)
47: * The cosines of the plane rotations.
48: *
49: * S (input) DOUBLE PRECISION array, dimension (1+(N-1)*INCC)
50: * The sines of the plane rotations.
51: *
52: * INCC (input) INTEGER
53: * The increment between elements of C and S. INCC > 0.
54: *
55: * =====================================================================
56: *
57: * .. Local Scalars ..
58: INTEGER I, IC, IX
59: DOUBLE PRECISION CI, SI, T1, T2, T3, T4, T5, T6, XI, YI, ZI
60: * ..
61: * .. Executable Statements ..
62: *
63: IX = 1
64: IC = 1
65: DO 10 I = 1, N
66: XI = X( IX )
67: YI = Y( IX )
68: ZI = Z( IX )
69: CI = C( IC )
70: SI = S( IC )
71: T1 = SI*ZI
72: T2 = CI*ZI
73: T3 = T2 - SI*XI
74: T4 = T2 + SI*YI
75: T5 = CI*XI + T1
76: T6 = CI*YI - T1
77: X( IX ) = CI*T5 + SI*T4
78: Y( IX ) = CI*T6 - SI*T3
79: Z( IX ) = CI*T4 - SI*T5
80: IX = IX + INCX
81: IC = IC + INCC
82: 10 CONTINUE
83: *
84: * End of DLAR2V
85: *
86: RETURN
87: END
CVSweb interface <joel.bertrand@systella.fr>