tensor-0.1.0
 All Data Structures Namespaces Functions Variables Typedefs Enumerations Enumerator Groups Pages
arpackf.h
1 // -*- mode: c++; fill-column: 80; c-basic-offset: 2; indent-tabs-mode: nil -*-
2 /*
3  Copyright (c) 2010 Juan Jose Garcia Ripoll
4 
5  Tensor is free software; you can redistribute it and/or modify it
6  under the terms of the GNU Library General Public License as published
7  by the Free Software Foundation; either version 2 of the License, or
8  (at your option) any later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Library General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License along
16  with this program; if not, write to the Free Software Foundation, Inc.,
17  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 */
19 /*
20  ARPACK++ v1.0 8/1/1997
21  c++ interface to ARPACK code.
22 
23  MODULE arpackf.h
24  ARPACK FORTRAN routines.
25 
26  ARPACK Authors
27  Richard Lehoucq
28  Danny Sorensen
29  Chao Yang
30  Dept. of Computational & Applied Mathematics
31  Rice University
32  Houston, Texas
33 */
34 
35 #ifndef ARPACKF_H
36 #define ARPACKF_H
37 
38 #include <tensor/config.h>
39 #include <tensor/tensor_blas.h>
40 
41 using namespace blas;
42 
43 typedef integer logical;
44 
45 #ifdef __cplusplus
46 extern "C"
47 {
48 #endif
49 
50  // debug "common" statement.
51 
52  extern struct {
53  integer logfil, ndigit, mgetv0;
54  integer msaupd, msaup2, msaitr, mseigt, msapps, msgets, mseupd;
55  integer mnaupd, mnaup2, mnaitr, mneigt, mnapps, mngets, mneupd;
56  integer mcaupd, mcaup2, mcaitr, mceigt, mcapps, mcgets, mceupd;
57  } F77_FUNC(debug,DEBUG);
58 
59 
60  // double precision symmetric routines.
61 
62  void F77_FUNC(dsaupd,DSAUPD)
63  (integer *ido, const char *bmat, integer *n, const char *which,
64  integer *nev, double *tol, double *resid,
65  integer *ncv, double *V, integer *ldv,
66  integer *iparam, integer *ipntr, double *workd,
67  double *workl, integer *lworkl, integer *info);
68 
69  void F77_FUNC(dseupd,DSEUPD)
70  (logical *rvec, const char *HowMny, logical *select,
71  double *d, double *Z, integer *ldz,
72  double *sigma, const char *bmat, integer *n,
73  const char *which, integer *nev, double *tol,
74  double *resid, integer *ncv, double *V,
75  integer *ldv, integer *iparam, integer *ipntr,
76  double *workd, double *workl,
77  integer *lworkl, integer *info);
78 
79  // double precision nonsymmetric routines.
80 
81  void F77_FUNC(dnaupd,DNAUPD)
82  (integer *ido, const char *bmat, integer *n, const char *which,
83  integer *nev, double *tol, double *resid,
84  integer *ncv, double *V, integer *ldv,
85  integer *iparam, integer *ipntr, double *workd,
86  double *workl, integer *lworkl, integer *info);
87 
88  void F77_FUNC(dneupd,DNEUPD)
89  (logical *rvec, const char *HowMny, logical *select,
90  double *dr, double *di, double *Z,
91  integer *ldz, double *sigmar,
92  double *sigmai, double *workev,
93  const char *bmat, integer *n, const char *which,
94  integer *nev, double *tol, double *resid,
95  integer *ncv, double *V, integer *ldv,
96  integer *iparam, integer *ipntr,
97  double *workd, double *workl,
98  integer *lworkl, integer *info);
99 
100  // double precision complex routines.
101 
102  void F77_FUNC(znaupd,ZNAUPD)
103  (integer *ido,
104  const char *bmat, integer *n, const char *which, integer *nev,
105  double *tol, cdouble *resid, integer *ncv,
106  cdouble *V, integer *ldv, integer *iparam,
107  integer *ipntr, cdouble *workd,
108  cdouble *workl, integer *lworkl,
109  double *rwork, integer *info);
110 
111  void F77_FUNC(zneupd,ZNEUPD)
112  (logical *rvec, const char *HowMny, logical *select,
113  cdouble *d, cdouble *Z, integer *ldz,
114  cdouble *sigma, cdouble *workev,
115  const char *bmat, integer *n, const char *which, integer *nev,
116  double *tol, cdouble *resid, integer *ncv,
117  cdouble *V, integer *ldv, integer *iparam,
118  integer *ipntr, cdouble *workd,
119  cdouble *workl, integer *lworkl,
120  double *rwork, integer *info);
121 
122 #ifdef __cplusplus
123 }
124 #endif
125 #endif // ARPACKF_H
126