Mercurial > hg > octave-thorsten
annotate libcruft/arpack/src/cneupd.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 | 9ed4018d538c |
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: cneupd |
9f5d2ef078e8
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 This subroutine returns the converged approximations to eigenvalues |
9f5d2ef078e8
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 of A*z = lambda*B*z and (optionally): |
9f5d2ef078e8
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 |
9f5d2ef078e8
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 (1) The corresponding approximate eigenvectors; |
9f5d2ef078e8
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 |
9f5d2ef078e8
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 (2) An orthonormal basis for the associated approximate |
9f5d2ef078e8
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 invariant subspace; |
9f5d2ef078e8
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 (3) Both. |
9f5d2ef078e8
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 |
9f5d2ef078e8
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 There is negligible additional cost to obtain eigenvectors. An orthonormal |
9f5d2ef078e8
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 basis is always computed. There is an additional storage cost of n*nev |
9f5d2ef078e8
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 if both are requested (in this case a separate array Z must be supplied). |
9f5d2ef078e8
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 The approximate eigenvalues and eigenvectors of A*z = lambda*B*z |
9f5d2ef078e8
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 are derived from approximate eigenvalues and eigenvectors 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
|
22 c of the linear operator OP prescribed by the MODE selection in 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
|
23 c call to CNAUPD. CNAUPD must be called before this routine is 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
|
24 c These approximate eigenvalues and vectors are commonly called Ritz |
9f5d2ef078e8
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 values and Ritz vectors respectively. They are referred to as such |
9f5d2ef078e8
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 in the comments that follow. The computed orthonormal basis 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
|
27 c invariant subspace corresponding to these Ritz values is referred to as 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 Schur basis. |
9f5d2ef078e8
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 |
9f5d2ef078e8
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 The definition of OP as well as other terms and the relation of computed |
9f5d2ef078e8
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 Ritz values and vectors of OP with respect to the given problem |
9f5d2ef078e8
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 A*z = lambda*B*z may be found in the header of CNAUPD. For a brief |
9f5d2ef078e8
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 description, see definitions of IPARAM(7), MODE and WHICH in 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
|
34 c documentation of CNAUPD. |
9f5d2ef078e8
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\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
|
37 c call cneupd |
9f5d2ef078e8
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 ( RVEC, HOWMNY, SELECT, D, Z, LDZ, SIGMA, WORKEV, BMAT, |
9f5d2ef078e8
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 N, WHICH, NEV, TOL, RESID, NCV, V, LDV, IPARAM, IPNTR, 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
|
40 c WORKL, LWORKL, RWORK, INFO ) |
9f5d2ef078e8
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 |
9f5d2ef078e8
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\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
|
43 c RVEC LOGICAL (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
|
44 c Specifies whether a basis for the invariant subspace corresponding |
9f5d2ef078e8
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 to the converged Ritz value approximations for the eigenproblem |
9f5d2ef078e8
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 A*z = lambda*B*z is computed. |
9f5d2ef078e8
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 RVEC = .FALSE. Compute Ritz values only. |
9f5d2ef078e8
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 |
9f5d2ef078e8
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 RVEC = .TRUE. Compute Ritz vectors or Schur 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
|
51 c See Remarks below. |
9f5d2ef078e8
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 |
9f5d2ef078e8
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 HOWMNY Character*1 (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
|
54 c Specifies the form of the basis for the invariant subspace |
9f5d2ef078e8
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 corresponding to the converged Ritz values that is to be computed. |
9f5d2ef078e8
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 |
9f5d2ef078e8
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 = 'A': Compute NEV Ritz 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
|
58 c = 'P': Compute NEV Schur 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
|
59 c = 'S': compute some of the Ritz vectors, specified |
9f5d2ef078e8
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 by the logical array SELECT. |
9f5d2ef078e8
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 |
9f5d2ef078e8
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 SELECT Logical array of dimension NCV. (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
|
63 c If HOWMNY = 'S', SELECT specifies the Ritz vectors to be |
9f5d2ef078e8
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 computed. To select the Ritz vector corresponding to 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
|
65 c Ritz value D(j), SELECT(j) must be set to .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
|
66 c If HOWMNY = 'A' or 'P', SELECT need not be initialized |
9f5d2ef078e8
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 but it is used as internal 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
|
68 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
|
69 c D Complex array of dimension NEV+1. (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
|
70 c On exit, D contains the Ritz approximations |
9f5d2ef078e8
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 to the eigenvalues lambda for A*z = lambda*B*z. |
9f5d2ef078e8
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 |
9f5d2ef078e8
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 Z Complex N by NEV array (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
|
74 c On exit, if RVEC = .TRUE. and HOWMNY = 'A', then the columns 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
|
75 c Z represents approximate eigenvectors (Ritz vectors) corresponding |
9f5d2ef078e8
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 to the NCONV=IPARAM(5) Ritz values for eigensystem |
9f5d2ef078e8
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 A*z = lambda*B*z. |
9f5d2ef078e8
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 If RVEC = .FALSE. or HOWMNY = 'P', then Z is NOT REFERENCED. |
9f5d2ef078e8
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 NOTE: If if RVEC = .TRUE. and a Schur basis is not required, |
9f5d2ef078e8
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 the array Z may be set equal to first NEV+1 columns of the Arnoldi |
9f5d2ef078e8
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 basis array V computed by CNAUPD. In this case the Arnoldi basis |
9f5d2ef078e8
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 will be destroyed and overwritten with the eigenvector basis. |
9f5d2ef078e8
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 |
9f5d2ef078e8
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 LDZ 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
|
87 c The leading dimension of the array Z. If Ritz vectors are |
9f5d2ef078e8
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 desired, then LDZ .ge. max( 1, N ) is required. |
9f5d2ef078e8
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 In any case, LDZ .ge. 1 is required. |
9f5d2ef078e8
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 |
9f5d2ef078e8
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 SIGMA Complex (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
|
92 c If IPARAM(7) = 3 then SIGMA represents 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
|
93 c Not referenced if IPARAM(7) = 1 or 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
|
94 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
|
95 c WORKEV Complex work array of dimension 2*NCV. (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
|
96 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
|
97 c **** The remaining arguments MUST be the same as 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
|
98 c **** call to CNAUPD that was just completed. **** |
9f5d2ef078e8
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 |
9f5d2ef078e8
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 NOTE: The remaining 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
|
101 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
|
102 c BMAT, N, WHICH, NEV, TOL, RESID, NCV, V, LDV, IPARAM, IPNTR, |
9f5d2ef078e8
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 WORKD, WORKL, LWORKL, RWORK, INFO |
9f5d2ef078e8
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 |
9f5d2ef078e8
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 must be passed directly to CNEUPD following the last call |
9f5d2ef078e8
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 to CNAUPD. These arguments MUST NOT BE MODIFIED between |
9f5d2ef078e8
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 the the last call to CNAUPD and the call to CNEUPD. |
9f5d2ef078e8
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 |
9f5d2ef078e8
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 Three of these parameters (V, WORKL and INFO) are also output 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
|
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 V Complex N by NCV 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
|
112 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
|
113 c Upon INPUT: the NCV columns of V contain the Arnoldi basis |
9f5d2ef078e8
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 vectors for OP as constructed by CNAUPD . |
9f5d2ef078e8
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 |
9f5d2ef078e8
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 Upon OUTPUT: If RVEC = .TRUE. the first NCONV=IPARAM(5) columns |
9f5d2ef078e8
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 contain approximate Schur vectors that span 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
|
118 c desired invariant subspace. |
9f5d2ef078e8
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 |
9f5d2ef078e8
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 NOTE: If the array Z has been set equal to first NEV+1 columns |
9f5d2ef078e8
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 of the array V and RVEC=.TRUE. and HOWMNY= 'A', then 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
|
122 c Arnoldi basis held by V has been overwritten by the desired |
9f5d2ef078e8
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 Ritz vectors. If a separate array Z has been passed 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
|
124 c the first NCONV=IPARAM(5) columns of V will contain approximate |
9f5d2ef078e8
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 Schur vectors that span the desired invariant subspace. |
9f5d2ef078e8
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 |
9f5d2ef078e8
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 WORKL Real work array of length LWORKL. (OUTPUT/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
|
128 c WORKL(1:ncv*ncv+2*ncv) contains information obtained 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
|
129 c cnaupd. They are not changed by cneupd. |
9f5d2ef078e8
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 WORKL(ncv*ncv+2*ncv+1:3*ncv*ncv+4*ncv) holds 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
|
131 c untransformed Ritz values, the untransformed error estimates 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
|
132 c the Ritz values, the upper triangular matrix for H, and 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
|
133 c associated matrix representation of the invariant subspace for 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
|
134 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
|
135 c Note: IPNTR(9:13) contains the pointer into WORKL for addresses |
9f5d2ef078e8
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 c of the above information computed by cneupd. |
9f5d2ef078e8
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 IPNTR(9): pointer to the NCV RITZ values 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
|
139 c original system. |
9f5d2ef078e8
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 IPNTR(10): Not 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
|
141 c IPNTR(11): pointer to the NCV corresponding error estimates. |
9f5d2ef078e8
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 c IPNTR(12): pointer to the NCV by NCV upper triangular |
9f5d2ef078e8
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 c Schur matrix for 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 IPNTR(13): pointer to the NCV by NCV matrix of eigenvectors |
9f5d2ef078e8
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 of the upper Hessenberg matrix H. Only referenced by |
9f5d2ef078e8
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 cneupd if RVEC = .TRUE. See Remark 2 below. |
9f5d2ef078e8
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 c INFO Integer. (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
|
150 c Error flag on 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
|
151 c = 0: Normal exit. |
9f5d2ef078e8
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 |
9f5d2ef078e8
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 = 1: The Schur form computed by LAPACK routine csheqr |
9f5d2ef078e8
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 could not be reordered by LAPACK routine ctrsen. |
9f5d2ef078e8
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 c Re-enter subroutine cneupd with IPARAM(5)=NCV 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
|
156 c increase the size of the array D to have |
9f5d2ef078e8
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 c dimension at least dimension NCV and allocate at least NCV |
9f5d2ef078e8
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 columns for Z. NOTE: Not necessary if Z and V share |
9f5d2ef078e8
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 the same space. Please notify the authors if this error |
9f5d2ef078e8
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 occurs. |
9f5d2ef078e8
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 = -1: N must be positive. |
9f5d2ef078e8
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 c = -2: NEV must be positive. |
9f5d2ef078e8
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 c = -3: NCV-NEV >= 2 and less than or equal to 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
|
165 c = -5: WHICH must be one of 'LM', 'SM', 'LR', 'SR', 'LI', 'SI' |
9f5d2ef078e8
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 c = -6: BMAT must be one of 'I' or '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
|
167 c = -7: Length of private work WORKL array is not sufficient. |
9f5d2ef078e8
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 c = -8: Error return from LAPACK eigenvalue calculation. |
9f5d2ef078e8
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 This should never happened. |
9f5d2ef078e8
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 = -9: Error return from calculation of eigenvectors. |
9f5d2ef078e8
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 Informational error from LAPACK routine ctrevc. |
9f5d2ef078e8
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 = -10: IPARAM(7) must be 1,2,3 |
9f5d2ef078e8
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 = -11: IPARAM(7) = 1 and BMAT = 'G' are incompatible. |
9f5d2ef078e8
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 c = -12: HOWMNY = 'S' not yet implemented |
9f5d2ef078e8
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 c = -13: HOWMNY must be one of 'A' or 'P' if RVEC = .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
|
176 c = -14: CNAUPD did not find any eigenvalues to sufficient |
9f5d2ef078e8
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 c accuracy. |
9f5d2ef078e8
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 c = -15: CNEUPD got a different count of the number of converged |
9f5d2ef078e8
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 Ritz values than CNAUPD got. This indicates the user |
9f5d2ef078e8
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 c probably made an error in passing data from CNAUPD to |
9f5d2ef078e8
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 CNEUPD or that the data was modified before entering |
9f5d2ef078e8
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 CNEUPD |
9f5d2ef078e8
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 |
9f5d2ef078e8
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\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
|
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 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
|
187 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
|
188 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
|
189 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
|
190 c 2. R.B. Lehoucq, "Analysis and Implementation of an Implicitly |
9f5d2ef078e8
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 Restarted Arnoldi Iteration", Rice University Technical Report |
9f5d2ef078e8
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 TR95-13, Department of Computational and 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
|
193 c 3. B. Nour-Omid, B. N. Parlett, T. Ericsson and P. S. Jensen, |
9f5d2ef078e8
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 c "How to Implement the Spectral Transformation", Math Comp., |
9f5d2ef078e8
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 c Vol. 48, No. 178, April, 1987 pp. 664-673. |
9f5d2ef078e8
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\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
|
198 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
|
199 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
|
200 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
|
201 c cgeqr2 LAPACK routine that computes the QR factorization 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
|
202 c 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
|
203 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
|
204 c clahqr LAPACK routine that computes the Schur form of 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
|
205 c upper 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
|
206 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
|
207 c ctrevc LAPACK routine to compute the eigenvectors 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
|
208 c in upper triangular form. |
9f5d2ef078e8
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 c ctrsen LAPACK routine that re-orders the Schur form. |
9f5d2ef078e8
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 cunm2r LAPACK routine that applies an orthogonal matrix 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
|
211 c factored form. |
9f5d2ef078e8
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 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
|
213 c ctrmm Level 3 BLAS matrix times an upper triangular 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
|
214 c cgeru Level 2 BLAS rank one update to 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
|
215 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
|
216 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
|
217 c csscal Level 1 BLAS that scales a complex vector by a real 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
|
218 c scnrm2 Level 1 BLAS that computes the norm of a complex 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
|
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\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
|
221 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
|
222 c 1. Currently only HOWMNY = 'A' and 'P' are implemented. |
9f5d2ef078e8
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 2. Schur vectors are an orthogonal representation for the basis 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
|
225 c Ritz vectors. Thus, their numerical properties are often superior. |
9f5d2ef078e8
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 If RVEC = .true. then the relationship |
9f5d2ef078e8
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 A * V(:,1:IPARAM(5)) = V(:,1:IPARAM(5)) * T, 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
|
228 c transpose( V(:,1:IPARAM(5)) ) * V(:,1:IPARAM(5)) = 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
|
229 c are approximately satisfied. |
9f5d2ef078e8
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 c Here T is the leading submatrix of order IPARAM(5) 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
|
231 c upper triangular matrix stored workl(ipntr(12)). |
9f5d2ef078e8
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 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
|
233 c\Authors |
9f5d2ef078e8
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 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
|
235 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
|
236 c Chao Yang 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
|
237 c Dept. of Computational & |
9f5d2ef078e8
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 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
|
239 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
|
240 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
|
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\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
|
243 c FILE: neupd.F SID: 2.7 DATE OF SID: 09/20/00 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
|
244 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
|
245 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
|
246 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
|
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 subroutine cneupd(rvec , howmny, select, d , |
9f5d2ef078e8
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 & z , ldz , sigma , workev, |
9f5d2ef078e8
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 & bmat , n , which , nev , |
9f5d2ef078e8
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 & tol , resid , ncv , 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
|
252 & ldv , iparam, ipntr , 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
|
253 & workl, lworkl, rwork , info ) |
9f5d2ef078e8
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 | 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
|
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 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
|
260 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
|
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 %------------------% |
9f5d2ef078e8
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 | 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
|
264 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
|
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 character bmat, howmny, which*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
|
267 logical rvec |
9f5d2ef078e8
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 integer info, ldz, ldv, lworkl, n, ncv, nev |
9f5d2ef078e8
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 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
|
270 & 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
|
271 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
|
272 & tol |
9f5d2ef078e8
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 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
|
274 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
|
275 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
|
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 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
|
278 integer iparam(11), ipntr(14) |
9f5d2ef078e8
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 logical select(ncv) |
9f5d2ef078e8
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 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
|
281 & rwork(ncv) |
9f5d2ef078e8
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 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
|
283 & d(nev) , resid(n) , v(ldv,ncv), |
9f5d2ef078e8
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 & z(ldz, nev), |
9f5d2ef078e8
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 & workd(3*n) , workl(lworkl), workev(2*ncv) |
9f5d2ef078e8
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 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
|
289 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
|
290 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
|
291 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
|
292 & 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
|
293 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
|
294 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
|
295 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
|
296 c | Local Scalars | |
9f5d2ef078e8
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 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
|
298 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
|
299 character type*6 |
9f5d2ef078e8
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 integer bounds, ierr , ih , ihbds, iheig , nconv , |
9f5d2ef078e8
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 & invsub, iuptri, iwev , j , ldh , 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
|
302 & mode , msglvl, ritz , wr , k , irz , |
9f5d2ef078e8
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 & ibd , outncv, iq , np , numcnv, 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
|
304 & ishift |
9f5d2ef078e8
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 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
|
306 & rnorm, temp, vl(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
|
307 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
|
308 & conds, sep, rtemp, eps23 |
9f5d2ef078e8
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 logical reord |
9f5d2ef078e8
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 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
|
311 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
|
312 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
|
313 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
|
314 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
|
315 external ccopy , cgeru, cgeqr2, clacpy, cmout, |
9f5d2ef078e8
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 & cunm2r, ctrmm, cvout, 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
|
317 & 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
|
318 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
|
319 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
|
320 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
|
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 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
|
323 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
|
324 & scnrm2, 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
|
325 external scnrm2, 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
|
326 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
|
327 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
|
328 & cdotc |
9f5d2ef078e8
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 external cdotc |
9f5d2ef078e8
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 | 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
|
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 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
|
336 c | Set default 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
|
337 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
|
338 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
|
339 msglvl = mceupd |
9f5d2ef078e8
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 mode = iparam(7) |
9f5d2ef078e8
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 nconv = iparam(5) |
9f5d2ef078e8
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 info = 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
|
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 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
|
346 c | Get machine dependent constant. | |
9f5d2ef078e8
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 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
|
348 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
|
349 eps23 = slamch('Epsilon-Machine') |
9f5d2ef078e8
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 eps23 = eps23**(2.0E+0 / 3.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
|
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 %-------------------------------% |
9f5d2ef078e8
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 | Quick 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
|
354 c | Check for incompatible 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
|
355 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
|
356 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
|
357 ierr = 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
|
358 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
|
359 if (nconv .le. 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
|
360 ierr = -14 |
9f5d2ef078e8
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 else if (n .le. 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
|
362 ierr = -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
|
363 else if (nev .le. 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
|
364 ierr = -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
|
365 else if (ncv .le. nev+1 .or. ncv .gt. n) 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
|
366 ierr = -3 |
9f5d2ef078e8
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 else if (which .ne. 'LM' .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
|
368 & which .ne. 'SM' .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
|
369 & which .ne. 'LR' .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
|
370 & which .ne. 'SR' .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
|
371 & which .ne. 'LI' .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
|
372 & which .ne. 'SI') 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
|
373 ierr = -5 |
9f5d2ef078e8
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 else if (bmat .ne. 'I' .and. bmat .ne. 'G') 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
|
375 ierr = -6 |
9f5d2ef078e8
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 else if (lworkl .lt. 3*ncv**2 + 4*ncv) 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
|
377 ierr = -7 |
9f5d2ef078e8
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 else if ( (howmny .ne. 'A' .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
|
379 & howmny .ne. 'P' .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
|
380 & howmny .ne. 'S') .and. rvec ) 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
|
381 ierr = -13 |
9f5d2ef078e8
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 else if (howmny .eq. 'S' ) 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
|
383 ierr = -12 |
9f5d2ef078e8
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 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
|
385 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
|
386 if (mode .eq. 1 .or. mode .eq. 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
|
387 type = 'REGULR' |
9f5d2ef078e8
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 else if (mode .eq. 3 ) 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
|
389 type = 'SHIFTI' |
9f5d2ef078e8
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 else |
9f5d2ef078e8
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 ierr = -10 |
9f5d2ef078e8
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 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
|
393 if (mode .eq. 1 .and. bmat .eq. 'G') ierr = -11 |
9f5d2ef078e8
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 %------------% |
9f5d2ef078e8
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 | Error Exit | |
9f5d2ef078e8
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 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
|
399 if (ierr .ne. 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
|
400 info = ierr |
9f5d2ef078e8
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 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
|
402 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
|
403 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
|
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 | Pointer into WORKL for address of H, RITZ, WORKEV, 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
|
406 c | etc... and the remaining 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
|
407 c | Also update pointer to be used on 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
|
408 c | Memory is laid out as follows: | |
9f5d2ef078e8
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 c | workl(1:ncv*ncv) := generated 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
|
410 c | workl(ncv*ncv+1:ncv*ncv+ncv) := ritz values | |
9f5d2ef078e8
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 c | workl(ncv*ncv+ncv+1:ncv*ncv+2*ncv) := error bounds | |
9f5d2ef078e8
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 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
|
413 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
|
414 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
|
415 c | The following is used and set by CNEUPD. | |
9f5d2ef078e8
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 | workl(ncv*ncv+2*ncv+1:ncv*ncv+3*ncv) := The untransformed | |
9f5d2ef078e8
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 c | Ritz values. | |
9f5d2ef078e8
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 | workl(ncv*ncv+3*ncv+1:ncv*ncv+4*ncv) := The untransformed | |
9f5d2ef078e8
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 | error bounds 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
|
420 c | the Ritz values | |
9f5d2ef078e8
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 | workl(ncv*ncv+4*ncv+1:2*ncv*ncv+4*ncv) := Holds the 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
|
422 c | triangular 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
|
423 c | for 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
|
424 c | workl(2*ncv*ncv+4*ncv+1: 3*ncv*ncv+4*ncv) := Holds 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
|
425 c | associated 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
|
426 c | representation 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
|
427 c | the invariant | |
9f5d2ef078e8
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 c | subspace for 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
|
429 c | GRAND total of NCV * ( 3 * NCV + 4 ) 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
|
430 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
|
431 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
|
432 ih = ipntr(5) |
9f5d2ef078e8
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 ritz = ipntr(6) |
9f5d2ef078e8
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 iq = ipntr(7) |
9f5d2ef078e8
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 bounds = ipntr(8) |
9f5d2ef078e8
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 ldh = ncv |
9f5d2ef078e8
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 ldq = ncv |
9f5d2ef078e8
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 iheig = bounds + 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
|
439 ihbds = iheig + 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
|
440 iuptri = ihbds + 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
|
441 invsub = iuptri + ldh*ncv |
9f5d2ef078e8
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 ipntr(9) = iheig |
9f5d2ef078e8
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 ipntr(11) = ihbds |
9f5d2ef078e8
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 ipntr(12) = iuptri |
9f5d2ef078e8
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 ipntr(13) = invsub |
9f5d2ef078e8
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 wr = 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
|
447 iwev = wr + ncv |
9f5d2ef078e8
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 |
9f5d2ef078e8
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 %-----------------------------------------% |
9f5d2ef078e8
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 | irz points to the Ritz values computed | |
9f5d2ef078e8
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 | by _neigh before exiting _naup2. | |
9f5d2ef078e8
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 c | ibd points to the Ritz estimates | |
9f5d2ef078e8
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 c | computed by _neigh before exiting | |
9f5d2ef078e8
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 c | _naup2. | |
9f5d2ef078e8
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 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
|
456 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
|
457 irz = ipntr(14) + ncv*ncv |
9f5d2ef078e8
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 ibd = irz + ncv |
9f5d2ef078e8
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 |
9f5d2ef078e8
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 | RNORM is B-norm of the RESID(1: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
|
462 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
|
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 rnorm = workl(ih+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
|
465 workl(ih+2) = 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
|
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 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
|
468 call cvout(logfil, ncv, workl(irz), 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
|
469 & '_neupd: Ritz values passed in from _NAUPD.') |
9f5d2ef078e8
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 call cvout(logfil, ncv, workl(ibd), 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
|
471 & '_neupd: Ritz estimates passed in from _NAUPD.') |
9f5d2ef078e8
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 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
|
473 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
|
474 if (rvec) 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
|
475 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
|
476 reord = .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
|
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 c | Use the temporary bounds array to store indices | |
9f5d2ef078e8
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 c | These will be used to mark the select array later | |
9f5d2ef078e8
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 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
|
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 do 10 j = 1,ncv |
9f5d2ef078e8
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 workl(bounds+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
|
485 select(j) = .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
|
486 10 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
|
487 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
|
488 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
|
489 c | Select the wanted Ritz values. | |
9f5d2ef078e8
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 c | Sort the Ritz values so that 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
|
491 c | wanted ones appear at the tailing | |
9f5d2ef078e8
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 c | NEV positions of workl(irr) 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
|
493 c | workl(iri). Move the corresponding | |
9f5d2ef078e8
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 | error estimates in workl(ibd) | |
9f5d2ef078e8
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 c | accordingly. | |
9f5d2ef078e8
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 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
|
498 np = ncv - nev |
9f5d2ef078e8
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 ishift = 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
|
500 call cngets(ishift, which , nev , |
9f5d2ef078e8
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 & np , workl(irz), workl(bounds)) |
9f5d2ef078e8
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 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
|
504 call cvout (logfil, ncv, workl(irz), 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
|
505 & '_neupd: Ritz values after calling _NGETS.') |
9f5d2ef078e8
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 call cvout (logfil, ncv, workl(bounds), 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
|
507 & '_neupd: Ritz value indices after calling _NGETS.') |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
508 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
|
509 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
|
510 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
|
511 c | Record indices of the converged wanted Ritz values | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
512 c | Mark the select array for possible reordering | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
513 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
|
514 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
|
515 numcnv = 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
|
516 do 11 j = 1,ncv |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
517 rtemp = max(eps23, |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
518 & slapy2 ( real (workl(irz+ncv-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
|
519 & aimag(workl(irz+ncv-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
|
520 jj = workl(bounds + ncv - 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
|
521 if (numcnv .lt. nconv .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
|
522 & slapy2( real (workl(ibd+jj-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
|
523 & aimag(workl(ibd+jj-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
|
524 & .le. tol*rtemp) 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
|
525 select(jj) = .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
|
526 numcnv = numcnv + 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
|
527 if (jj .gt. nev) reord = .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
|
528 endif |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
529 11 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
|
530 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
|
531 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
|
532 c | Check the count (numcnv) of converged Ritz values with | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
533 c | the number (nconv) reported by dnaupd. If these two | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
534 c | are different then there has probably been an error | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
535 c | caused by incorrect passing of the dnaupd data. | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
536 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
|
537 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
|
538 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
|
539 call ivout(logfil, 1, numcnv, 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
|
540 & '_neupd: Number of specified eigenvalues') |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
541 call ivout(logfil, 1, nconv, 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
|
542 & '_neupd: Number of "converged" eigenvalues') |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
543 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
|
544 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
|
545 if (numcnv .ne. nconv) 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
|
546 info = -15 |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
547 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
|
548 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
|
549 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
|
550 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
|
551 c | Call LAPACK routine clahqr to compute the Schur form | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
552 c | of the upper Hessenberg matrix returned by CNAUPD. | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
553 c | Make a copy of the upper 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
|
554 c | Initialize the Schur vector matrix Q to the identity. | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
555 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
|
556 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
|
557 call ccopy(ldh*ncv, workl(ih), 1, workl(iuptri), 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
|
558 call claset('All', ncv, ncv , |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
559 & zero , one, workl(invsub), |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
560 & 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
|
561 call clahqr(.true., .true. , ncv , |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
562 & 1 , ncv , workl(iuptri), |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
563 & ldh , workl(iheig) , 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
|
564 & ncv , workl(invsub), 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
|
565 & ierr) |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
566 call ccopy(ncv , workl(invsub+ncv-1), 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
|
567 & workl(ihbds), 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
|
568 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
|
569 if (ierr .ne. 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
|
570 info = -8 |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
571 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
|
572 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
|
573 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
|
574 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
|
575 call cvout (logfil, ncv, workl(iheig), 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
|
576 & '_neupd: Eigenvalues of 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
|
577 call cvout (logfil, ncv, workl(ihbds), 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
|
578 & '_neupd: Last row of the Schur vector 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
|
579 if (msglvl .gt. 3) 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
|
580 call cmout (logfil , ncv, ncv , |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
581 & workl(iuptri), 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
|
582 & '_neupd: The upper triangular 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
|
583 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
|
584 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
|
585 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
|
586 if (reord) 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
|
587 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
|
588 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
|
589 c | Reorder the computed upper triangular 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
|
590 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
|
591 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
|
592 call ctrsen('None' , 'V' , select , |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
593 & ncv , workl(iuptri), 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
|
594 & workl(invsub), ldq , workl(iheig), |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
595 & nconv , conds , sep , |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
596 & workev , ncv , ierr) |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
597 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
|
598 if (ierr .eq. 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
|
599 info = 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
|
600 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
|
601 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
|
602 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
|
603 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
|
604 call cvout (logfil, ncv, workl(iheig), 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
|
605 & '_neupd: Eigenvalues of H--reordered') |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
606 if (msglvl .gt. 3) 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
|
607 call cmout(logfil , ncv, ncv , |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
608 & workl(iuptri), ldq, 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
|
609 & '_neupd: Triangular matrix after re-ordering') |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
610 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
|
611 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
|
612 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
|
613 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
|
614 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
|
615 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
|
616 c | Copy the last row of the Schur basis 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
|
617 c | to workl(ihbds). This vector will be 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
|
618 c | to compute the Ritz estimates of converged | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
619 c | Ritz values. | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
620 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
|
621 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
|
622 call ccopy(ncv , workl(invsub+ncv-1), 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
|
623 & workl(ihbds), 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
|
624 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
|
625 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
|
626 c | Place the computed eigenvalues of H into D | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
627 c | if a spectral transformation was not 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
|
628 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
|
629 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
|
630 if (type .eq. 'REGULR') 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
|
631 call ccopy(nconv, workl(iheig), 1, d, 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
|
632 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
|
633 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
|
634 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
|
635 c | Compute the QR factorization of the matrix representing | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
636 c | the wanted invariant subspace located in the first NCONV | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
637 c | columns of workl(invsub,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
|
638 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
|
639 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
|
640 call cgeqr2(ncv , nconv , workl(invsub), |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
641 & ldq , workev, workev(ncv+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
|
642 & ierr) |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
643 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
|
644 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
|
645 c | * Postmultiply V by Q using cunm2r. | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
646 c | * Copy the first NCONV columns of VQ into Z. | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
647 c | * Postmultiply Z by 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
|
648 c | The N by NCONV matrix Z is now a matrix representation | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
649 c | of the approximate invariant subspace associated with | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
650 c | the Ritz values in workl(iheig). The first NCONV | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
651 c | columns of V are now approximate Schur 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
|
652 c | associated with the upper triangular matrix of 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
|
653 c | NCONV in workl(iuptri). | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
654 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
|
655 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
|
656 call cunm2r('Right', 'Notranspose', 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
|
657 & ncv , nconv , workl(invsub), |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
658 & ldq , workev , 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
|
659 & ldv , workd(n+1) , ierr) |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
660 call clacpy('All', n, nconv, v, ldv, z, ldz) |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
661 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
|
662 do 20 j=1, nconv |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
663 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
|
664 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
|
665 c | Perform both a column and row scaling if 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
|
666 c | diagonal element of workl(invsub,ldq) is 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
|
667 c | I'm lazy and don't take advantage of the 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
|
668 c | triangular form of workl(iuptri,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
|
669 c | Note that since Q is orthogonal, R is a diagonal | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
670 c | matrix consisting of plus or minus ones. | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
671 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
|
672 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
|
673 if ( real ( workl(invsub+(j-1)*ldq+j-1) ) .lt. |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
674 & real (zero) ) 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
|
675 call cscal(nconv, -one, workl(iuptri+j-1), 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
|
676 call cscal(nconv, -one, workl(iuptri+(j-1)*ldq), 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
|
677 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
|
678 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
|
679 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
|
680 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
|
681 if (howmny .eq. 'A') 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
|
682 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
|
683 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
|
684 c | Compute the NCONV wanted eigenvectors of 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
|
685 c | located in workl(iuptri,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
|
686 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
|
687 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
|
688 do 30 j=1, ncv |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
689 if (j .le. nconv) 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
|
690 select(j) = .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
|
691 else |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
692 select(j) = .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
|
693 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
|
694 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
|
695 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
|
696 call ctrevc('Right', 'Select' , select , |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
697 & ncv , workl(iuptri), 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
|
698 & vl , 1 , workl(invsub), |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
699 & ldq , ncv , outncv , |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
700 & workev , rwork , ierr) |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
701 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
|
702 if (ierr .ne. 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
|
703 info = -9 |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
704 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
|
705 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
|
706 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
|
707 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
|
708 c | Scale the returning eigenvectors so that their | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
709 c | Euclidean norms are all one. LAPACK subroutine | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
710 c | ctrevc returns each eigenvector normalized so | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
711 c | that the element of largest magnitude has | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
712 c | magnitude 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
|
713 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
|
714 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
|
715 do 40 j=1, nconv |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
716 rtemp = scnrm2(ncv, workl(invsub+(j-1)*ldq), 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
|
717 rtemp = real (one) / rtemp |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
718 call csscal ( ncv, rtemp, |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
719 & workl(invsub+(j-1)*ldq), 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
|
720 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
|
721 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
|
722 c | Ritz estimates can be obtained by taking | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
723 c | the inner product of the last row 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
|
724 c | Schur basis of H with eigenvectors of 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
|
725 c | Note that the eigenvector matrix of T is | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
726 c | upper triangular, thus the length 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
|
727 c | inner product can be set to 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
|
728 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
|
729 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
|
730 workev(j) = cdotc(j, workl(ihbds), 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
|
731 & workl(invsub+(j-1)*ldq), 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
|
732 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
|
733 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
|
734 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
|
735 call ccopy(nconv, workl(invsub+ncv-1), 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
|
736 & workl(ihbds), 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
|
737 call cvout (logfil, nconv, workl(ihbds), 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
|
738 & '_neupd: Last row of the eigenvector matrix for 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
|
739 if (msglvl .gt. 3) 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
|
740 call cmout(logfil , ncv, ncv , |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
741 & workl(invsub), ldq, 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
|
742 & '_neupd: The eigenvector matrix for 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
|
743 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
|
744 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
|
745 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
|
746 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
|
747 c | Copy Ritz estimates into workl(ihbds) | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
748 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
|
749 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
|
750 call ccopy(nconv, workev, 1, workl(ihbds), 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
|
751 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
|
752 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
|
753 c | The eigenvector matrix Q of T is triangular. | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
754 c | Form Z*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
|
755 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
|
756 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
|
757 call ctrmm('Right' , 'Upper' , 'No transpose', |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
758 & 'Non-unit', n , nconv , |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
759 & one , workl(invsub), 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
|
760 & z , ldz) |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
761 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
|
762 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
|
763 else |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
764 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
|
765 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
|
766 c | An approximate invariant subspace is not needed. | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
767 c | Place the Ritz values computed CNAUPD into D. | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
768 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
|
769 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
|
770 call ccopy(nconv, workl(ritz), 1, d, 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
|
771 call ccopy(nconv, workl(ritz), 1, workl(iheig), 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
|
772 call ccopy(nconv, workl(bounds), 1, workl(ihbds), 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
|
773 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
|
774 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
|
775 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
|
776 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
|
777 c | Transform the Ritz values and possibly 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
|
778 c | and corresponding error bounds of OP to those | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
779 c | of A*x = lambda*B*x. | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
780 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
|
781 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
|
782 if (type .eq. 'REGULR') 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
|
783 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
|
784 if (rvec) |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
785 & call cscal(ncv, rnorm, workl(ihbds), 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
|
786 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
|
787 else |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
788 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
|
789 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
|
790 c | A spectral transformation was 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
|
791 c | * Determine the Ritz estimates 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
|
792 c | Ritz values in the original system. | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
793 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
|
794 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
|
795 if (rvec) |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
796 & call cscal(ncv, rnorm, workl(ihbds), 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
|
797 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
|
798 do 50 k=1, ncv |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
799 temp = workl(iheig+k-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
|
800 workl(ihbds+k-1) = workl(ihbds+k-1) / temp / temp |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
801 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
|
802 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
|
803 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
|
804 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
|
805 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
|
806 c | * Transform the Ritz values back to the original system. | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
807 c | For TYPE = 'SHIFTI' the transformation is | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
808 c | lambda = 1/theta + 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
|
809 c | NOTES: | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
810 c | *The Ritz vectors are not affected by the transformation. | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
811 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
|
812 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
|
813 if (type .eq. 'SHIFTI') 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
|
814 do 60 k=1, nconv |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
815 d(k) = one / workl(iheig+k-1) + 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
|
816 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
|
817 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
|
818 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
|
819 if (type .ne. 'REGULR' .and. 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
|
820 call cvout (logfil, nconv, d, 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
|
821 & '_neupd: Untransformed Ritz values.') |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
822 call cvout (logfil, nconv, workl(ihbds), 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
|
823 & '_neupd: Ritz estimates of the untransformed Ritz values.') |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
824 else 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
|
825 call cvout (logfil, nconv, d, 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
|
826 & '_neupd: Converged Ritz values.') |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
827 call cvout (logfil, nconv, workl(ihbds), 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
|
828 & '_neupd: Associated Ritz estimates.') |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
829 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
|
830 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
|
831 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
|
832 c | Eigenvector Purification step. Formally perform | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
833 c | one of inverse subspace iteration. Only 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
|
834 c | for MODE = 3. See reference 3. | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
835 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
|
836 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
|
837 if (rvec .and. howmny .eq. 'A' .and. type .eq. 'SHIFTI') 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
|
838 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
|
839 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
|
840 c | Purify the computed Ritz vectors by adding 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
|
841 c | little bit of 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
|
842 c | 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
|
843 c | resid(:)*( e s ) / theta | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
844 c | NCV | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
845 c | where H s = s theta. | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
846 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
|
847 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
|
848 do 100 j=1, nconv |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
849 if (workl(iheig+j-1) .ne. zero) 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
|
850 workev(j) = workl(invsub+(j-1)*ldq+ncv-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
|
851 & workl(iheig+j-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
|
852 endif |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
853 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
|
854 |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
855 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
|
856 c | Perform a rank one update to Z 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
|
857 c | purify all the Ritz vectors together. | |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
858 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
|
859 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
|
860 call cgeru (n, nconv, one, resid, 1, workev, 1, z, ldz) |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
861 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
|
862 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
|
863 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
|
864 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
|
865 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
|
866 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
|
867 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
|
868 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
|
869 c | End of cneupd| |
9f5d2ef078e8
import ARPACK sources to libcruft from Debian package libarpack2 2.1+parpack96.dfsg-3+b1
John W. Eaton <jwe@octave.org>
parents:
diff
changeset
|
870 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
|
871 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
|
872 end |