annotate libcruft/arpack/src/cnapps.f @ 12274:9f5d2ef078e8 release-3-4-x

import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
author John W. Eaton <jwe@octave.org>
date Fri, 28 Jan 2011 14:04:33 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
12274
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
1 c\BeginDoc
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
2 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
3 c\Name: cnapps
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
4 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
5 c\Description:
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
6 c Given the Arnoldi factorization
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
7 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
8 c A*V_{k} - V_{k}*H_{k} = r_{k+p}*e_{k+p}^T,
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
9 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
10 c apply NP implicit shifts resulting in
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
11 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
12 c A*(V_{k}*Q) - (V_{k}*Q)*(Q^T* H_{k}*Q) = r_{k+p}*e_{k+p}^T * Q
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
13 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
14 c where Q is an orthogonal matrix which is the product of rotations
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
15 c and reflections resulting from the NP bulge change sweeps.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
16 c The updated Arnoldi factorization becomes:
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
17 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
18 c A*VNEW_{k} - VNEW_{k}*HNEW_{k} = rnew_{k}*e_{k}^T.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
19 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
20 c\Usage:
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
21 c call cnapps
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
22 c ( N, KEV, NP, SHIFT, V, LDV, H, LDH, RESID, Q, LDQ,
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
23 c WORKL, WORKD )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
24 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
25 c\Arguments
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
26 c N Integer. (INPUT)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
27 c Problem size, i.e. size of matrix A.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
28 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
29 c KEV Integer. (INPUT/OUTPUT)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
30 c KEV+NP is the size of the input matrix H.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
31 c KEV is the size of the updated matrix HNEW.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
32 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
33 c NP Integer. (INPUT)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
34 c Number of implicit shifts to be applied.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
35 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
36 c SHIFT Complex array of length NP. (INPUT)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
37 c The shifts to be applied.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
38 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
39 c V Complex N by (KEV+NP) array. (INPUT/OUTPUT)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
40 c On INPUT, V contains the current KEV+NP Arnoldi vectors.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
41 c On OUTPUT, V contains the updated KEV Arnoldi vectors
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
42 c in the first KEV columns of V.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
43 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
44 c LDV Integer. (INPUT)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
45 c Leading dimension of V exactly as declared in the calling
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
46 c program.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
47 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
48 c H Complex (KEV+NP) by (KEV+NP) array. (INPUT/OUTPUT)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
49 c On INPUT, H contains the current KEV+NP by KEV+NP upper
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
50 c Hessenberg matrix of the Arnoldi factorization.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
51 c On OUTPUT, H contains the updated KEV by KEV upper Hessenberg
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
52 c matrix in the KEV leading submatrix.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
53 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
54 c LDH Integer. (INPUT)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
55 c Leading dimension of H exactly as declared in the calling
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
56 c program.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
57 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
58 c RESID Complex array of length N. (INPUT/OUTPUT)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
59 c On INPUT, RESID contains the the residual vector r_{k+p}.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
60 c On OUTPUT, RESID is the update residual vector rnew_{k}
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
61 c in the first KEV locations.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
62 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
63 c Q Complex KEV+NP by KEV+NP work array. (WORKSPACE)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
64 c Work array used to accumulate the rotations and reflections
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
65 c during the bulge chase sweep.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
66 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
67 c LDQ Integer. (INPUT)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
68 c Leading dimension of Q exactly as declared in the calling
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
69 c program.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
70 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
71 c WORKL Complex work array of length (KEV+NP). (WORKSPACE)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
72 c Private (replicated) array on each PE or array allocated on
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
73 c the front end.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
74 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
75 c WORKD Complex work array of length 2*N. (WORKSPACE)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
76 c Distributed array used in the application of the accumulated
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
77 c orthogonal matrix Q.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
78 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
79 c\EndDoc
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
80 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
81 c-----------------------------------------------------------------------
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
82 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
83 c\BeginLib
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
84 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
85 c\Local variables:
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
86 c xxxxxx Complex
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
87 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
88 c\References:
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
89 c 1. D.C. Sorensen, "Implicit Application of Polynomial Filters in
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
90 c a k-Step Arnoldi Method", SIAM J. Matr. Anal. Apps., 13 (1992),
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
91 c pp 357-385.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
92 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
93 c\Routines called:
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
94 c ivout ARPACK utility routine that prints integers.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
95 c arscnd ARPACK utility routine for timing.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
96 c cmout ARPACK utility routine that prints matrices
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
97 c cvout ARPACK utility routine that prints vectors.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
98 c clacpy LAPACK matrix copy routine.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
99 c clanhs LAPACK routine that computes various norms of a matrix.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
100 c clartg LAPACK Givens rotation construction routine.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
101 c claset LAPACK matrix initialization routine.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
102 c slabad LAPACK routine for defining the underflow and overflow
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
103 c limits.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
104 c slamch LAPACK routine that determines machine constants.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
105 c slapy2 LAPACK routine to compute sqrt(x**2+y**2) carefully.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
106 c cgemv Level 2 BLAS routine for matrix vector multiplication.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
107 c caxpy Level 1 BLAS that computes a vector triad.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
108 c ccopy Level 1 BLAS that copies one vector to another.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
109 c cscal Level 1 BLAS that scales a vector.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
110 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
111 c\Author
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
112 c Danny Sorensen Phuong Vu
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
113 c Richard Lehoucq CRPC / Rice University
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
114 c Dept. of Computational & Houston, Texas
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
115 c Applied Mathematics
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
116 c Rice University
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
117 c Houston, Texas
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
118 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
119 c\SCCS Information: @(#)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
120 c FILE: napps.F SID: 2.3 DATE OF SID: 3/28/97 RELEASE: 2
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
121 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
122 c\Remarks
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
123 c 1. In this version, each shift is applied to all the sublocks of
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
124 c the Hessenberg matrix H and not just to the submatrix that it
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
125 c comes from. Deflation as in LAPACK routine clahqr (QR algorithm
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
126 c for upper Hessenberg matrices ) is used.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
127 c Upon output, the subdiagonals of H are enforced to be non-negative
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
128 c real numbers.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
129 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
130 c\EndLib
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
131 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
132 c-----------------------------------------------------------------------
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
133 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
134 subroutine cnapps
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
135 & ( n, kev, np, shift, v, ldv, h, ldh, resid, q, ldq,
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
136 & workl, workd )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
137 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
138 c %----------------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
139 c | Include files for debugging and timing information |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
140 c %----------------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
141 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
142 include 'debug.h'
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
143 include 'stat.h'
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
144 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
145 c %------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
146 c | Scalar Arguments |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
147 c %------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
148 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
149 integer kev, ldh, ldq, ldv, n, np
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
150 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
151 c %-----------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
152 c | Array Arguments |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
153 c %-----------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
154 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
155 Complex
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
156 & h(ldh,kev+np), resid(n), shift(np),
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
157 & v(ldv,kev+np), q(ldq,kev+np), workd(2*n), workl(kev+np)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
158 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
159 c %------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
160 c | Parameters |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
161 c %------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
162 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
163 Complex
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
164 & one, zero
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
165 Real
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
166 & rzero
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
167 parameter (one = (1.0E+0, 0.0E+0), zero = (0.0E+0, 0.0E+0),
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
168 & rzero = 0.0E+0)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
169 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
170 c %------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
171 c | Local Scalars & Arrays |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
172 c %------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
173 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
174 integer i, iend, istart, j, jj, kplusp, msglvl
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
175 logical first
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
176 Complex
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
177 & cdum, f, g, h11, h21, r, s, sigma, t
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
178 Real
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
179 & c, ovfl, smlnum, ulp, unfl, tst1
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
180 save first, ovfl, smlnum, ulp, unfl
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
181 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
182 c %----------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
183 c | External Subroutines |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
184 c %----------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
185 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
186 external caxpy, ccopy, cgemv, cscal, clacpy, clartg,
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
187 & cvout, claset, slabad, cmout, arscnd, ivout
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
188 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
189 c %--------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
190 c | External Functions |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
191 c %--------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
192 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
193 Real
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
194 & clanhs, slamch, slapy2
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
195 external clanhs, slamch, slapy2
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
196 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
197 c %----------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
198 c | Intrinsics Functions |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
199 c %----------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
200 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
201 intrinsic abs, aimag, conjg, cmplx, max, min, real
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
202 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
203 c %---------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
204 c | Statement Functions |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
205 c %---------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
206 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
207 Real
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
208 & cabs1
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
209 cabs1( cdum ) = abs( real( cdum ) ) + abs( aimag( cdum ) )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
210 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
211 c %----------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
212 c | Data statments |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
213 c %----------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
214 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
215 data first / .true. /
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
216 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
217 c %-----------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
218 c | Executable Statements |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
219 c %-----------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
220 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
221 if (first) then
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
222 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
223 c %-----------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
224 c | Set machine-dependent constants for the |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
225 c | stopping criterion. If norm(H) <= sqrt(OVFL), |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
226 c | overflow should not occur. |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
227 c | REFERENCE: LAPACK subroutine clahqr |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
228 c %-----------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
229 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
230 unfl = slamch( 'safe minimum' )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
231 ovfl = real(one / unfl)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
232 call slabad( unfl, ovfl )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
233 ulp = slamch( 'precision' )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
234 smlnum = unfl*( n / ulp )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
235 first = .false.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
236 end if
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
237 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
238 c %-------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
239 c | Initialize timing statistics |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
240 c | & message level for debugging |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
241 c %-------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
242 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
243 call arscnd (t0)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
244 msglvl = mcapps
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
245 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
246 kplusp = kev + np
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
247 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
248 c %--------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
249 c | Initialize Q to the identity to accumulate |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
250 c | the rotations and reflections |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
251 c %--------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
252 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
253 call claset ('All', kplusp, kplusp, zero, one, q, ldq)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
254 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
255 c %----------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
256 c | Quick return if there are no shifts to apply |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
257 c %----------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
258 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
259 if (np .eq. 0) go to 9000
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
260 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
261 c %----------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
262 c | Chase the bulge with the application of each |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
263 c | implicit shift. Each shift is applied to the |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
264 c | whole matrix including each block. |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
265 c %----------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
266 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
267 do 110 jj = 1, np
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
268 sigma = shift(jj)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
269 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
270 if (msglvl .gt. 2 ) then
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
271 call ivout (logfil, 1, jj, ndigit,
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
272 & '_napps: shift number.')
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
273 call cvout (logfil, 1, sigma, ndigit,
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
274 & '_napps: Value of the shift ')
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
275 end if
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
276 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
277 istart = 1
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
278 20 continue
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
279 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
280 do 30 i = istart, kplusp-1
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
281 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
282 c %----------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
283 c | Check for splitting and deflation. Use |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
284 c | a standard test as in the QR algorithm |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
285 c | REFERENCE: LAPACK subroutine clahqr |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
286 c %----------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
287 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
288 tst1 = cabs1( h( i, i ) ) + cabs1( h( i+1, i+1 ) )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
289 if( tst1.eq.rzero )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
290 & tst1 = clanhs( '1', kplusp-jj+1, h, ldh, workl )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
291 if ( abs(real(h(i+1,i)))
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
292 & .le. max(ulp*tst1, smlnum) ) then
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
293 if (msglvl .gt. 0) then
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
294 call ivout (logfil, 1, i, ndigit,
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
295 & '_napps: matrix splitting at row/column no.')
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
296 call ivout (logfil, 1, jj, ndigit,
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
297 & '_napps: matrix splitting with shift number.')
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
298 call cvout (logfil, 1, h(i+1,i), ndigit,
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
299 & '_napps: off diagonal element.')
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
300 end if
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
301 iend = i
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
302 h(i+1,i) = zero
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
303 go to 40
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
304 end if
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
305 30 continue
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
306 iend = kplusp
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
307 40 continue
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
308 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
309 if (msglvl .gt. 2) then
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
310 call ivout (logfil, 1, istart, ndigit,
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
311 & '_napps: Start of current block ')
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
312 call ivout (logfil, 1, iend, ndigit,
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
313 & '_napps: End of current block ')
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
314 end if
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
315 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
316 c %------------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
317 c | No reason to apply a shift to block of order 1 |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
318 c | or if the current block starts after the point |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
319 c | of compression since we'll discard this stuff |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
320 c %------------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
321 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
322 if ( istart .eq. iend .or. istart .gt. kev) go to 100
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
323 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
324 h11 = h(istart,istart)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
325 h21 = h(istart+1,istart)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
326 f = h11 - sigma
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
327 g = h21
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
328 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
329 do 80 i = istart, iend-1
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
330 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
331 c %------------------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
332 c | Construct the plane rotation G to zero out the bulge |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
333 c %------------------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
334 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
335 call clartg (f, g, c, s, r)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
336 if (i .gt. istart) then
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
337 h(i,i-1) = r
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
338 h(i+1,i-1) = zero
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
339 end if
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
340 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
341 c %---------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
342 c | Apply rotation to the left of H; H <- G'*H |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
343 c %---------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
344 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
345 do 50 j = i, kplusp
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
346 t = c*h(i,j) + s*h(i+1,j)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
347 h(i+1,j) = -conjg(s)*h(i,j) + c*h(i+1,j)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
348 h(i,j) = t
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
349 50 continue
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
350 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
351 c %---------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
352 c | Apply rotation to the right of H; H <- H*G |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
353 c %---------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
354 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
355 do 60 j = 1, min(i+2,iend)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
356 t = c*h(j,i) + conjg(s)*h(j,i+1)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
357 h(j,i+1) = -s*h(j,i) + c*h(j,i+1)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
358 h(j,i) = t
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
359 60 continue
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
360 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
361 c %-----------------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
362 c | Accumulate the rotation in the matrix Q; Q <- Q*G' |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
363 c %-----------------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
364 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
365 do 70 j = 1, min(i+jj, kplusp)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
366 t = c*q(j,i) + conjg(s)*q(j,i+1)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
367 q(j,i+1) = - s*q(j,i) + c*q(j,i+1)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
368 q(j,i) = t
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
369 70 continue
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
370 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
371 c %---------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
372 c | Prepare for next rotation |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
373 c %---------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
374 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
375 if (i .lt. iend-1) then
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
376 f = h(i+1,i)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
377 g = h(i+2,i)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
378 end if
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
379 80 continue
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
380 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
381 c %-------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
382 c | Finished applying the shift. |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
383 c %-------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
384 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
385 100 continue
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
386 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
387 c %---------------------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
388 c | Apply the same shift to the next block if there is any. |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
389 c %---------------------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
390 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
391 istart = iend + 1
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
392 if (iend .lt. kplusp) go to 20
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
393 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
394 c %---------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
395 c | Loop back to the top to get the next shift. |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
396 c %---------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
397 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
398 110 continue
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
399 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
400 c %---------------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
401 c | Perform a similarity transformation that makes |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
402 c | sure that the compressed H will have non-negative |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
403 c | real subdiagonal elements. |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
404 c %---------------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
405 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
406 do 120 j=1,kev
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
407 if ( real( h(j+1,j) ) .lt. rzero .or.
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
408 & aimag( h(j+1,j) ) .ne. rzero ) then
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
409 t = h(j+1,j) / slapy2(real(h(j+1,j)),aimag(h(j+1,j)))
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
410 call cscal( kplusp-j+1, conjg(t), h(j+1,j), ldh )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
411 call cscal( min(j+2, kplusp), t, h(1,j+1), 1 )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
412 call cscal( min(j+np+1,kplusp), t, q(1,j+1), 1 )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
413 h(j+1,j) = cmplx( real( h(j+1,j) ), rzero )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
414 end if
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
415 120 continue
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
416 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
417 do 130 i = 1, kev
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
418 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
419 c %--------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
420 c | Final check for splitting and deflation. |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
421 c | Use a standard test as in the QR algorithm |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
422 c | REFERENCE: LAPACK subroutine clahqr. |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
423 c | Note: Since the subdiagonals of the |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
424 c | compressed H are nonnegative real numbers, |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
425 c | we take advantage of this. |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
426 c %--------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
427 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
428 tst1 = cabs1( h( i, i ) ) + cabs1( h( i+1, i+1 ) )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
429 if( tst1 .eq. rzero )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
430 & tst1 = clanhs( '1', kev, h, ldh, workl )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
431 if( real( h( i+1,i ) ) .le. max( ulp*tst1, smlnum ) )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
432 & h(i+1,i) = zero
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
433 130 continue
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
434 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
435 c %-------------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
436 c | Compute the (kev+1)-st column of (V*Q) and |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
437 c | temporarily store the result in WORKD(N+1:2*N). |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
438 c | This is needed in the residual update since we |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
439 c | cannot GUARANTEE that the corresponding entry |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
440 c | of H would be zero as in exact arithmetic. |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
441 c %-------------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
442 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
443 if ( real( h(kev+1,kev) ) .gt. rzero )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
444 & call cgemv ('N', n, kplusp, one, v, ldv, q(1,kev+1), 1, zero,
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
445 & workd(n+1), 1)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
446 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
447 c %----------------------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
448 c | Compute column 1 to kev of (V*Q) in backward order |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
449 c | taking advantage of the upper Hessenberg structure of Q. |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
450 c %----------------------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
451 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
452 do 140 i = 1, kev
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
453 call cgemv ('N', n, kplusp-i+1, one, v, ldv,
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
454 & q(1,kev-i+1), 1, zero, workd, 1)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
455 call ccopy (n, workd, 1, v(1,kplusp-i+1), 1)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
456 140 continue
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
457 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
458 c %-------------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
459 c | Move v(:,kplusp-kev+1:kplusp) into v(:,1:kev). |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
460 c %-------------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
461 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
462 call clacpy ('A', n, kev, v(1,kplusp-kev+1), ldv, v, ldv)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
463 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
464 c %--------------------------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
465 c | Copy the (kev+1)-st column of (V*Q) in the appropriate place |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
466 c %--------------------------------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
467 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
468 if ( real( h(kev+1,kev) ) .gt. rzero )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
469 & call ccopy (n, workd(n+1), 1, v(1,kev+1), 1)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
470 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
471 c %-------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
472 c | Update the residual vector: |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
473 c | r <- sigmak*r + betak*v(:,kev+1) |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
474 c | where |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
475 c | sigmak = (e_{kev+p}'*Q)*e_{kev} |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
476 c | betak = e_{kev+1}'*H*e_{kev} |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
477 c %-------------------------------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
478 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
479 call cscal (n, q(kplusp,kev), resid, 1)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
480 if ( real( h(kev+1,kev) ) .gt. rzero )
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
481 & call caxpy (n, h(kev+1,kev), v(1,kev+1), 1, resid, 1)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
482 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
483 if (msglvl .gt. 1) then
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
484 call cvout (logfil, 1, q(kplusp,kev), ndigit,
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
485 & '_napps: sigmak = (e_{kev+p}^T*Q)*e_{kev}')
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
486 call cvout (logfil, 1, h(kev+1,kev), ndigit,
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
487 & '_napps: betak = e_{kev+1}^T*H*e_{kev}')
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
488 call ivout (logfil, 1, kev, ndigit,
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
489 & '_napps: Order of the final Hessenberg matrix ')
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
490 if (msglvl .gt. 2) then
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
491 call cmout (logfil, kev, kev, h, ldh, ndigit,
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
492 & '_napps: updated Hessenberg matrix H for next iteration')
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
493 end if
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
494 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
495 end if
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
496 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
497 9000 continue
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
498 call arscnd (t1)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
499 tcapps = tcapps + (t1 - t0)
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
500 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
501 return
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
502 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
503 c %---------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
504 c | End of cnapps |
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
505 c %---------------%
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
506 c
9f5d2ef078e8 import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff changeset
507 end