1CSTEIN(1) LAPACK routine (version 3.1) CSTEIN(1)
2
3
4
6 CSTEIN - the eigenvectors of a real symmetric tridiagonal matrix T cor‐
7 responding to specified eigenvalues, using inverse iteration
8
10 SUBROUTINE CSTEIN( N, D, E, M, W, IBLOCK, ISPLIT, Z, LDZ, WORK, IWORK,
11 IFAIL, INFO )
12
13 INTEGER INFO, LDZ, M, N
14
15 INTEGER IBLOCK( * ), IFAIL( * ), ISPLIT( * ), IWORK( * )
16
17 REAL D( * ), E( * ), W( * ), WORK( * )
18
19 COMPLEX Z( LDZ, * )
20
22 CSTEIN computes the eigenvectors of a real symmetric tridiagonal matrix
23 T corresponding to specified eigenvalues, using inverse iteration.
24
25 The maximum number of iterations allowed for each eigenvector is speci‐
26 fied by an internal parameter MAXITS (currently set to 5).
27
28 Although the eigenvectors are real, they are stored in a complex array,
29 which may be passed to CUNMTR or CUPMTR for back
30 transformation to the eigenvectors of a complex Hermitian matrix which
31 was reduced to tridiagonal form.
32
33
34
36 N (input) INTEGER
37 The order of the matrix. N >= 0.
38
39 D (input) REAL array, dimension (N)
40 The n diagonal elements of the tridiagonal matrix T.
41
42 E (input) REAL array, dimension (N-1)
43 The (n-1) subdiagonal elements of the tridiagonal matrix T,
44 stored in elements 1 to N-1.
45
46 M (input) INTEGER
47 The number of eigenvectors to be found. 0 <= M <= N.
48
49 W (input) REAL array, dimension (N)
50 The first M elements of W contain the eigenvalues for which
51 eigenvectors are to be computed. The eigenvalues should be
52 grouped by split-off block and ordered from smallest to largest
53 within the block. ( The output array W from SSTEBZ with ORDER
54 = 'B' is expected here. )
55
56 IBLOCK (input) INTEGER array, dimension (N)
57 The submatrix indices associated with the corresponding eigen‐
58 values in W; IBLOCK(i)=1 if eigenvalue W(i) belongs to the
59 first submatrix from the top, =2 if W(i) belongs to the second
60 submatrix, etc. ( The output array IBLOCK from SSTEBZ is
61 expected here. )
62
63 ISPLIT (input) INTEGER array, dimension (N)
64 The splitting points, at which T breaks up into submatrices.
65 The first submatrix consists of rows/columns 1 to ISPLIT( 1 ),
66 the second of rows/columns ISPLIT( 1 )+1 through ISPLIT( 2 ),
67 etc. ( The output array ISPLIT from SSTEBZ is expected here. )
68
69 Z (output) COMPLEX array, dimension (LDZ, M)
70 The computed eigenvectors. The eigenvector associated with the
71 eigenvalue W(i) is stored in the i-th column of Z. Any vector
72 which fails to converge is set to its current iterate after
73 MAXITS iterations. The imaginary parts of the eigenvectors are
74 set to zero.
75
76 LDZ (input) INTEGER
77 The leading dimension of the array Z. LDZ >= max(1,N).
78
79 WORK (workspace) REAL array, dimension (5*N)
80
81 IWORK (workspace) INTEGER array, dimension (N)
82
83 IFAIL (output) INTEGER array, dimension (M)
84 On normal exit, all elements of IFAIL are zero. If one or more
85 eigenvectors fail to converge after MAXITS iterations, then
86 their indices are stored in array IFAIL.
87
88 INFO (output) INTEGER
89 = 0: successful exit
90 < 0: if INFO = -i, the i-th argument had an illegal value
91 > 0: if INFO = i, then i eigenvectors failed to converge in
92 MAXITS iterations. Their indices are stored in array IFAIL.
93
95 MAXITS INTEGER, default = 5
96 The maximum number of iterations performed.
97
98 EXTRA INTEGER, default = 2
99 The number of iterations performed after norm growth criterion
100 is satisfied, should be at least 1.
101
102
103
104 LAPACK routine (version 3.1) November 2006 CSTEIN(1)