1This is the ARPACK++ include directory.
2
31) Files included in this directory:
4
5   a) Files that contain ARPACK++ classes definitions:
6
7      i) Base classes:
8
9      file              class
10      ----------        ----------------
11      arrseig.h         ARrcStdEig
12      arrgeig.h         ARrcGenEig
13      arseig.h          ARStdEig
14      argeig.h          ARGenEig
15      armat.h           ARMatrix
16
17
18      ii) Classes that require matrix-vector product functions:
19
20      file              class
21      ----------        ----------------
22      arssym.h          ARSymStdEig
23      arsnsym.h         ARNonSymStdEig
24      arscomp.h         ARCompStdEig
25      argsym.h          ARSymGenEig
26      argnsym.h         ARNonSymGenEig
27      argcomp.g         ARCompGenEig
28
29
30      iii) Classes that require matrices in CSC format (SuperLU version):
31
32      file              class
33      ----------        ----------------
34      arlssym.h         ARluSymStdEig
35      arlsnsym.h        ARluNonSymStdEig
36      arlscomp.h        ARluCompStdEig
37      arlgsym.h         ARluSymGenEig
38      arlgnsym.h        ARluNonSymGenEig
39      arlgcomp.h        ARluCompGenEig
40
41
42      iv) Classes that require matrices in CSC format (UMFPACK version):
43
44      file              class
45      ----------        ----------------
46      arussym.h         ARluSymStdEig
47      arusnsym.h        ARluNonSymStdEig
48      aruscomp.h        ARluCompStdEig
49      arugsym.h         ARluSymGenEig
50      arugnsym.h        ARluNonSymGenEig
51      arugcomp.h        ARluCompGenEig
52
53
54      v) Classes that require matrices in band format:
55
56      file              class
57      ----------        ----------------
58      arbssym.h         ARluSymStdEig
59      arbsnsym.h        ARluNonSymStdEig
60      arbscomp.h        ARluCompStdEig
61      arbgsym.h         ARluSymGenEig
62      arbgnsym.h        ARluNonSymGenEig
63      arbgcomp.h        ARluCompGenEig
64
65
66      vi) Reverse communication classes:
67
68      file              class
69      ----------        ----------------
70      arrssym.h         ARrcSymStdEig
71      arrsnsym.h        ARrcNonSymStdEig
72      arrscomp.h        ARrcCompStdEig
73      arrgsym.h         ARrcSymGenEig
74      arrgnsym.h        ARrcNonSymGenEig
75      arrgcomp.h        ARrcCompGenEig
76
77
78      vii) Matrix classes:
79
80      file              class
81      ----------        ----------------
82      arlsmat.h         ARluSymMatrix
83      arlspen.h         ARluSymPencil
84      arlnsmat.h        ARluNonSymMatrix
85      arlnspen.h        ARluNonSymPencil
86      arusmat.h         ARumSymMatrix
87      aruspen.h         ARumSymPencil
88      arunsmat.h        ARumNonSymMatrix
89      arunspen.h        ARumNonSymPencil
90      arbsmat.h         ARbdSymMatrix
91      arbspen.h         ARbdSymPencil
92      arbnsmat.h        ARbdNonSymMatrix
93      arbnspen.h        ARbdNonSymPencil
94      arhbmat.h         ARhbMatrix
95
96
97   b) Package interface files:
98
99      i) ARPACK FORTRAN interface:
100
101      file              Contents
102      ----------        -----------------------------------------------
103      saupp.h           Interface with dsaupd and ssaupd subroutines.
104      seupp.h           Interface with dseupd and sseupd subroutines.
105      naupp.h           Interface with dnaupd and snaupd subroutines.
106      neupp.h           Interface with dneupd and sneupd subroutines.
107      caupp.h           Interface with znaupd and cnaupd subroutines.
108      ceupp.h           Interface with zneupd and cneupd subroutines.
109      debug.h           Interface with ARPACK debugging variables.
110      arpackf.h         Fortran to C function prototypes convertion.
111
112
113      ii) LAPACK and BLAS1 interface:
114
115      file              Contents
116      ----------        -----------------------------------------------
117      lapackc.h         Various LAPACK function declarations.
118      lapackf.h         Fortran to C function prototypes convertion.
119      blas1c.h          Various BLAS1 function declarations.
120      blas1f.h          Fortran to C function prototypes convertion.
121
122
123      iii) SuperLU interface:
124
125      file              Contents
126      ----------        -----------------------------------------------
127      superluc.h        Various SuperLU function declarations.
128      arlspdef.h        Altered version of ssp_defs.h, dsp_defs.h,
129                        csp_defs.h and zsp_defs.h header files.
130      arlsupm.h         Unaltered copy of supermatrix.h header file.
131      arlnames.h        Unaltered copy of Cnames.h header file.
132      arlutil.h         Unaltered copy of util.h, superlu_enum_consts.h.
133      arlcomp.h         Unaltered copy of dcomplex.h and scomplex.h.
134
135
136      iv) UMFPACK interface:
137
138      file              Contents
139      ----------        -----------------------------------------------
140      umfpackc.h        Various UMFPACK function declarations.
141      umfpackf.h        Fortran to C function prototypes convertion.
142
143
144   c) Other auxiliary files:
145
146      file              Contents
147      ----------        -----------------------------------------------
148      arch.h            Machine dependent functions and variable types.
149      arcomp.h          "arcomplex" complex type definition.
150      arerror.h         "ArpackError" class definition.
151
152
153
1542) Compiler-dependent instructions.
155
156   Some compiler-dependent functions and data types used by arpack++ are
157   grouped in the file arch.h. This file should be changed to reflect the
158   characteristics of your system. Another file, arcomp.h, contains the
159   definition of a class template called arcomplex, created to emulate
160   the g++ complex class when another compiler is being used. This file
161   must also be changed if g++ (or CC) is not being used.
162
163   a) Changing ARPACK++ parameters and definitions included in arch.h:
164
165   All ARPACK++ parameters that are not intended to be changed frequently
166   were included in the arch.h file. Are defined in this file
167
168     i) Some machine and problem-dependent umfpack parameters.
169
170        If the umfpack is to be used, the user can modify some of its
171        parameters to correctly reflect the environment and the class
172        of problems being solved. The constants included in arch.h
173        correspond to a subset of the parameters generated by the um21i
174        umfpack function. Other relevant parameters can also be passed
175        to the ARumNonSymMatrix class constructor.
176
177    ii) Some fortran to c conversion functions.
178
179        Because fortran and c++ functions tend to have different
180        representations in different platforms, a function that
181        converts a fortran function name to the c++ format is
182        defined in arch.h. This function can be altered by the user
183        if the environment being used was not included in arch.h.
184
185   iii) Some fortran to c type conversion rules.
186
187        arch.h also includes the definition of some rules required
188        to convert INTEGER and LOGICAL FORTRAN types to c++.
189
190    iv) The c++ bool type.
191
192        If the c++ compiler being used does not include a bool type,
193        this type can also be defined in arch.h.
194
195
196   b) Redefining arcomplex class in arcomp.h:
197
198   ARPACK++ uses a self-defined complex class called arcomplex.
199   Actually, arcomplex is a class template used to represent
200   both single and double precision complex numbers. It was created
201   in an effort to permit ARPACK++ to deal with different compilers,
202   since c++ does not define a unique complex type.
203   arcomplex is intended to emulate the gnu g++ complex class when
204   other compilers are being used (when g++ is used, ARPACK++ simply
205   declares arcomplex to be the standard complex type). arcomp.h
206   includes a complex class definition for the CC compiler only. At
207   the present time, no other compiler was used to generate ARPACK++
208   programs, so further work must be done to permit the use of the
209   library with other compilers.
210   To define a new complex type, the user must create a class
211   template (called arcomplex) that contains at least three members:
212
213     i) A default constructor;
214    ii) A copy constructor; and
215   iii) A constructor that takes two real numbers as parameters (one
216        is the real and other the imaginary part of the complex number).
217
218   Naturally, all usual mathematical operations on complex numbers,
219   such as addition, multiplication, multiplication by a real number,
220   etc, should also be defined. But because most compilers include a
221   complex data type, the simplest way of defining arcomplex is to use
222   only the three constructors mentioned above to establish a relation
223   between the actual complex class and the gnu g++ standard.
224
225
2265) ARPACK (fortran) authors:
227
228   Danny Sorensen   (sorensen@caam.rice.edu)
229   Richard Lehoucq  (lehoucq@mcs.anl.gov)
230   Chao Yang        (chao@caam.rice.edu)
231   Kristi Maschhoff (kristyn@caam.rice.edu)
232
233