Epetra Package Browser (Single Doxygen Collection) Development
Loading...
Searching...
No Matches
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
271extern "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);
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 SHSEQR_F77
#define DGELS_F77
#define DORGHR_F77
#define DSYEVX_F77
#define DSPGV_F77
#define SPOSVX_F77
#define SSPGV_F77
#define DLARFT_F77
#define SGEEV_F77
#define SSYGV_F77
#define SGECON_F77
#define DPOTRI_F77
#define DGEQRF_F77
#define DPOSV_F77
#define SSYEV_F77
#define SGERFS_F77
#define SGGLSE_F77
#define DGERFS_F77
#define STREVC_F77
#define SPORFS_F77
#define DORGQR_F77
#define DGEEV_F77
#define SGEEVX_F77
#define STRTRS_F77
#define SPOTRS_F77
#define DGEEVX_F77
#define DPOEQU_F77
#define SGGEV_F77
#define DORMHR_F77
#define SGESV_F77
#define SORMHR_F77
#define DSYEV_F77
#define SLAMCH_F77
#define DGEHRD_F77
#define STREXC_F77
#define SGESVX_F77
#define DGELSS_F77
#define SGELSS_F77
#define DGGSVD_F77
#define SGEQRF_F77
#define DGGEV_F77
#define DGESDD_F77
#define DPORFS_F77
#define SGETRF_F77
#define DGESV_F77
#define DSPEV_F77
#define SGEEQU_F77
#define SGELS_F77
#define SPOEQU_F77
#define SGGSVD_F77
#define SPOTRI_F77
#define SSYEVR_F77
#define DTREXC_F77
#define DGETRF_F77
#define SSYGVX_F77
#define DPOTRS_F77
#define DSTEV_F77
#define SSPEV_F77
#define SPOCON_F77
#define SORGHR_F77
#define SLARFT_F77
#define DLAMCH_F77
#define DPOTRF_F77
#define DGGLSE_F77
#define SSYEVX_F77
#define DSYEVR_F77
#define SSYEVD_F77
#define DGETRI_F77
#define DSYEVD_F77
#define SGEHRD_F77
#define DSYGVX_F77
#define SGESVD_F77
#define DHSEQR_F77
#define DGESVD_F77
#define SGESDD_F77
#define DGESVX_F77
#define SGETRS_F77
#define DGEEQU_F77
#define DGEQPF_F77
#define SPOSV_F77
#define PREFIX
#define SGETRI_F77
#define DPOCON_F77
#define DTRTRS_F77
#define DPOSVX_F77
#define SPOTRF_F77
#define Epetra_fcd
#define SORGQR_F77
#define SSTEV_F77
#define DGETRS_F77
#define SGEQPF_F77
#define DSYGV_F77
#define DGECON_F77
#define DTREVC_F77