1DLASD4(1) LAPACK auxiliary routine (version 3.2) DLASD4(1)
2
3
4
6 DLASD4 - subroutine compute the square root of the I-th updated eigen‐
7 value of a positive symmetric rank-one modification to a positive diag‐
8 onal matrix whose entries are given as the squares of the corresponding
9 entries in the array d, and that 0 <= D(i) < D(j) for i < j and that
10 RHO > 0
11
13 SUBROUTINE DLASD4( N, I, D, Z, DELTA, RHO, SIGMA, WORK, INFO )
14
15 INTEGER I, INFO, N
16
17 DOUBLE PRECISION RHO, SIGMA
18
19 DOUBLE PRECISION D( * ), DELTA( * ), WORK( * ), Z( * )
20
22 This subroutine computes the square root of the I-th updated eigenvalue
23 of a positive symmetric rank-one modification to a positive diagonal
24 matrix whose entries are given as the squares of the corresponding
25 entries in the array d, and that no loss in generality. The rank-one
26 modified system is thus
27 diag( D ) * diag( D ) + RHO * Z * Z_transpose.
28 where we assume the Euclidean norm of Z is 1.
29 The method consists of approximating the rational functions in the sec‐
30 ular equation by simpler interpolating rational functions.
31
33 N (input) INTEGER
34 The length of all arrays.
35
36 I (input) INTEGER
37 The index of the eigenvalue to be computed. 1 <= I <= N.
38
39 D (input) DOUBLE PRECISION array, dimension ( N )
40 The original eigenvalues. It is assumed that they are in order,
41 0 <= D(I) < D(J) for I < J.
42
43 Z (input) DOUBLE PRECISION array, dimension ( N )
44 The components of the updating vector.
45
46 DELTA (output) DOUBLE PRECISION array, dimension ( N )
47 If N .ne. 1, DELTA contains (D(j) - sigma_I) in its j-th compo‐
48 nent. If N = 1, then DELTA(1) = 1. The vector DELTA contains
49 the information necessary to construct the (singular) eigenvec‐
50 tors.
51
52 RHO (input) DOUBLE PRECISION
53 The scalar in the symmetric updating formula.
54
55 SIGMA (output) DOUBLE PRECISION
56 The computed sigma_I, the I-th updated eigenvalue.
57
58 WORK (workspace) DOUBLE PRECISION array, dimension ( N )
59 If N .ne. 1, WORK contains (D(j) + sigma_I) in its j-th compo‐
60 nent. If N = 1, then WORK( 1 ) = 1.
61
62 INFO (output) INTEGER
63 = 0: successful exit
64 > 0: if INFO = 1, the updating process failed.
65
67 Logical variable ORGATI (origin-at-i?) is used for distinguishing
68 whether D(i) or D(i+1) is treated as the origin. ORGATI = .true.
69 origin at i ORGATI = .false. origin at i+1 Logical variable SWTCH3
70 (switch-for-3-poles?) is for noting if we are working with THREE poles!
71 MAXIT is the maximum number of iterations allowed for each eigenvalue.
72 Further Details =============== Based on contributions by Ren-Cang Li,
73 Computer Science Division, University of California at Berkeley, USA
74
75
76
77 LAPACK auxiliary routine (versionNo3v.e2m)ber 2008 DLASD4(1)