Epetra Package Browser (Single Doxygen Collection)  Development
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Epetra_LAPACK_wrappers.h
Go to the documentation of this file.
1 /*
2 //@HEADER
3 // ************************************************************************
4 //
5 // Epetra: Linear Algebra Services Package
6 // Copyright 2011 Sandia Corporation
7 //
8 // Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9 // the U.S. Government retains certain rights in this software.
10 //
11 // Redistribution and use in source and binary forms, with or without
12 // modification, are permitted provided that the following conditions are
13 // met:
14 //
15 // 1. Redistributions of source code must retain the above copyright
16 // notice, this list of conditions and the following disclaimer.
17 //
18 // 2. Redistributions in binary form must reproduce the above copyright
19 // notice, this list of conditions and the following disclaimer in the
20 // documentation and/or other materials provided with the distribution.
21 //
22 // 3. Neither the name of the Corporation nor the names of the
23 // contributors may be used to endorse or promote products derived from
24 // this software without specific prior written permission.
25 //
26 // THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27 // EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28 // IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29 // PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30 // CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31 // EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32 // PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33 // PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34 // LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35 // NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36 // SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37 //
38 // Questions? Contact Michael A. Heroux (maherou@sandia.gov)
39 //
40 // ************************************************************************
41 //@HEADER
42 */
43 
44 #ifndef EPETRA_LAPACK_WRAPPERS_H
45 #define EPETRA_LAPACK_WRAPPERS_H
46 
47 #include "Epetra_ConfigDefs.h"
48 #if defined(CRAY_T3X) || defined(INTEL_CXML) || defined(INTEL_MKL)
49 
50 #ifdef CRAY_T3X
51 
52 #include "fortran.h"
53 #define Epetra_fcd fcd
54 #define PREFIX
55 
56 /* CRAY Single precision is used like everyone else's double precision */
57 #define DGECON_F77 SGECON
58 #define DGEEQU_F77 SGEEQU
59 #define DGEEV_F77 SGEEV
60 #define DGEEVX_F77 SGEEVX
61 #define DGEHRD_F77 SGEHRD
62 #define DGELS_F77 SGELS
63 #define DGELSS_F77 SGELSS
64 #define DGEQPF_F77 SGEQPF
65 #define DGERFS_F77 SGERFS
66 #define DGESDD_F77 SGESDD
67 #define DGESVD_F77 SGESVD
68 #define DGESV_F77 SGESV
69 #define DGESVX_F77 SGESVX
70 #define DGETRF_F77 SGETRF
71 #define DGEQRF_F77 SGEQRF
72 #define DGETRI_F77 SGETRI
73 #define DGETRS_F77 SGETRS
74 #define DGGEV_F77 SGGEV
75 #define DGGLSE_F77 SGGLSE
76 #define DGGSVD_F77 SGGSVD
77 #define DHSEQR_F77 SHSEQR
78 #define DLAIC1_F77 SLAIC1
79 #define DLAMCH_F77 SLAMCH
80 #define DLARFT_F77 SLARFT
81 #define DLASWP_F77 SLASWP
82 #define DORGQR_F77 SORGQR
83 #define DORGHR_F77 SORGHR
84 #define DORMHR_F77 SORMHR
85 #define DPOCON_F77 SPOCON
86 #define DPOEQU_F77 SPOEQU
87 #define DPORFS_F77 SPORFS
88 #define DPOSV_F77 SPOSV
89 #define DPOSVX_F77 SPOSVX
90 #define DPOTRF_F77 SPOTRF
91 #define DPOTRI_F77 SPOTRI
92 #define DPOTRS_F77 SPOTRS
93 #define DSPEV_F77 SSPEV
94 #define DSPGV_F77 SSPGV
95 #define DSTEV_F77 SSTEV
96 #define DSYEVD_F77 SSYEVD
97 #define DSYEV_F77 SSYEV
98 #define DSYEVR_F77 SSYEVR
99 #define DSYEVX_F77 SSYEVX
100 #define DSYGV_F77 SSYGV
101 #define DSYGVX_F77 SSYGVX
102 #define DTREVC_F77 STREVC
103 #define DTREXC_F77 STREXC
104 #define DTRTRS_F77 STRTRS
105 /* Done with T3X double precision */
106 #endif
107 
108 #if defined(INTEL_CXML)
109 
110 #define Epetra_fcd const char *, const unsigned int
111 #define PREFIX __stdcall
112 
113 #endif
114 
115 #if defined(INTEL_MKL)
116 
117 #define Epetra_fcd const char *
118 #define PREFIX
119 
120 #endif
121 
122 /* The remainder of this block is for T3X, CXML and MKL */
123 
124 #ifdef F77_BLAS_MANGLE
125 #undef F77_BLAS_MANGLE
126 #endif
127 
128 #define F77_BLAS_MANGLE(lcase,UCASE) UCASE
129 
130 #else
131 /* Not defined(CRAY_T3X) || defined(INTEL_CXML) || defined(INTEL_MKL) */
132 
133 #define Epetra_fcd const char *
134 #define PREFIX
135 
136 /* Use autoconf's definition of F77_BLAS_MANGLE
137  unless using old make system */
138 
139 #ifdef TRILINOS_NO_CONFIG_H
140 
141 #ifdef F77_BLAS_MANGLE
142 #undef F77_BLAS_MANGLE
143 #endif
144 
145 #ifdef TRILINOS_HAVE_NO_FORTRAN_UNDERSCORE
146 #define F77_BLAS_MANGLE(lcase,UCASE) lcase
147 #else /* TRILINOS_HAVE_NO_FORTRAN_UNDERSCORE not defined*/
148 #define F77_BLAS_MANGLE(lcase,UCASE) lcase ## _
149 #endif /* TRILINOS_HAVE_NO_FORTRAN_UNDERSCORE */
150 
151 #endif /* TRILINOS_NO_CONFIG_H */
152 #endif /* defined(CRAY_T3X) || defined(INTEL_CXML) || defined(INTEL_MKL) */
153 
154 #ifndef CRAY_T3X
155 
156 #define DGECON_F77 F77_BLAS_MANGLE(dgecon,DGECON)
157 #define DGEEQU_F77 F77_BLAS_MANGLE(dgeequ,DGEEQU)
158 #define DGEEV_F77 F77_BLAS_MANGLE(dgeev,DGEEV)
159 #define DGEEVX_F77 F77_BLAS_MANGLE(dgeevx,DGEEVX)
160 #define DGEHRD_F77 F77_BLAS_MANGLE(dgehrd,DGEHRD)
161 #define DGELS_F77 F77_BLAS_MANGLE(dgels,DGELS)
162 #define DGELSS_F77 F77_BLAS_MANGLE(dgelss,DGELSS)
163 #define DGEQPF_F77 F77_BLAS_MANGLE(dgeqpf,DGEQPF)
164 #define DGERFS_F77 F77_BLAS_MANGLE(dgerfs,DGERFS)
165 #define DGESDD_F77 F77_BLAS_MANGLE(dgesdd,DGESDD)
166 #define DGESVD_F77 F77_BLAS_MANGLE(dgesvd,DGESVD)
167 #define DGESV_F77 F77_BLAS_MANGLE(dgesv,DGESV)
168 #define DGESVX_F77 F77_BLAS_MANGLE(dgesvx,DGESVX)
169 #define DGETRF_F77 F77_BLAS_MANGLE(dgetrf,DGETRF)
170 #define DGEQRF_F77 F77_BLAS_MANGLE(dgeqrf,DGEQRF)
171 #define DGETRI_F77 F77_BLAS_MANGLE(dgetri,DGETRI)
172 #define DGETRS_F77 F77_BLAS_MANGLE(dgetrs,DGETRS)
173 #define DGGEV_F77 F77_BLAS_MANGLE(dggev,DGGEV)
174 #define DGGLSE_F77 F77_BLAS_MANGLE(dgglse,DGGLSE)
175 
176 #ifdef HAVE_EPETRA_LAPACK_GSSVD3
177 #define DGGSVD_F77 F77_BLAS_MANGLE(dggsvd3,DGGSVD)
178 #else
179 #define DGGSVD_F77 F77_BLAS_MANGLE(dggsvd,DGGSVD)
180 #endif
181 
182 #define DHSEQR_F77 F77_BLAS_MANGLE(dhseqr,DHSEQR)
183 #define DLAIC1_F77 F77_BLAS_MANGLE(dlaic1,DLAIC1)
184 #define DLAMCH_F77 F77_BLAS_MANGLE(dlamch,DLAMCH)
185 #define DLARFT_F77 F77_BLAS_MANGLE(dlarft,DLARFT)
186 #define DLASWP_F77 F77_BLAS_MANGLE(dlaswp,DLASWP)
187 #define DORGQR_F77 F77_BLAS_MANGLE(dorgqr,DORGQR)
188 #define DORGHR_F77 F77_BLAS_MANGLE(dorghr,DORGHR)
189 #define DORMHR_F77 F77_BLAS_MANGLE(dormhr,DORMHR)
190 #define DPOCON_F77 F77_BLAS_MANGLE(dpocon,DPOCON)
191 #define DPOEQU_F77 F77_BLAS_MANGLE(dpoequ,DPOEQU)
192 #define DPORFS_F77 F77_BLAS_MANGLE(dporfs,DPORFS)
193 #define DPOSV_F77 F77_BLAS_MANGLE(dposv,DPOSV)
194 #define DPOSVX_F77 F77_BLAS_MANGLE(dposvx,DPOSVX)
195 #define DPOTRF_F77 F77_BLAS_MANGLE(dpotrf,DPOTRF)
196 #define DPOTRI_F77 F77_BLAS_MANGLE(dpotri,DPOTRI)
197 #define DPOTRS_F77 F77_BLAS_MANGLE(dpotrs,DPOTRS)
198 #define DSPEV_F77 F77_BLAS_MANGLE(dspev,DSPEV)
199 #define DSPGV_F77 F77_BLAS_MANGLE(dspgv,DSPGV)
200 #define DSTEV_F77 F77_BLAS_MANGLE(dstev,DSTEV)
201 #define DSYEVD_F77 F77_BLAS_MANGLE(dsyevd,DSYEVD)
202 #define DSYEV_F77 F77_BLAS_MANGLE(dsyev,DSYEV)
203 #define DSYEVR_F77 F77_BLAS_MANGLE(dsyevr,DSYEVR)
204 #define DSYEVX_F77 F77_BLAS_MANGLE(dsyevx,DSYEVX)
205 #define DSYGV_F77 F77_BLAS_MANGLE(dsygv,DSYGV)
206 #define DSYGVX_F77 F77_BLAS_MANGLE(dsygvx,DSYGVX)
207 #define DTREVC_F77 F77_BLAS_MANGLE(dtrevc,DTREVC)
208 #define DTREXC_F77 F77_BLAS_MANGLE(dtrexc,DTREXC)
209 #define DTRTRS_F77 F77_BLAS_MANGLE(dtrtrs,DTRTRS)
210 
211 /* End of defines for double precision when not on a T3X */
212 
213 #endif
214 
215 /* The following defines are good for all platforms */
216 
217 #define SGECON_F77 F77_BLAS_MANGLE(sgecon,SGECON)
218 #define SGEEQU_F77 F77_BLAS_MANGLE(sgeequ,SGEEQU)
219 #define SGEEV_F77 F77_BLAS_MANGLE(sgeev,SGEEV)
220 #define SGEEVX_F77 F77_BLAS_MANGLE(sgeevx,SGEEVX)
221 #define SGEHRD_F77 F77_BLAS_MANGLE(sgehrd,SGEHRD)
222 #define SGELS_F77 F77_BLAS_MANGLE(sgels,SGELS)
223 #define SGELSS_F77 F77_BLAS_MANGLE(sgelss,SGELSS)
224 #define SGEQPF_F77 F77_BLAS_MANGLE(sgeqpf,SGEQPF)
225 #define SGERFS_F77 F77_BLAS_MANGLE(sgerfs,SGERFS)
226 #define SGESDD_F77 F77_BLAS_MANGLE(sgesdd,SGESDD)
227 #define SGESVD_F77 F77_BLAS_MANGLE(sgesvd,SGESVD)
228 #define SGESV_F77 F77_BLAS_MANGLE(sgesv,SGESV)
229 #define SGESVX_F77 F77_BLAS_MANGLE(sgesvx,SGESVX)
230 #define SGETRF_F77 F77_BLAS_MANGLE(sgetrf,SGETRF)
231 #define SGEQRF_F77 F77_BLAS_MANGLE(sgeqrf,SGEQRF)
232 #define SGETRI_F77 F77_BLAS_MANGLE(sgetri,SGETRI)
233 #define SGETRS_F77 F77_BLAS_MANGLE(sgetrs,SGETRS)
234 #define SGGEV_F77 F77_BLAS_MANGLE(sggev,SGGEV)
235 #define SGGLSE_F77 F77_BLAS_MANGLE(sgglse,SGGLSE)
236 
237 #ifdef HAVE_EPETRA_LAPACK_GSSVD3
238 #define SGGSVD_F77 F77_BLAS_MANGLE(sggsvd3,SGGSVD)
239 #else
240 #define SGGSVD_F77 F77_BLAS_MANGLE(sggsvd,SGGSVD)
241 #endif
242 
243 #define SHSEQR_F77 F77_BLAS_MANGLE(shseqr,SHSEQR)
244 #define SLAMCH_F77 F77_BLAS_MANGLE(slamch,SLAMCH)
245 #define SLARFT_F77 F77_BLAS_MANGLE(slarft,SLARFT)
246 #define SORGQR_F77 F77_BLAS_MANGLE(sorgqr,SORGQR)
247 #define SORGHR_F77 F77_BLAS_MANGLE(sorghr,SORGHR)
248 #define SORMHR_F77 F77_BLAS_MANGLE(sormhr,SORMHR)
249 #define SPOCON_F77 F77_BLAS_MANGLE(spocon,SPOCON)
250 #define SPOEQU_F77 F77_BLAS_MANGLE(spoequ,SPOEQU)
251 #define SPORFS_F77 F77_BLAS_MANGLE(sporfs,SPORFS)
252 #define SPOSV_F77 F77_BLAS_MANGLE(sposv,SPOSV)
253 #define SPOSVX_F77 F77_BLAS_MANGLE(sposvx,SPOSVX)
254 #define SPOTRF_F77 F77_BLAS_MANGLE(spotrf,SPOTRF)
255 #define SPOTRI_F77 F77_BLAS_MANGLE(spotri,SPOTRI)
256 #define SPOTRS_F77 F77_BLAS_MANGLE(spotrs,SPOTRS)
257 #define SSPEV_F77 F77_BLAS_MANGLE(sspev,SSPEV)
258 #define SSPGV_F77 F77_BLAS_MANGLE(sspgv,SSPGV)
259 #define SSTEV_F77 F77_BLAS_MANGLE(sstev,SSTEV)
260 #define SSYEVD_F77 F77_BLAS_MANGLE(ssyevd,SSYEVD)
261 #define SSYEV_F77 F77_BLAS_MANGLE(ssyev,SSYEV)
262 #define SSYEVR_F77 F77_BLAS_MANGLE(ssyevr,SSYEVR)
263 #define SSYEVX_F77 F77_BLAS_MANGLE(ssyevx,SSYEVX)
264 #define SSYGV_F77 F77_BLAS_MANGLE(ssygv,SSYGV)
265 #define SSYGVX_F77 F77_BLAS_MANGLE(ssygvx,SSYGVX)
266 #define STREVC_F77 F77_BLAS_MANGLE(strevc,STREVC)
267 #define STREXC_F77 F77_BLAS_MANGLE(strexc,STREXC)
268 #define STRTRS_F77 F77_BLAS_MANGLE(strtrs,STRTRS)
269 
270 #ifdef __cplusplus
271 extern "C" {
272 #endif
273 
274 
275  void PREFIX DGECON_F77(Epetra_fcd norm, const int* n, const double* a, const int* lda, const double *anorm, double * rcond,
276  double * work, int * iwork, int* info);
277  void PREFIX DGEEQU_F77(const int* m, const int* n, const double* a, const int* lda, double * r, double * c, double * rowcnd,
278  double * colcnd, double * amax, int* info);
279  void PREFIX DGEEV_F77(Epetra_fcd, Epetra_fcd, const int* n, double* a, const int* lda, double* wr, double* wi,
280  double* vl, const int* ldvl,
281  double* vr, const int* ldvr, double* work, const int* lwork, int* info);
282  void PREFIX DGEEVX_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda,
283  double * wr, double * wi, double * vl, const int * ldvl, double * vr, const int * ldvr,
284  int * ilo, int * ihi, double * scale, double * abnrm, double * rconde, double * rcondv,
285  double * work, const int * lwork, int * iwork, int * info);
286  void PREFIX DGEHRD_F77(const int * n, const int * ilo, const int * ihi, double * A, const int * lda, double * tau, double * work,
287  const int * lwork, int * info);
288  void PREFIX DGELS_F77(Epetra_fcd ch, const int* m, const int* n, const int* nrhs, double* a, const int* lda, double* b, const int* ldb,
289  double* work, const int* lwork, int* info);
290  void PREFIX DGELSS_F77(const int * m, const int * n, const int * nrhs, double * a, const int * lda, double * b, const int * ldb,
291  double * s, const double * rcond, int * rank, double * work, const int * lwork, int * info);
292  void PREFIX DGEQPF_F77(const int * m, const int * n, double * a, const int * lda, int * jpvt, double * tau, double * work, int * info);
293  void PREFIX DGERFS_F77(Epetra_fcd, const int * n, const int * nrhs, const double * a, const int * lda, const double * af, const int * ldaf,
294  const int*ipiv, const double * b, const int * ldb, double * x, const int * ldx, double * ferr, double * berr,
295  double * work, int * iwork, int * info);
296 
297  void PREFIX DGESDD_F77(Epetra_fcd, const int * m, const int * n, double * a, const int * lda, double * s, double * u,
298  const int * ldu, double * vt, const int * ldvt, double * work, const int * lwork, int * iwork, int * info);
299 
300  void PREFIX DGESVD_F77(Epetra_fcd, Epetra_fcd, const int* m, const int* n, double* a, const int* lda, double* s, double* u,
301  const int* ldu, double* vt, const int* ldvt, double* work, const int* lwork, int* info);
302  void PREFIX DGESV_F77(const int * n, const int * nrhs, double* a, const int* lda, int*ipiv, double*x , const int* ldx, int* info);
303  void PREFIX DGESVX_F77(Epetra_fcd, Epetra_fcd, const int * n, const int * nrhs, double * a, const int * lda, double * af,
304  const int * ldaf, int*ipiv, Epetra_fcd, double * r, double *c, double * b, const int * ldb,
305  double * x, const int * ldx, double * rcond, double * ferr, double * berr, double *
306  work, int * iwork, int * info);
307  void PREFIX DGETRF_F77(const int* m, const int* n, double* a, const int* lda, int* ipiv, int* info);
308  void PREFIX DGEQRF_F77(const int* m, const int* n, double* a, const int* lda, double* tau, double* work, const int* lwork, int* info);
309  void PREFIX DGETRI_F77(const int* n, double* a, const int* lda, int*ipiv, double * work , const int* lwork, int* info);
310  void PREFIX DGETRS_F77(Epetra_fcd, const int* n, const int* nrhs, const double* a, const int* lda, const int* ipiv, double* x ,
311  const int* ldx, int* info);
312  void PREFIX DGGEV_F77(Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda, double * b, const int * ldb,
313  double * alphar, double * alphai, double * beta, double * vl, const int * ldvl,
314  double * vr, const int * ldvr, double * work, const int * lwork, int * info);
315  void PREFIX DGGLSE_F77(const int * m, const int * n, const int * p, double * a, const int * lda, double * b, const int * ldb,
316  double * c, double * d, double * x, double * work, const int * lwork, int * info);
317  void PREFIX DGGSVD_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * m, const int * n, const int * p, int * k, int * l,
318  double * a, const int * lda, double * b, const int * ldb, double * alpha, double * beta,
319  double * u, const int * ldu, double * v, const int * ldv, double * q, const int * ldq, double * work,
320  #ifdef HAVE_EPETRA_LAPACK_GSSVD3
321  const int * lwork,
322  #endif
323  int * iwork, int * info);
324  void PREFIX DHSEQR_F77(Epetra_fcd job, Epetra_fcd, const int * n, const int * ilo, const int * ihi, double * h, const int * ldh,
325  double * wr, double * wi, double * z, const int * ldz, double * work, const int * lwork, int * info);
326  double PREFIX DLAMCH_F77(Epetra_fcd);
327  void PREFIX DLARFT_F77(Epetra_fcd direct, Epetra_fcd storev, const int * n, const int * k, double * v, const int * ldv, double * tau, double * t, const int * ldt );
328  void PREFIX DORGQR_F77(const int * m, const int * n, const int * k, double * a, const int * lda, const double * tau, double * work,
329  const int * lwork, int * info);
330  void PREFIX DORGHR_F77(const int * n, const int * ilo, const int * ihi, double * a, const int * lda, const double * tau, double * work,
331  const int * lwork, int * info);
332  void PREFIX DORMHR_F77(Epetra_fcd, Epetra_fcd, const int * m, const int * n, const int * ilo, const int * ihi, const double * a,
333  const int * lda, const double * tau, double * c, const int * ldc, double * work, const int * lwork, int * info);
334  void PREFIX DPOCON_F77(Epetra_fcd, const int* n, const double* a, const int* lda, const double * anorm, double * rcond,
335  double * work, int * iwork, int* info);
336  void PREFIX DPOEQU_F77(const int* n, const double* a, const int* lda, double * s, double * scond, double * amax, int* info);
337  void PREFIX DPORFS_F77(Epetra_fcd, const int * n, const int * nrhs, const double * a, const int * lda, const double * af, const int * ldaf,
338  const double * b, const int * ldb, double * x, const int * ldx, double * ferr, double * berr,
339  double * work, int * iwork, int * info);
340  void PREFIX DPOSV_F77(Epetra_fcd, const int * n, const int * nrhs, const double* a, const int* lda, double*x , const int* ldx, int* info);
341  void PREFIX DPOSVX_F77(Epetra_fcd, Epetra_fcd, const int * n, const int * nrhs, double * a, const int * lda, double * af,
342  const int * ldaf, Epetra_fcd, double * s, double * b, const int * ldb, double * x,
343  const int * ldx, double * rcond, double * ferr, double * berr, double * work,
344  int * iwork, int * info);
345  void PREFIX DPOTRF_F77(Epetra_fcd, const int* n, double* a, const int* lda, int* info);
346  void PREFIX DPOTRI_F77(Epetra_fcd, const int* n, double* a, const int* lda, int* info);
347  void PREFIX DPOTRS_F77(Epetra_fcd, const int * n, const int * nrhs, const double* a, const int* lda, double*x ,
348  const int* ldx, int* info);
349  void PREFIX DSPEV_F77( Epetra_fcd, Epetra_fcd,const int * n, double * ap, double * w, double * z,
350  const int * ldz, double * work, int * info);
351  void PREFIX DSPGV_F77(const int * itype, Epetra_fcd, Epetra_fcd, const int * n, double * ap, double * bp,
352  double * w, double * z, const int * ldz, double * work, int * info);
353  void PREFIX DSTEV_F77(Epetra_fcd jobz, const int * n, double * d, double * e, double * z, const int * ldz,
354  double * work, int * info);
355  void PREFIX DSYEVD_F77(Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda, double * w,
356  double * work, const int * lwork, int * iwork, const int * liwork,int * info);
357  void PREFIX DSYEV_F77(Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda, double * w,
358  double * work, const int * lwork, int * info);
359  void PREFIX DSYEVR_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda,
360  const double * vl, const double * vu, const int * il, const int * iu, const
361  double * abstol, int * m,
362  double * w, double * z, const int * ldz, int * isuppz, double * work,
363  const int * lwork, int * iwork, const int * liwork, int * info);
364  void PREFIX DSYEVX_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda,
365  const double * vl, const double * vu, const int * il, const int * iu, const double * abstol, int * m,
366  double * w, double * z, const int * ldz, double * work, const int * lwork, int * iwork,
367  int * ifail, int * info);
368  void PREFIX DSYGV_F77(const int * itype, Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda,
369  double * b, const int * ldb, double * w, double * work, const int * lwork, int * info);
370  void PREFIX DSYGVX_F77(const int * itype, Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, double * a,
371  const int * lda, double * b, const int * ldb, const double * vl, const double * vu, const int * il,
372  const int * iu, const double * abstol, int * m, double * w, double * z, const int * ldz,
373  double * work, const int * lwork, int * iwork, int * ifail, int * info);
374  void PREFIX DTREVC_F77(Epetra_fcd, Epetra_fcd, int * select, const int * n, const double * t, const int * ldt,
375  double *vl, const int * ldvl, double * vr, const int * ldvr, const int * mm, int * m,
376  double * work, int * info);
377  void PREFIX DTREXC_F77(Epetra_fcd, const int * n, double * t, const int * ldt, double * q, const int * ldq,
378  int * ifst, int * ilst, double * work, int * info);
379  void PREFIX DTRTRS_F77(Epetra_fcd uplo, Epetra_fcd trans, Epetra_fcd diag, const int *n, const int *nrhs, const double *a,
380  const int *lda, double *b, const int *ldb, int *info);
381 
382 
383  void PREFIX SGECON_F77(Epetra_fcd norm, const int* n, const float* a, const int* lda, const float *anorm, float * rcond,
384  float * work, int * iwork, int* info);
385  void PREFIX SGEEQU_F77(const int* m, const int* n, const float* a, const int* lda, float * r, float * c, float * rowcnd,
386  float * colcnd, float * amax, int* info);
387  void PREFIX SGEEV_F77(Epetra_fcd, Epetra_fcd, const int* n, float* a, const int* lda, float* wr, float* wi,
388  float* vl, const int* ldvl,
389  float* vr, const int* ldvr, float* work, const int* lwork, int* info);
390  void PREFIX SGEEVX_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda,
391  float * wr, float * wi, float * vl, const int * ldvl, float * vr, const int * ldvr,
392  int * ilo, int * ihi, float * scale, float * abnrm, float * rconde, float * rcondv,
393  float * work, const int * lwork, int * iwork, int * info);
394  void PREFIX SGEHRD_F77(const int * n, const int * ilo, const int * ihi, float * A, const int * lda, float * tau, float * work,
395  const int * lwork, int * info);
396  void PREFIX SGELS_F77(Epetra_fcd ch, const int* m, const int* n, const int* nrhs, float* a, const int* lda, float* b, const int* ldb,
397  float* work, const int* lwork, int* info);
398  void PREFIX SGELSS_F77(const int * m, const int * n, const int * nrhs, float * a, const int * lda, float * b, const int * ldb,
399  float * s, const float * rcond, int * rank, float * work, const int * lwork, int * info);
400  void PREFIX SGEQPF_F77(const int * m, const int * n, float * a, const int * lda, int * jpvt, float * tau, float * work, int * info);
401  void PREFIX SGERFS_F77(Epetra_fcd, const int * n, const int * nrhs, const float * a, const int * lda, const float * af, const int * ldaf,
402  const int*ipiv, const float * b, const int * ldb, float * x, const int * ldx, float * ferr, float * berr,
403  float * work, int * iwork, int * info);
404 
405  void PREFIX SGESDD_F77(Epetra_fcd, const int * m, const int * n, float * a, const int * lda, float * s, float * u,
406  const int * ldu, float * vt, const int * ldvt, float * work, const int * lwork, int * iwork, int * info);
407 
408  void PREFIX SGESVD_F77(Epetra_fcd, Epetra_fcd, const int* m, const int* n, float* a, const int* lda, float* s, float* u,
409  const int* ldu, float* vt, const int* ldvt, float* work, const int* lwork, int* info);
410  void PREFIX SGESV_F77(const int * n, const int * nrhs, float* a, const int* lda, int*ipiv, float*x , const int* ldx, int* info);
411  void PREFIX SGESVX_F77(Epetra_fcd, Epetra_fcd, const int * n, const int * nrhs, float * a, const int * lda, float * af,
412  const int * ldaf, int*ipiv, Epetra_fcd, float * r, float *c, float * b, const int * ldb,
413  float * x, const int * ldx, float * rcond, float * ferr, float * berr, float *
414  work, int * iwork, int * info);
415  void PREFIX SGETRF_F77(const int* m, const int* n, float* a, const int* lda, int* ipiv, int* info);
416  void PREFIX SGEQRF_F77(const int* m, const int* n, float* a, const int* lda, float* tau, float* work, const int* lwork, int* info);
417  void PREFIX SGETRI_F77(const int* n, float* a, const int* lda, int*ipiv, float * work , const int* lwork, int* info);
418  void PREFIX SGETRS_F77(Epetra_fcd, const int* n, const int* nrhs, const float* a, const int* lda, const int* ipiv, float* x ,
419  const int* ldx, int* info);
420  void PREFIX SGGEV_F77(Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda, float * b, const int * ldb,
421  float * alphar, float * alphai, float * beta, float * vl, const int * ldvl,
422  float * vr, const int * ldvr, float * work, const int * lwork, int * info);
423  void PREFIX SGGLSE_F77(const int * m, const int * n, const int * p, float * a, const int * lda, float * b, const int * ldb,
424  float * c, float * d, float * x, float * work, const int * lwork, int * info);
425  void PREFIX SGGSVD_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * m, const int * n, const int * p, int * k, int * l,
426  float * a, const int * lda, float * b, const int * ldb, float * alpha, float * beta,
427  float * u, const int * ldu, float * v, const int * ldv, float * q, const int * ldq, float * work,
428  #ifdef HAVE_EPETRA_LAPACK_GSSVD3
429  const int * lwork,
430  #endif
431  int * iwork, int * info);
432  void PREFIX SHSEQR_F77(Epetra_fcd job, Epetra_fcd, const int * n, const int * ilo, const int * ihi, float * h, const int * ldh,
433  float * wr, float * wi, float * z, const int * ldz, float * work, const int * lwork, int * info);
435  void PREFIX SLARFT_F77(Epetra_fcd direct, Epetra_fcd storev, const int * n, const int * k, float * v, const int * ldv, float * tau, float * t, const int * ldt );
436  void PREFIX SORGQR_F77(const int * m, const int * n, const int * k, float * a, const int * lda, const float * tau, float * work,
437  const int * lwork, int * info);
438  void PREFIX SORGHR_F77(const int * n, const int * ilo, const int * ihi, float * a, const int * lda, const float * tau, float * work,
439  const int * lwork, int * info);
440  void PREFIX SORMHR_F77(Epetra_fcd, Epetra_fcd, const int * m, const int * n, const int * ilo, const int * ihi, const float * a,
441  const int * lda, const float * tau, float * c, const int * ldc, float * work, const int * lwork, int * info);
442  void PREFIX SPOCON_F77(Epetra_fcd, const int* n, const float* a, const int* lda, const float * anorm, float * rcond,
443  float * work, int * iwork, int* info);
444  void PREFIX SPOEQU_F77(const int* n, const float* a, const int* lda, float * s, float * scond, float * amax, int* info);
445  void PREFIX SPORFS_F77(Epetra_fcd, const int * n, const int * nrhs, const float * a, const int * lda, const float * af, const int * ldaf,
446  const float * b, const int * ldb, float * x, const int * ldx, float * ferr, float * berr,
447  float * work, int * iwork, int * info);
448  void PREFIX SPOSV_F77(Epetra_fcd, const int * n, const int * nrhs, const float* a, const int* lda, float*x , const int* ldx, int* info);
449  void PREFIX SPOSVX_F77(Epetra_fcd, Epetra_fcd, const int * n, const int * nrhs, float * a, const int * lda, float * af,
450  const int * ldaf, Epetra_fcd, float * s, float * b, const int * ldb, float * x,
451  const int * ldx, float * rcond, float * ferr, float * berr, float * work,
452  int * iwork, int * info);
453  void PREFIX SPOTRF_F77(Epetra_fcd, const int* n, float* a, const int* lda, int* info);
454  void PREFIX SPOTRI_F77(Epetra_fcd, const int* n, float* a, const int* lda, int* info);
455  void PREFIX SPOTRS_F77(Epetra_fcd, const int * n, const int * nrhs, const float* a, const int* lda, float*x ,
456  const int* ldx, int* info);
457  void PREFIX SSPEV_F77( Epetra_fcd, Epetra_fcd,const int * n, float * ap, float * w, float * z,
458  const int * ldz, float * work, int * info);
459  void PREFIX SSPGV_F77(const int * itype, Epetra_fcd, Epetra_fcd, const int * n, float * ap, float * bp,
460  float * w, float * z, const int * ldz, float * work, int * info);
461  void PREFIX SSTEV_F77(Epetra_fcd jobz, const int * n, float * d, float * e, float * z, const int * ldz,
462  float * work, int * info);
463  void PREFIX SSYEVD_F77(Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda, float * w,
464  float * work, const int * lwork, int * iwork, const int * liwork, int * info);
465  void PREFIX SSYEV_F77(Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda, float * w,
466  float * work, const int * lwork, int * info);
467  void PREFIX SSYEVR_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda,
468  const float * vl, const float * vu, const int * il, const int * iu, const
469  float * abstol, int * m,
470  float * w, float * z, const int * ldz, int * isuppz, float * work,
471  const int * lwork, int * iwork, const int * liwork, int * info);
472  void PREFIX SSYEVX_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda,
473  const float * vl, const float * vu, const int * il, const int * iu, const float * abstol, int * m,
474  float * w, float * z, const int * ldz, float * work, const int * lwork, int * iwork,
475  int * ifail, int * info);
476  void PREFIX SSYGV_F77(const int * itype, Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda,
477  float * b, const int * ldb, float * w, float * work, const int * lwork, int * info);
478  void PREFIX SSYGVX_F77(const int * itype, Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, float * a,
479  const int * lda, float * b, const int * ldb, const float * vl, const float * vu, const int * il,
480  const int * iu, const float * abstol, int * m, float * w, float * z, const int * ldz,
481  float * work, const int * lwork, int * iwork, int * ifail, int * info);
482  void PREFIX STREVC_F77(Epetra_fcd, Epetra_fcd, int * select, const int * n, const float * t, const int * ldt,
483  float *vl, const int * ldvl, float * vr, const int * ldvr, const int * mm, int * m,
484  float * work, int * info);
485  void PREFIX STREXC_F77(Epetra_fcd, const int * n, float * t, const int * ldt, float * q, const int * ldq,
486  int * ifst, int * ilst, float * work, int * info);
487  void PREFIX STRTRS_F77(Epetra_fcd uplo, Epetra_fcd trans, Epetra_fcd diag, const int *n, const int *nrhs, const float *a,
488  const int *lda, float *b, const int *ldb, int *info);
489 
490 
491 #ifdef __cplusplus
492 }
493 #endif
494 
495 #endif /* EPETRA_LAPACK_WRAPPERS_H */
#define DGEHRD_F77
#define DSYGVX_F77
#define DGETRI_F77
#define SSTEV_F77
#define SGETRS_F77
#define SGETRF_F77
#define DGESV_F77
#define SSPEV_F77
#define SHSEQR_F77
#define DORGQR_F77
#define SGESVX_F77
#define DPOTRI_F77
#define DGGEV_F77
#define SLARFT_F77
#define SSYGV_F77
#define DGELS_F77
#define DSPEV_F77
#define SSYEVD_F77
#define SGEHRD_F77
#define SORGQR_F77
#define SGEQPF_F77
#define DPOEQU_F77
#define SLAMCH_F77
#define Epetra_fcd
#define DGETRF_F77
#define DPOSVX_F77
#define SPOTRI_F77
#define SGGEV_F77
#define SPOTRS_F77
#define SGESVD_F77
#define SPOSV_F77
#define DGGSVD_F77
#define DPOSV_F77
#define SGECON_F77
#define PREFIX
#define DLARFT_F77
#define STREVC_F77
#define SORMHR_F77
#define DGEQRF_F77
#define DTREXC_F77
#define STRTRS_F77
#define SSYEVX_F77
#define SPOTRF_F77
#define DGEEV_F77
#define DSYEVD_F77
#define DPOCON_F77
#define SSPGV_F77
#define SGGSVD_F77
#define SSYGVX_F77
#define SGEEVX_F77
#define SORGHR_F77
#define DGEEQU_F77
#define DGESVX_F77
#define SGETRI_F77
#define SPOCON_F77
#define SGGLSE_F77
#define DPOTRS_F77
#define DSYEV_F77
#define SGESDD_F77
#define DGELSS_F77
#define DSYGV_F77
#define SPORFS_F77
#define DGESVD_F77
#define SGEQRF_F77
#define SSYEV_F77
#define DGEQPF_F77
#define DSYEVR_F77
#define SGERFS_F77
#define DSTEV_F77
#define DHSEQR_F77
#define DGESDD_F77
#define SGEEQU_F77
#define SSYEVR_F77
#define DTREVC_F77
#define SGELSS_F77
#define DSPGV_F77
#define DPOTRF_F77
#define SGEEV_F77
#define DGECON_F77
#define DPORFS_F77
#define DGEEVX_F77
#define DSYEVX_F77
#define DORMHR_F77
#define SPOEQU_F77
#define STREXC_F77
#define DORGHR_F77
int n
#define SGELS_F77
#define SPOSVX_F77
#define SGESV_F77
#define DGETRS_F77
#define DGERFS_F77
#define DTRTRS_F77
#define DLAMCH_F77
#define DGGLSE_F77