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 #if defined(Epetra_SHOW_DEPRECATED_WARNINGS)
48 #ifdef __GNUC__
49 #warning "The Epetra package is deprecated"
50 #endif
51 #endif
52 
53 
54 
55 #include "Epetra_ConfigDefs.h"
56 #if defined(CRAY_T3X) || defined(INTEL_CXML) || defined(INTEL_MKL)
57 
58 #ifdef CRAY_T3X
59 
60 #include "fortran.h"
61 #define Epetra_fcd fcd
62 #define PREFIX
63 
64 /* CRAY Single precision is used like everyone else's double precision */
65 #define DGECON_F77 SGECON
66 #define DGEEQU_F77 SGEEQU
67 #define DGEEV_F77 SGEEV
68 #define DGEEVX_F77 SGEEVX
69 #define DGEHRD_F77 SGEHRD
70 #define DGELS_F77 SGELS
71 #define DGELSS_F77 SGELSS
72 #define DGEQPF_F77 SGEQPF
73 #define DGERFS_F77 SGERFS
74 #define DGESDD_F77 SGESDD
75 #define DGESVD_F77 SGESVD
76 #define DGESV_F77 SGESV
77 #define DGESVX_F77 SGESVX
78 #define DGETRF_F77 SGETRF
79 #define DGEQRF_F77 SGEQRF
80 #define DGETRI_F77 SGETRI
81 #define DGETRS_F77 SGETRS
82 #define DGGEV_F77 SGGEV
83 #define DGGLSE_F77 SGGLSE
84 #define DGGSVD_F77 SGGSVD
85 #define DHSEQR_F77 SHSEQR
86 #define DLAIC1_F77 SLAIC1
87 #define DLAMCH_F77 SLAMCH
88 #define DLARFT_F77 SLARFT
89 #define DLASWP_F77 SLASWP
90 #define DORGQR_F77 SORGQR
91 #define DORGHR_F77 SORGHR
92 #define DORMHR_F77 SORMHR
93 #define DPOCON_F77 SPOCON
94 #define DPOEQU_F77 SPOEQU
95 #define DPORFS_F77 SPORFS
96 #define DPOSV_F77 SPOSV
97 #define DPOSVX_F77 SPOSVX
98 #define DPOTRF_F77 SPOTRF
99 #define DPOTRI_F77 SPOTRI
100 #define DPOTRS_F77 SPOTRS
101 #define DSPEV_F77 SSPEV
102 #define DSPGV_F77 SSPGV
103 #define DSTEV_F77 SSTEV
104 #define DSYEVD_F77 SSYEVD
105 #define DSYEV_F77 SSYEV
106 #define DSYEVR_F77 SSYEVR
107 #define DSYEVX_F77 SSYEVX
108 #define DSYGV_F77 SSYGV
109 #define DSYGVX_F77 SSYGVX
110 #define DTREVC_F77 STREVC
111 #define DTREXC_F77 STREXC
112 #define DTRTRS_F77 STRTRS
113 /* Done with T3X double precision */
114 #endif
115 
116 #if defined(INTEL_CXML)
117 
118 #define Epetra_fcd const char *, const unsigned int
119 #define PREFIX __stdcall
120 
121 #endif
122 
123 #if defined(INTEL_MKL)
124 
125 #define Epetra_fcd const char *
126 #define PREFIX
127 
128 #endif
129 
130 /* The remainder of this block is for T3X, CXML and MKL */
131 
132 #ifdef F77_BLAS_MANGLE
133 #undef F77_BLAS_MANGLE
134 #endif
135 
136 #define F77_BLAS_MANGLE(lcase,UCASE) UCASE
137 
138 #else
139 /* Not defined(CRAY_T3X) || defined(INTEL_CXML) || defined(INTEL_MKL) */
140 
141 #define Epetra_fcd const char *
142 #define PREFIX
143 
144 /* Use autoconf's definition of F77_BLAS_MANGLE
145  unless using old make system */
146 
147 #ifdef TRILINOS_NO_CONFIG_H
148 
149 #ifdef F77_BLAS_MANGLE
150 #undef F77_BLAS_MANGLE
151 #endif
152 
153 #ifdef TRILINOS_HAVE_NO_FORTRAN_UNDERSCORE
154 #define F77_BLAS_MANGLE(lcase,UCASE) lcase
155 #else /* TRILINOS_HAVE_NO_FORTRAN_UNDERSCORE not defined*/
156 #define F77_BLAS_MANGLE(lcase,UCASE) lcase ## _
157 #endif /* TRILINOS_HAVE_NO_FORTRAN_UNDERSCORE */
158 
159 #endif /* TRILINOS_NO_CONFIG_H */
160 #endif /* defined(CRAY_T3X) || defined(INTEL_CXML) || defined(INTEL_MKL) */
161 
162 #ifndef CRAY_T3X
163 
164 #define DGECON_F77 F77_BLAS_MANGLE(dgecon,DGECON)
165 #define DGEEQU_F77 F77_BLAS_MANGLE(dgeequ,DGEEQU)
166 #define DGEEV_F77 F77_BLAS_MANGLE(dgeev,DGEEV)
167 #define DGEEVX_F77 F77_BLAS_MANGLE(dgeevx,DGEEVX)
168 #define DGEHRD_F77 F77_BLAS_MANGLE(dgehrd,DGEHRD)
169 #define DGELS_F77 F77_BLAS_MANGLE(dgels,DGELS)
170 #define DGELSS_F77 F77_BLAS_MANGLE(dgelss,DGELSS)
171 #define DGEQPF_F77 F77_BLAS_MANGLE(dgeqpf,DGEQPF)
172 #define DGERFS_F77 F77_BLAS_MANGLE(dgerfs,DGERFS)
173 #define DGESDD_F77 F77_BLAS_MANGLE(dgesdd,DGESDD)
174 #define DGESVD_F77 F77_BLAS_MANGLE(dgesvd,DGESVD)
175 #define DGESV_F77 F77_BLAS_MANGLE(dgesv,DGESV)
176 #define DGESVX_F77 F77_BLAS_MANGLE(dgesvx,DGESVX)
177 #define DGETRF_F77 F77_BLAS_MANGLE(dgetrf,DGETRF)
178 #define DGEQRF_F77 F77_BLAS_MANGLE(dgeqrf,DGEQRF)
179 #define DGETRI_F77 F77_BLAS_MANGLE(dgetri,DGETRI)
180 #define DGETRS_F77 F77_BLAS_MANGLE(dgetrs,DGETRS)
181 #define DGGEV_F77 F77_BLAS_MANGLE(dggev,DGGEV)
182 #define DGGLSE_F77 F77_BLAS_MANGLE(dgglse,DGGLSE)
183 
184 #ifdef HAVE_EPETRA_LAPACK_GSSVD3
185 #define DGGSVD_F77 F77_BLAS_MANGLE(dggsvd3,DGGSVD)
186 #else
187 #define DGGSVD_F77 F77_BLAS_MANGLE(dggsvd,DGGSVD)
188 #endif
189 
190 #define DHSEQR_F77 F77_BLAS_MANGLE(dhseqr,DHSEQR)
191 #define DLAIC1_F77 F77_BLAS_MANGLE(dlaic1,DLAIC1)
192 #define DLAMCH_F77 F77_BLAS_MANGLE(dlamch,DLAMCH)
193 #define DLARFT_F77 F77_BLAS_MANGLE(dlarft,DLARFT)
194 #define DLASWP_F77 F77_BLAS_MANGLE(dlaswp,DLASWP)
195 #define DORGQR_F77 F77_BLAS_MANGLE(dorgqr,DORGQR)
196 #define DORGHR_F77 F77_BLAS_MANGLE(dorghr,DORGHR)
197 #define DORMHR_F77 F77_BLAS_MANGLE(dormhr,DORMHR)
198 #define DPOCON_F77 F77_BLAS_MANGLE(dpocon,DPOCON)
199 #define DPOEQU_F77 F77_BLAS_MANGLE(dpoequ,DPOEQU)
200 #define DPORFS_F77 F77_BLAS_MANGLE(dporfs,DPORFS)
201 #define DPOSV_F77 F77_BLAS_MANGLE(dposv,DPOSV)
202 #define DPOSVX_F77 F77_BLAS_MANGLE(dposvx,DPOSVX)
203 #define DPOTRF_F77 F77_BLAS_MANGLE(dpotrf,DPOTRF)
204 #define DPOTRI_F77 F77_BLAS_MANGLE(dpotri,DPOTRI)
205 #define DPOTRS_F77 F77_BLAS_MANGLE(dpotrs,DPOTRS)
206 #define DSPEV_F77 F77_BLAS_MANGLE(dspev,DSPEV)
207 #define DSPGV_F77 F77_BLAS_MANGLE(dspgv,DSPGV)
208 #define DSTEV_F77 F77_BLAS_MANGLE(dstev,DSTEV)
209 #define DSYEVD_F77 F77_BLAS_MANGLE(dsyevd,DSYEVD)
210 #define DSYEV_F77 F77_BLAS_MANGLE(dsyev,DSYEV)
211 #define DSYEVR_F77 F77_BLAS_MANGLE(dsyevr,DSYEVR)
212 #define DSYEVX_F77 F77_BLAS_MANGLE(dsyevx,DSYEVX)
213 #define DSYGV_F77 F77_BLAS_MANGLE(dsygv,DSYGV)
214 #define DSYGVX_F77 F77_BLAS_MANGLE(dsygvx,DSYGVX)
215 #define DTREVC_F77 F77_BLAS_MANGLE(dtrevc,DTREVC)
216 #define DTREXC_F77 F77_BLAS_MANGLE(dtrexc,DTREXC)
217 #define DTRTRS_F77 F77_BLAS_MANGLE(dtrtrs,DTRTRS)
218 
219 /* End of defines for double precision when not on a T3X */
220 
221 #endif
222 
223 /* The following defines are good for all platforms */
224 
225 #define SGECON_F77 F77_BLAS_MANGLE(sgecon,SGECON)
226 #define SGEEQU_F77 F77_BLAS_MANGLE(sgeequ,SGEEQU)
227 #define SGEEV_F77 F77_BLAS_MANGLE(sgeev,SGEEV)
228 #define SGEEVX_F77 F77_BLAS_MANGLE(sgeevx,SGEEVX)
229 #define SGEHRD_F77 F77_BLAS_MANGLE(sgehrd,SGEHRD)
230 #define SGELS_F77 F77_BLAS_MANGLE(sgels,SGELS)
231 #define SGELSS_F77 F77_BLAS_MANGLE(sgelss,SGELSS)
232 #define SGEQPF_F77 F77_BLAS_MANGLE(sgeqpf,SGEQPF)
233 #define SGERFS_F77 F77_BLAS_MANGLE(sgerfs,SGERFS)
234 #define SGESDD_F77 F77_BLAS_MANGLE(sgesdd,SGESDD)
235 #define SGESVD_F77 F77_BLAS_MANGLE(sgesvd,SGESVD)
236 #define SGESV_F77 F77_BLAS_MANGLE(sgesv,SGESV)
237 #define SGESVX_F77 F77_BLAS_MANGLE(sgesvx,SGESVX)
238 #define SGETRF_F77 F77_BLAS_MANGLE(sgetrf,SGETRF)
239 #define SGEQRF_F77 F77_BLAS_MANGLE(sgeqrf,SGEQRF)
240 #define SGETRI_F77 F77_BLAS_MANGLE(sgetri,SGETRI)
241 #define SGETRS_F77 F77_BLAS_MANGLE(sgetrs,SGETRS)
242 #define SGGEV_F77 F77_BLAS_MANGLE(sggev,SGGEV)
243 #define SGGLSE_F77 F77_BLAS_MANGLE(sgglse,SGGLSE)
244 
245 #ifdef HAVE_EPETRA_LAPACK_GSSVD3
246 #define SGGSVD_F77 F77_BLAS_MANGLE(sggsvd3,SGGSVD)
247 #else
248 #define SGGSVD_F77 F77_BLAS_MANGLE(sggsvd,SGGSVD)
249 #endif
250 
251 #define SHSEQR_F77 F77_BLAS_MANGLE(shseqr,SHSEQR)
252 #define SLAMCH_F77 F77_BLAS_MANGLE(slamch,SLAMCH)
253 #define SLARFT_F77 F77_BLAS_MANGLE(slarft,SLARFT)
254 #define SORGQR_F77 F77_BLAS_MANGLE(sorgqr,SORGQR)
255 #define SORGHR_F77 F77_BLAS_MANGLE(sorghr,SORGHR)
256 #define SORMHR_F77 F77_BLAS_MANGLE(sormhr,SORMHR)
257 #define SPOCON_F77 F77_BLAS_MANGLE(spocon,SPOCON)
258 #define SPOEQU_F77 F77_BLAS_MANGLE(spoequ,SPOEQU)
259 #define SPORFS_F77 F77_BLAS_MANGLE(sporfs,SPORFS)
260 #define SPOSV_F77 F77_BLAS_MANGLE(sposv,SPOSV)
261 #define SPOSVX_F77 F77_BLAS_MANGLE(sposvx,SPOSVX)
262 #define SPOTRF_F77 F77_BLAS_MANGLE(spotrf,SPOTRF)
263 #define SPOTRI_F77 F77_BLAS_MANGLE(spotri,SPOTRI)
264 #define SPOTRS_F77 F77_BLAS_MANGLE(spotrs,SPOTRS)
265 #define SSPEV_F77 F77_BLAS_MANGLE(sspev,SSPEV)
266 #define SSPGV_F77 F77_BLAS_MANGLE(sspgv,SSPGV)
267 #define SSTEV_F77 F77_BLAS_MANGLE(sstev,SSTEV)
268 #define SSYEVD_F77 F77_BLAS_MANGLE(ssyevd,SSYEVD)
269 #define SSYEV_F77 F77_BLAS_MANGLE(ssyev,SSYEV)
270 #define SSYEVR_F77 F77_BLAS_MANGLE(ssyevr,SSYEVR)
271 #define SSYEVX_F77 F77_BLAS_MANGLE(ssyevx,SSYEVX)
272 #define SSYGV_F77 F77_BLAS_MANGLE(ssygv,SSYGV)
273 #define SSYGVX_F77 F77_BLAS_MANGLE(ssygvx,SSYGVX)
274 #define STREVC_F77 F77_BLAS_MANGLE(strevc,STREVC)
275 #define STREXC_F77 F77_BLAS_MANGLE(strexc,STREXC)
276 #define STRTRS_F77 F77_BLAS_MANGLE(strtrs,STRTRS)
277 
278 #ifdef __cplusplus
279 extern "C" {
280 #endif
281 
282 
283  void PREFIX DGECON_F77(Epetra_fcd norm, const int* n, const double* a, const int* lda, const double *anorm, double * rcond,
284  double * work, int * iwork, int* info);
285  void PREFIX DGEEQU_F77(const int* m, const int* n, const double* a, const int* lda, double * r, double * c, double * rowcnd,
286  double * colcnd, double * amax, int* info);
287  void PREFIX DGEEV_F77(Epetra_fcd, Epetra_fcd, const int* n, double* a, const int* lda, double* wr, double* wi,
288  double* vl, const int* ldvl,
289  double* vr, const int* ldvr, double* work, const int* lwork, int* info);
290  void PREFIX DGEEVX_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda,
291  double * wr, double * wi, double * vl, const int * ldvl, double * vr, const int * ldvr,
292  int * ilo, int * ihi, double * scale, double * abnrm, double * rconde, double * rcondv,
293  double * work, const int * lwork, int * iwork, int * info);
294  void PREFIX DGEHRD_F77(const int * n, const int * ilo, const int * ihi, double * A, const int * lda, double * tau, double * work,
295  const int * lwork, int * info);
296  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,
297  double* work, const int* lwork, int* info);
298  void PREFIX DGELSS_F77(const int * m, const int * n, const int * nrhs, double * a, const int * lda, double * b, const int * ldb,
299  double * s, const double * rcond, int * rank, double * work, const int * lwork, int * info);
300  void PREFIX DGEQPF_F77(const int * m, const int * n, double * a, const int * lda, int * jpvt, double * tau, double * work, int * info);
301  void PREFIX DGERFS_F77(Epetra_fcd, const int * n, const int * nrhs, const double * a, const int * lda, const double * af, const int * ldaf,
302  const int*ipiv, const double * b, const int * ldb, double * x, const int * ldx, double * ferr, double * berr,
303  double * work, int * iwork, int * info);
304 
305  void PREFIX DGESDD_F77(Epetra_fcd, const int * m, const int * n, double * a, const int * lda, double * s, double * u,
306  const int * ldu, double * vt, const int * ldvt, double * work, const int * lwork, int * iwork, int * info);
307 
308  void PREFIX DGESVD_F77(Epetra_fcd, Epetra_fcd, const int* m, const int* n, double* a, const int* lda, double* s, double* u,
309  const int* ldu, double* vt, const int* ldvt, double* work, const int* lwork, int* info);
310  void PREFIX DGESV_F77(const int * n, const int * nrhs, double* a, const int* lda, int*ipiv, double*x , const int* ldx, int* info);
311  void PREFIX DGESVX_F77(Epetra_fcd, Epetra_fcd, const int * n, const int * nrhs, double * a, const int * lda, double * af,
312  const int * ldaf, int*ipiv, Epetra_fcd, double * r, double *c, double * b, const int * ldb,
313  double * x, const int * ldx, double * rcond, double * ferr, double * berr, double *
314  work, int * iwork, int * info);
315  void PREFIX DGETRF_F77(const int* m, const int* n, double* a, const int* lda, int* ipiv, int* info);
316  void PREFIX DGEQRF_F77(const int* m, const int* n, double* a, const int* lda, double* tau, double* work, const int* lwork, int* info);
317  void PREFIX DGETRI_F77(const int* n, double* a, const int* lda, int*ipiv, double * work , const int* lwork, int* info);
318  void PREFIX DGETRS_F77(Epetra_fcd, const int* n, const int* nrhs, const double* a, const int* lda, const int* ipiv, double* x ,
319  const int* ldx, int* info);
320  void PREFIX DGGEV_F77(Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda, double * b, const int * ldb,
321  double * alphar, double * alphai, double * beta, double * vl, const int * ldvl,
322  double * vr, const int * ldvr, double * work, const int * lwork, int * info);
323  void PREFIX DGGLSE_F77(const int * m, const int * n, const int * p, double * a, const int * lda, double * b, const int * ldb,
324  double * c, double * d, double * x, double * work, const int * lwork, int * info);
325  void PREFIX DGGSVD_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * m, const int * n, const int * p, int * k, int * l,
326  double * a, const int * lda, double * b, const int * ldb, double * alpha, double * beta,
327  double * u, const int * ldu, double * v, const int * ldv, double * q, const int * ldq, double * work,
328  #ifdef HAVE_EPETRA_LAPACK_GSSVD3
329  const int * lwork,
330  #endif
331  int * iwork, int * info);
332  void PREFIX DHSEQR_F77(Epetra_fcd job, Epetra_fcd, const int * n, const int * ilo, const int * ihi, double * h, const int * ldh,
333  double * wr, double * wi, double * z, const int * ldz, double * work, const int * lwork, int * info);
334  double PREFIX DLAMCH_F77(Epetra_fcd);
335  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 );
336  void PREFIX DORGQR_F77(const int * m, const int * n, const int * k, double * a, const int * lda, const double * tau, double * work,
337  const int * lwork, int * info);
338  void PREFIX DORGHR_F77(const int * n, const int * ilo, const int * ihi, double * a, const int * lda, const double * tau, double * work,
339  const int * lwork, int * info);
340  void PREFIX DORMHR_F77(Epetra_fcd, Epetra_fcd, const int * m, const int * n, const int * ilo, const int * ihi, const double * a,
341  const int * lda, const double * tau, double * c, const int * ldc, double * work, const int * lwork, int * info);
342  void PREFIX DPOCON_F77(Epetra_fcd, const int* n, const double* a, const int* lda, const double * anorm, double * rcond,
343  double * work, int * iwork, int* info);
344  void PREFIX DPOEQU_F77(const int* n, const double* a, const int* lda, double * s, double * scond, double * amax, int* info);
345  void PREFIX DPORFS_F77(Epetra_fcd, const int * n, const int * nrhs, const double * a, const int * lda, const double * af, const int * ldaf,
346  const double * b, const int * ldb, double * x, const int * ldx, double * ferr, double * berr,
347  double * work, int * iwork, int * info);
348  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);
349  void PREFIX DPOSVX_F77(Epetra_fcd, Epetra_fcd, const int * n, const int * nrhs, double * a, const int * lda, double * af,
350  const int * ldaf, Epetra_fcd, double * s, double * b, const int * ldb, double * x,
351  const int * ldx, double * rcond, double * ferr, double * berr, double * work,
352  int * iwork, int * info);
353  void PREFIX DPOTRF_F77(Epetra_fcd, const int* n, double* a, const int* lda, int* info);
354  void PREFIX DPOTRI_F77(Epetra_fcd, const int* n, double* a, const int* lda, int* info);
355  void PREFIX DPOTRS_F77(Epetra_fcd, const int * n, const int * nrhs, const double* a, const int* lda, double*x ,
356  const int* ldx, int* info);
357  void PREFIX DSPEV_F77( Epetra_fcd, Epetra_fcd,const int * n, double * ap, double * w, double * z,
358  const int * ldz, double * work, int * info);
359  void PREFIX DSPGV_F77(const int * itype, Epetra_fcd, Epetra_fcd, const int * n, double * ap, double * bp,
360  double * w, double * z, const int * ldz, double * work, int * info);
361  void PREFIX DSTEV_F77(Epetra_fcd jobz, const int * n, double * d, double * e, double * z, const int * ldz,
362  double * work, int * info);
363  void PREFIX DSYEVD_F77(Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda, double * w,
364  double * work, const int * lwork, int * iwork, const int * liwork,int * info);
365  void PREFIX DSYEV_F77(Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda, double * w,
366  double * work, const int * lwork, int * info);
367  void PREFIX DSYEVR_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda,
368  const double * vl, const double * vu, const int * il, const int * iu, const
369  double * abstol, int * m,
370  double * w, double * z, const int * ldz, int * isuppz, double * work,
371  const int * lwork, int * iwork, const int * liwork, int * info);
372  void PREFIX DSYEVX_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda,
373  const double * vl, const double * vu, const int * il, const int * iu, const double * abstol, int * m,
374  double * w, double * z, const int * ldz, double * work, const int * lwork, int * iwork,
375  int * ifail, int * info);
376  void PREFIX DSYGV_F77(const int * itype, Epetra_fcd, Epetra_fcd, const int * n, double * a, const int * lda,
377  double * b, const int * ldb, double * w, double * work, const int * lwork, int * info);
378  void PREFIX DSYGVX_F77(const int * itype, Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, double * a,
379  const int * lda, double * b, const int * ldb, const double * vl, const double * vu, const int * il,
380  const int * iu, const double * abstol, int * m, double * w, double * z, const int * ldz,
381  double * work, const int * lwork, int * iwork, int * ifail, int * info);
382  void PREFIX DTREVC_F77(Epetra_fcd, Epetra_fcd, int * select, const int * n, const double * t, const int * ldt,
383  double *vl, const int * ldvl, double * vr, const int * ldvr, const int * mm, int * m,
384  double * work, int * info);
385  void PREFIX DTREXC_F77(Epetra_fcd, const int * n, double * t, const int * ldt, double * q, const int * ldq,
386  int * ifst, int * ilst, double * work, int * info);
387  void PREFIX DTRTRS_F77(Epetra_fcd uplo, Epetra_fcd trans, Epetra_fcd diag, const int *n, const int *nrhs, const double *a,
388  const int *lda, double *b, const int *ldb, int *info);
389 
390 
391  void PREFIX SGECON_F77(Epetra_fcd norm, const int* n, const float* a, const int* lda, const float *anorm, float * rcond,
392  float * work, int * iwork, int* info);
393  void PREFIX SGEEQU_F77(const int* m, const int* n, const float* a, const int* lda, float * r, float * c, float * rowcnd,
394  float * colcnd, float * amax, int* info);
395  void PREFIX SGEEV_F77(Epetra_fcd, Epetra_fcd, const int* n, float* a, const int* lda, float* wr, float* wi,
396  float* vl, const int* ldvl,
397  float* vr, const int* ldvr, float* work, const int* lwork, int* info);
398  void PREFIX SGEEVX_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda,
399  float * wr, float * wi, float * vl, const int * ldvl, float * vr, const int * ldvr,
400  int * ilo, int * ihi, float * scale, float * abnrm, float * rconde, float * rcondv,
401  float * work, const int * lwork, int * iwork, int * info);
402  void PREFIX SGEHRD_F77(const int * n, const int * ilo, const int * ihi, float * A, const int * lda, float * tau, float * work,
403  const int * lwork, int * info);
404  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,
405  float* work, const int* lwork, int* info);
406  void PREFIX SGELSS_F77(const int * m, const int * n, const int * nrhs, float * a, const int * lda, float * b, const int * ldb,
407  float * s, const float * rcond, int * rank, float * work, const int * lwork, int * info);
408  void PREFIX SGEQPF_F77(const int * m, const int * n, float * a, const int * lda, int * jpvt, float * tau, float * work, int * info);
409  void PREFIX SGERFS_F77(Epetra_fcd, const int * n, const int * nrhs, const float * a, const int * lda, const float * af, const int * ldaf,
410  const int*ipiv, const float * b, const int * ldb, float * x, const int * ldx, float * ferr, float * berr,
411  float * work, int * iwork, int * info);
412 
413  void PREFIX SGESDD_F77(Epetra_fcd, const int * m, const int * n, float * a, const int * lda, float * s, float * u,
414  const int * ldu, float * vt, const int * ldvt, float * work, const int * lwork, int * iwork, int * info);
415 
416  void PREFIX SGESVD_F77(Epetra_fcd, Epetra_fcd, const int* m, const int* n, float* a, const int* lda, float* s, float* u,
417  const int* ldu, float* vt, const int* ldvt, float* work, const int* lwork, int* info);
418  void PREFIX SGESV_F77(const int * n, const int * nrhs, float* a, const int* lda, int*ipiv, float*x , const int* ldx, int* info);
419  void PREFIX SGESVX_F77(Epetra_fcd, Epetra_fcd, const int * n, const int * nrhs, float * a, const int * lda, float * af,
420  const int * ldaf, int*ipiv, Epetra_fcd, float * r, float *c, float * b, const int * ldb,
421  float * x, const int * ldx, float * rcond, float * ferr, float * berr, float *
422  work, int * iwork, int * info);
423  void PREFIX SGETRF_F77(const int* m, const int* n, float* a, const int* lda, int* ipiv, int* info);
424  void PREFIX SGEQRF_F77(const int* m, const int* n, float* a, const int* lda, float* tau, float* work, const int* lwork, int* info);
425  void PREFIX SGETRI_F77(const int* n, float* a, const int* lda, int*ipiv, float * work , const int* lwork, int* info);
426  void PREFIX SGETRS_F77(Epetra_fcd, const int* n, const int* nrhs, const float* a, const int* lda, const int* ipiv, float* x ,
427  const int* ldx, int* info);
428  void PREFIX SGGEV_F77(Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda, float * b, const int * ldb,
429  float * alphar, float * alphai, float * beta, float * vl, const int * ldvl,
430  float * vr, const int * ldvr, float * work, const int * lwork, int * info);
431  void PREFIX SGGLSE_F77(const int * m, const int * n, const int * p, float * a, const int * lda, float * b, const int * ldb,
432  float * c, float * d, float * x, float * work, const int * lwork, int * info);
433  void PREFIX SGGSVD_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * m, const int * n, const int * p, int * k, int * l,
434  float * a, const int * lda, float * b, const int * ldb, float * alpha, float * beta,
435  float * u, const int * ldu, float * v, const int * ldv, float * q, const int * ldq, float * work,
436  #ifdef HAVE_EPETRA_LAPACK_GSSVD3
437  const int * lwork,
438  #endif
439  int * iwork, int * info);
440  void PREFIX SHSEQR_F77(Epetra_fcd job, Epetra_fcd, const int * n, const int * ilo, const int * ihi, float * h, const int * ldh,
441  float * wr, float * wi, float * z, const int * ldz, float * work, const int * lwork, int * info);
443  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 );
444  void PREFIX SORGQR_F77(const int * m, const int * n, const int * k, float * a, const int * lda, const float * tau, float * work,
445  const int * lwork, int * info);
446  void PREFIX SORGHR_F77(const int * n, const int * ilo, const int * ihi, float * a, const int * lda, const float * tau, float * work,
447  const int * lwork, int * info);
448  void PREFIX SORMHR_F77(Epetra_fcd, Epetra_fcd, const int * m, const int * n, const int * ilo, const int * ihi, const float * a,
449  const int * lda, const float * tau, float * c, const int * ldc, float * work, const int * lwork, int * info);
450  void PREFIX SPOCON_F77(Epetra_fcd, const int* n, const float* a, const int* lda, const float * anorm, float * rcond,
451  float * work, int * iwork, int* info);
452  void PREFIX SPOEQU_F77(const int* n, const float* a, const int* lda, float * s, float * scond, float * amax, int* info);
453  void PREFIX SPORFS_F77(Epetra_fcd, const int * n, const int * nrhs, const float * a, const int * lda, const float * af, const int * ldaf,
454  const float * b, const int * ldb, float * x, const int * ldx, float * ferr, float * berr,
455  float * work, int * iwork, int * info);
456  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);
457  void PREFIX SPOSVX_F77(Epetra_fcd, Epetra_fcd, const int * n, const int * nrhs, float * a, const int * lda, float * af,
458  const int * ldaf, Epetra_fcd, float * s, float * b, const int * ldb, float * x,
459  const int * ldx, float * rcond, float * ferr, float * berr, float * work,
460  int * iwork, int * info);
461  void PREFIX SPOTRF_F77(Epetra_fcd, const int* n, float* a, const int* lda, int* info);
462  void PREFIX SPOTRI_F77(Epetra_fcd, const int* n, float* a, const int* lda, int* info);
463  void PREFIX SPOTRS_F77(Epetra_fcd, const int * n, const int * nrhs, const float* a, const int* lda, float*x ,
464  const int* ldx, int* info);
465  void PREFIX SSPEV_F77( Epetra_fcd, Epetra_fcd,const int * n, float * ap, float * w, float * z,
466  const int * ldz, float * work, int * info);
467  void PREFIX SSPGV_F77(const int * itype, Epetra_fcd, Epetra_fcd, const int * n, float * ap, float * bp,
468  float * w, float * z, const int * ldz, float * work, int * info);
469  void PREFIX SSTEV_F77(Epetra_fcd jobz, const int * n, float * d, float * e, float * z, const int * ldz,
470  float * work, int * info);
471  void PREFIX SSYEVD_F77(Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda, float * w,
472  float * work, const int * lwork, int * iwork, const int * liwork, int * info);
473  void PREFIX SSYEV_F77(Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda, float * w,
474  float * work, const int * lwork, int * info);
475  void PREFIX SSYEVR_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda,
476  const float * vl, const float * vu, const int * il, const int * iu, const
477  float * abstol, int * m,
478  float * w, float * z, const int * ldz, int * isuppz, float * work,
479  const int * lwork, int * iwork, const int * liwork, int * info);
480  void PREFIX SSYEVX_F77(Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda,
481  const float * vl, const float * vu, const int * il, const int * iu, const float * abstol, int * m,
482  float * w, float * z, const int * ldz, float * work, const int * lwork, int * iwork,
483  int * ifail, int * info);
484  void PREFIX SSYGV_F77(const int * itype, Epetra_fcd, Epetra_fcd, const int * n, float * a, const int * lda,
485  float * b, const int * ldb, float * w, float * work, const int * lwork, int * info);
486  void PREFIX SSYGVX_F77(const int * itype, Epetra_fcd, Epetra_fcd, Epetra_fcd, const int * n, float * a,
487  const int * lda, float * b, const int * ldb, const float * vl, const float * vu, const int * il,
488  const int * iu, const float * abstol, int * m, float * w, float * z, const int * ldz,
489  float * work, const int * lwork, int * iwork, int * ifail, int * info);
490  void PREFIX STREVC_F77(Epetra_fcd, Epetra_fcd, int * select, const int * n, const float * t, const int * ldt,
491  float *vl, const int * ldvl, float * vr, const int * ldvr, const int * mm, int * m,
492  float * work, int * info);
493  void PREFIX STREXC_F77(Epetra_fcd, const int * n, float * t, const int * ldt, float * q, const int * ldq,
494  int * ifst, int * ilst, float * work, int * info);
495  void PREFIX STRTRS_F77(Epetra_fcd uplo, Epetra_fcd trans, Epetra_fcd diag, const int *n, const int *nrhs, const float *a,
496  const int *lda, float *b, const int *ldb, int *info);
497 
498 
499 #ifdef __cplusplus
500 }
501 #endif
502 
503 #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