Teuchos Package Browser (Single Doxygen Collection)  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Teuchos_LAPACK_wrappers.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Teuchos: Common Tools Package
4 //
5 // Copyright 2004 NTESS and the Teuchos contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 // @HEADER
9 
10 #ifndef _TEUCHOS_LAPACK_WRAPPERS_HPP_
11 #define _TEUCHOS_LAPACK_WRAPPERS_HPP_
12 
13 #include "Teuchos_ConfigDefs.hpp"
14 
20 /* A) Define PREFIX and Teuchos_fcd based on platform. */
21 
22 #if defined(INTEL_CXML)
23 # define PREFIX __stdcall
24 # define Teuchos_fcd const char *, unsigned int
25 #elif defined(INTEL_MKL)
26 # define PREFIX
27 # define Teuchos_fcd const char *
28 #else
29 # define PREFIX
30 # define Teuchos_fcd const char *
31 #endif
32 
33 // in progress - added for EQUED which is a modified char *, not const
34 #if defined(INTEL_CXML)
35 # define PREFIX __stdcall
36 # define Teuchos_nonconst_fcd char *, unsigned int // Need to evaluate unsigned int - CXML deprecated
37 #elif defined(INTEL_MKL)
38 # define PREFIX
39 # define Teuchos_nonconst_fcd char *
40 #else
41 # define PREFIX
42 # define Teuchos_nonconst_fcd char *
43 #endif
44 
45 
46 /* B) Take care of of the link name case */
47 
48 #define DGEQRF_F77 F77_BLAS_MANGLE(dgeqrf,DGEQRF)
49 #define DGEQR2_F77 F77_BLAS_MANGLE(dgeqr2,DGEQR2)
50 #define DGETRF_F77 F77_BLAS_MANGLE(dgetrf,DGETRF)
51 #define DGETRS_F77 F77_BLAS_MANGLE(dgetrs,DGETRS)
52 #define DLASCL_F77 F77_BLAS_MANGLE(dlascl,DLASCL)
53 #define DLASWP_F77 F77_BLAS_MANGLE(dlaswp,DLASWP)
54 #define DGBTRF_F77 F77_BLAS_MANGLE(dgbtrf,DGBTRF)
55 #define DGBTRS_F77 F77_BLAS_MANGLE(dgbtrs,DGBTRS)
56 #define DGTTRF_F77 F77_BLAS_MANGLE(dgttrf,DGTTRF)
57 #define DGTTRS_F77 F77_BLAS_MANGLE(dgttrs,DGTTRS)
58 #define DPTTRF_F77 F77_BLAS_MANGLE(dpttrf,DPTTRF)
59 #define DPTTRS_F77 F77_BLAS_MANGLE(dpttrs,DPTTRS)
60 #define DGETRI_F77 F77_BLAS_MANGLE(dgetri,DGETRI)
61 #define DGERFS_F77 F77_BLAS_MANGLE(dgerfs,DGERFS)
62 #define DGBRFS_F77 F77_BLAS_MANGLE(dgbrfs,DGBRFS)
63 #define DLATRS_F77 F77_BLAS_MANGLE(dlatrs,DLATRS)
64 #define DGECON_F77 F77_BLAS_MANGLE(dgecon,DGECON)
65 #define DGBCON_F77 F77_BLAS_MANGLE(dgbcon,DGBCON)
66 #define DLANGB_F77 F77_BLAS_MANGLE(dlangb,DLANGB)
67 #define DGESVX_F77 F77_BLAS_MANGLE(dgesvx,DGESVX)
68 #define DGESV_F77 F77_BLAS_MANGLE(dgesv,DGESV)
69 #define DGEEQU_F77 F77_BLAS_MANGLE(dgeequ,DGEEQU)
70 #define DGBEQU_F77 F77_BLAS_MANGLE(dgbequ,DGBEQU)
71 #define DSYTRD_F77 F77_BLAS_MANGLE(dsytrd,DSYTRD)
72 #define DPOTRF_F77 F77_BLAS_MANGLE(dpotrf,DPOTRF)
73 #define DPOTRS_F77 F77_BLAS_MANGLE(dpotrs,DPOTRS)
74 #define DPOTRI_F77 F77_BLAS_MANGLE(dpotri,DPOTRI)
75 #define DPOCON_F77 F77_BLAS_MANGLE(dpocon,DPOCON)
76 #define DPOSV_F77 F77_BLAS_MANGLE(dposv,DPOSV)
77 #define DPOEQU_F77 F77_BLAS_MANGLE(dpoequ,DPOEQU)
78 #define DPORFS_F77 F77_BLAS_MANGLE(dporfs,DPORFS)
79 #define DPOSVX_F77 F77_BLAS_MANGLE(dposvx,DPOSVX)
80 #define DTRTRS_F77 F77_BLAS_MANGLE(dtrtrs,DTRTRS)
81 #define DTRTRI_F77 F77_BLAS_MANGLE(dtrtri,DTRTRI)
82 #define DLAMCH_F77 F77_BLAS_MANGLE(dlamch,DLAMCH)
83 #define DGELS_F77 F77_BLAS_MANGLE(dgels,DGELS)
84 #define DGELSS_F77 F77_BLAS_MANGLE(dgelss,DGELSS)
85 #define DGGLSE_F77 F77_BLAS_MANGLE(dgglse,DGGLSE)
86 #define DGEEV_F77 F77_BLAS_MANGLE(dgeev,DGEEV)
87 #define DGESVD_F77 F77_BLAS_MANGLE(dgesvd,DGESVD)
88 #define DGGEV_F77 F77_BLAS_MANGLE(dggev,DGGEV)
89 #define DGGES_F77 F77_BLAS_MANGLE(dgges,DGGES)
90 #define DTRSEN_F77 F77_BLAS_MANGLE(dtrsen,DTRSEN)
91 #define DTGSEN_F77 F77_BLAS_MANGLE(dtgsen,DTGSEN)
92 #define DGEEVX_F77 F77_BLAS_MANGLE(dgeevx,DGEEVX)
93 #define DGGEVX_F77 F77_BLAS_MANGLE(dggevx,DGGEVX)
94 #define DGEHRD_F77 F77_BLAS_MANGLE(dgehrd,DGEHRD)
95 #define DHSEQR_F77 F77_BLAS_MANGLE(dhseqr,DHSEQR)
96 #define DORGHR_F77 F77_BLAS_MANGLE(dorghr,DORGHR)
97 #define DORGQR_F77 F77_BLAS_MANGLE(dorgqr,DORGQR)
98 #define DORMHR_F77 F77_BLAS_MANGLE(dormhr,DORMHR)
99 #define DORMQR_F77 F77_BLAS_MANGLE(dormqr,DORMQR)
100 #define DORM2R_F77 F77_BLAS_MANGLE(dorm2r,DORM2R)
101 #define DTREVC_F77 F77_BLAS_MANGLE(dtrevc,DTREVC)
102 #define DTREXC_F77 F77_BLAS_MANGLE(dtrexc,DTREXC)
103 #define DTGEVC_F77 F77_BLAS_MANGLE(dtgevc,DTGEVC)
104 #define DGEES_F77 F77_BLAS_MANGLE(dgees,DGEES)
105 #define DSPEV_F77 F77_BLAS_MANGLE(dspev,DSPEV)
106 #define DSYEV_F77 F77_BLAS_MANGLE(dsyev,DSYEV)
107 #define DSYGV_F77 F77_BLAS_MANGLE(dsygv,DSYGV)
108 #define DSTEQR_F77 F77_BLAS_MANGLE(dsteqr,DSTEQR)
109 #define DPTEQR_F77 F77_BLAS_MANGLE(dpteqr,DPTEQR)
110 #define DLAPY2_F77 F77_BLAS_MANGLE(dlapy2,DLAPY2)
111 #define DLARND_F77 F77_BLAS_MANGLE(dlarnd,DLARND)
112 #define DLARNV_F77 F77_BLAS_MANGLE(dlarnv,DLARNV)
113 #define DGEBAL_F77 F77_BLAS_MANGLE(dgebal,DGEBAL)
114 #define DGEBAK_F77 F77_BLAS_MANGLE(dgebak,DGEBAK)
115 #define DLARTG_F77 F77_BLAS_MANGLE(dlartg,DLARTG)
116 #define DLARFG_F77 F77_BLAS_MANGLE(dlarfg,DLARFG)
117 #define ILAENV_F77 F77_BLAS_MANGLE(ilaenv,ILAENV)
118 #define DGEQP3_F77 F77_BLAS_MANGLE(dgeqp3,DGEQP3)
119 
120 #ifdef HAVE_TEUCHOS_COMPLEX
121 
122 #define ZGEQRF_F77 F77_BLAS_MANGLE(zgeqrf,ZGEQRF)
123 #define ZGEQR2_F77 F77_BLAS_MANGLE(zgeqr2,ZGEQR2)
124 #define ZUNGQR_F77 F77_BLAS_MANGLE(zungqr,ZUNGQR)
125 #define ZUNMQR_F77 F77_BLAS_MANGLE(zunmqr,ZUNMQR)
126 #define ZUNM2R_F77 F77_BLAS_MANGLE(zunm2r,ZUNM2R)
127 #define ZGETRF_F77 F77_BLAS_MANGLE(zgetrf,ZGETRF)
128 #define ZGETRS_F77 F77_BLAS_MANGLE(zgetrs,ZGETRS)
129 #define ZLASCL_F77 F77_BLAS_MANGLE(zlascl,ZLASCL)
130 #define ZLASWP_F77 F77_BLAS_MANGLE(zlaswp,ZLASWP)
131 #define ZGBTRF_F77 F77_BLAS_MANGLE(zgbtrf,ZGBTRF)
132 #define ZGBTRS_F77 F77_BLAS_MANGLE(zgbtrs,ZGBTRS)
133 #define ZGTTRF_F77 F77_BLAS_MANGLE(zgttrf,ZGTTRF)
134 #define ZGTTRS_F77 F77_BLAS_MANGLE(zgttrs,ZGTTRS)
135 #define ZPTTRF_F77 F77_BLAS_MANGLE(zpttrf,ZPTTRF)
136 #define ZPTTRS_F77 F77_BLAS_MANGLE(zpttrs,ZPTTRS)
137 #define ZGETRI_F77 F77_BLAS_MANGLE(zgetri,ZGETRI)
138 #define ZGERFS_F77 F77_BLAS_MANGLE(zgerfs,ZGERFS)
139 #define ZGBRFS_F77 F77_BLAS_MANGLE(zgbrfs,ZGBRFS)
140 #define ZLATRS_F77 F77_BLAS_MANGLE(zlatrs,ZLATRS)
141 #define ZGECON_F77 F77_BLAS_MANGLE(zgecon,ZGECON)
142 #define ZGBCON_F77 F77_BLAS_MANGLE(zgbcon,ZGBCON)
143 #define ZLANGB_F77 F77_BLAS_MANGLE(zlangb,ZLANGB)
144 #define ZGESVX_F77 F77_BLAS_MANGLE(zgesvx,ZGESVX)
145 #define ZGESV_F77 F77_BLAS_MANGLE(zgesv,ZGESV)
146 #define ZGEEQU_F77 F77_BLAS_MANGLE(zgeequ,ZGEEQU)
147 #define ZGBEQU_F77 F77_BLAS_MANGLE(zgbequ,ZGBEQU)
148 #define ZPOTRF_F77 F77_BLAS_MANGLE(zpotrf,ZPOTRF)
149 #define ZPOTRS_F77 F77_BLAS_MANGLE(zpotrs,ZPOTRS)
150 #define ZPOTRI_F77 F77_BLAS_MANGLE(zpotri,ZPOTRI)
151 #define ZPOCON_F77 F77_BLAS_MANGLE(zpocon,ZPOCON)
152 #define ZPOSV_F77 F77_BLAS_MANGLE(zposv,ZPOSV)
153 #define ZPOEQU_F77 F77_BLAS_MANGLE(zpoequ,ZPOEQU)
154 #define ZPORFS_F77 F77_BLAS_MANGLE(zporfs,ZPORFS)
155 #define ZPOSVX_F77 F77_BLAS_MANGLE(zposvx,ZPOSVX)
156 #define ZTRTRS_F77 F77_BLAS_MANGLE(ztrtrs,ZTRTRS)
157 #define ZTRTRI_F77 F77_BLAS_MANGLE(ztrtri,ZTRTRI)
158 #define ZGELS_F77 F77_BLAS_MANGLE(zgels,ZGELS)
159 #define ZGELSS_F77 F77_BLAS_MANGLE(zgelss,ZGELSS)
160 //#define ZGGLSE_F77 F77_BLAS_MANGLE(zgglse,ZGGLSE)
161 #define ZGEEV_F77 F77_BLAS_MANGLE(zgeev,ZGEEV)
162 #define ZGESVD_F77 F77_BLAS_MANGLE(zgesvd,ZGESVD)
163 #define ZGGEV_F77 F77_BLAS_MANGLE(zggev,ZGGEV)
164 #define ZGGES_F77 F77_BLAS_MANGLE(zgges,ZGGES)
165 #define ZTGSEN_F77 F77_BLAS_MANGLE(ztgsen,ZTGSEN)
166 #define ZGGES_F77 F77_BLAS_MANGLE(zgges,ZGGES)
167 #define ZTRSEN_F77 F77_BLAS_MANGLE(ztrsen,ZTRSEN)
168 #define ZGEEVX_F77 F77_BLAS_MANGLE(zgeevx,ZGEEVX)
169 #define ZGGEVX_F77 F77_BLAS_MANGLE(zggevx,ZGGEVX)
170 #define ZGEHRD_F77 F77_BLAS_MANGLE(zgehrd,ZGEHRD)
171 #define ZHSEQR_F77 F77_BLAS_MANGLE(zhseqr,ZHSEQR)
172 #define ZTREVC_F77 F77_BLAS_MANGLE(ztrevc,ZTREVC)
173 #define ZTREXC_F77 F77_BLAS_MANGLE(ztrexc,ZTREXC)
174 #define ZGEES_F77 F77_BLAS_MANGLE(zgees,ZGEES)
175 #define ZSTEQR_F77 F77_BLAS_MANGLE(zsteqr,ZSTEQR)
176 #define ZPTEQR_F77 F77_BLAS_MANGLE(zpteqr,ZPTEQR)
177 #define ZHEEV_F77 F77_BLAS_MANGLE(zheev,ZHEEV)
178 #define ZHEGV_F77 F77_BLAS_MANGLE(zhegv,ZHEGV)
179 #define ZLARTG_F77 F77_BLAS_MANGLE(zlartg,ZLARTG)
180 #define ZLARFG_F77 F77_BLAS_MANGLE(zlarfg,ZLARFG)
181 #define ZGEBAL_F77 F77_BLAS_MANGLE(zgebal,ZGEBAL)
182 #define ZGEBAK_F77 F77_BLAS_MANGLE(zgebak,ZGEBAK)
183 #define ZLARND_F77 F77_BLAS_MANGLE(zlarnd,ZLARND)
184 #define ZLARNV_F77 F77_BLAS_MANGLE(zlarnv,ZLARNV)
185 #define ZGEQP3_F77 F77_BLAS_MANGLE(zgeqp3,ZGEQP3)
186 #define TEUCHOS_LAPACK_CONVERT_COMPLEX_FORTRAN_TO_CXX(TYPE, Z) \
187  reinterpret_cast<std::complex<TYPE>&>(Z);
188 // NOTE: The above is guaranteed to be okay given the C99 and C++11 standards
189 
190 #endif /* HAVE_TEUCHOS_COMPLEX */
191 
192 #define SGEQRF_F77 F77_BLAS_MANGLE(sgeqrf,SGEQRF)
193 #define SGEQR2_F77 F77_BLAS_MANGLE(sgeqr2,SGEQR2)
194 #define SGETRF_F77 F77_BLAS_MANGLE(sgetrf,SGETRF)
195 #define SGETRS_F77 F77_BLAS_MANGLE(sgetrs,SGETRS)
196 #define SLASCL_F77 F77_BLAS_MANGLE(slascl,SLASCL)
197 #define SLASWP_F77 F77_BLAS_MANGLE(slaswp,SLASWP)
198 #define SGBTRF_F77 F77_BLAS_MANGLE(sgbtrf,SGBTRF)
199 #define SGBTRS_F77 F77_BLAS_MANGLE(sgbtrs,SGBTRS)
200 #define SGTTRF_F77 F77_BLAS_MANGLE(sgttrf,SGTTRF)
201 #define SGTTRS_F77 F77_BLAS_MANGLE(sgttrs,SGTTRS)
202 #define SPTTRF_F77 F77_BLAS_MANGLE(spttrf,SPTTRF)
203 #define SPTTRS_F77 F77_BLAS_MANGLE(spttrs,SPTTRS)
204 #define SGETRI_F77 F77_BLAS_MANGLE(sgetri,SGETRI)
205 #define SGERFS_F77 F77_BLAS_MANGLE(sgerfs,SGERFS)
206 #define SGBRFS_F77 F77_BLAS_MANGLE(sgbrfs,SGBRFS)
207 #define SLATRS_F77 F77_BLAS_MANGLE(slatrs,SLATRS)
208 #define SGECON_F77 F77_BLAS_MANGLE(sgecon,SGECON)
209 #define SGBCON_F77 F77_BLAS_MANGLE(sgbcon,SGBCON)
210 #define SLANGB_F77 F77_BLAS_MANGLE(slangb,SLANGB)
211 #define SGESVX_F77 F77_BLAS_MANGLE(sgesvx,SGESVX)
212 #define SGESV_F77 F77_BLAS_MANGLE(sgesv,SGESV)
213 #define SGEEQU_F77 F77_BLAS_MANGLE(sgeequ,SGEEQU)
214 #define SGBEQU_F77 F77_BLAS_MANGLE(sgbequ,SGBEQU)
215 #define SSYTRD_F77 F77_BLAS_MANGLE(ssytrd,SSYTRD)
216 #define SPOTRF_F77 F77_BLAS_MANGLE(spotrf,SPOTRF)
217 #define SPOTRS_F77 F77_BLAS_MANGLE(spotrs,SPOTRS)
218 #define SPOTRI_F77 F77_BLAS_MANGLE(spotri,SPOTRI)
219 #define SPOCON_F77 F77_BLAS_MANGLE(spocon,SPOCON)
220 #define SPOSV_F77 F77_BLAS_MANGLE(sposv,SPOSV)
221 #define SPOEQU_F77 F77_BLAS_MANGLE(spoequ,SPOEQU)
222 #define SPORFS_F77 F77_BLAS_MANGLE(sporfs,SPORFS)
223 #define SPOSVX_F77 F77_BLAS_MANGLE(sposvx,SPOSVX)
224 #define STRTRS_F77 F77_BLAS_MANGLE(strtrs,STRTRS)
225 #define STRTRI_F77 F77_BLAS_MANGLE(strtri,STRTRI)
226 #define SGELS_F77 F77_BLAS_MANGLE(sgels,SGELS)
227 #define SGELSS_F77 F77_BLAS_MANGLE(sgelss,SGELSS)
228 #define SGGLSE_F77 F77_BLAS_MANGLE(sgglse,SGGLSE)
229 #define SGEEV_F77 F77_BLAS_MANGLE(sgeev,SGEEV)
230 #define SGESVD_F77 F77_BLAS_MANGLE(sgesvd,SGESVD)
231 #define SGGEV_F77 F77_BLAS_MANGLE(sggev,SGGEV)
232 #define SGGES_F77 F77_BLAS_MANGLE(sgges,SGGES)
233 #define STRSEN_F77 F77_BLAS_MANGLE(strsen,STRSEN)
234 #define STGSEN_F77 F77_BLAS_MANGLE(stgsen,STGSEN)
235 #define SGEEVX_F77 F77_BLAS_MANGLE(sgeevx,SGEEVX)
236 #define SGGEVX_F77 F77_BLAS_MANGLE(sggevx,SGGEVX)
237 #define SGEHRD_F77 F77_BLAS_MANGLE(sgehrd,SGEHRD)
238 #define SHSEQR_F77 F77_BLAS_MANGLE(shseqr,SHSEQR)
239 #define SORGHR_F77 F77_BLAS_MANGLE(sorghr,SORGHR)
240 #define SORGQR_F77 F77_BLAS_MANGLE(sorgqr,SORGQR)
241 #define SORMHR_F77 F77_BLAS_MANGLE(sormhr,SORMHR)
242 #define SORMQR_F77 F77_BLAS_MANGLE(sormqr,SORMQR)
243 #define SORM2R_F77 F77_BLAS_MANGLE(sorm2r,SORM2R)
244 #define STREVC_F77 F77_BLAS_MANGLE(strevc,STREVC)
245 #define STREXC_F77 F77_BLAS_MANGLE(strexc,STREXC)
246 #define STGEVC_F77 F77_BLAS_MANGLE(stgevc,STGEVC)
247 #define SLAMCH_F77 F77_BLAS_MANGLE(slamch,SLAMCH)
248 #define SGEES_F77 F77_BLAS_MANGLE(sgees,SGEES)
249 #define SSPEV_F77 F77_BLAS_MANGLE(sspev,SSPEV)
250 #define SSYEV_F77 F77_BLAS_MANGLE(ssyev,SSYEV)
251 #define SSYGV_F77 F77_BLAS_MANGLE(ssygv,SSYGV)
252 #define SSTEQR_F77 F77_BLAS_MANGLE(ssteqr,SSTEQR)
253 #define SPTEQR_F77 F77_BLAS_MANGLE(spteqr,SPTEQR)
254 #ifdef HAVE_TEUCHOS_BLASFLOAT
255  #define SLAPY2_F77 F77_BLAS_MANGLE(slapy2,SLAPY2)
256 #endif
257 #define SLARTG_F77 F77_BLAS_MANGLE(slartg,SLARTG)
258 #define SLARFG_F77 F77_BLAS_MANGLE(slarfg,SLARFG)
259 #define SGEBAL_F77 F77_BLAS_MANGLE(sgebal,SGEBAL)
260 #define SGEBAK_F77 F77_BLAS_MANGLE(sgebak,SGEBAK)
261 #define SLARND_F77 F77_BLAS_MANGLE(slarnd,SLARND)
262 #define SLARNV_F77 F77_BLAS_MANGLE(slarnv,SLARNV)
263 #define SGEQP3_F77 F77_BLAS_MANGLE(sgeqp3,SGEQP3)
264 
265 #ifdef HAVE_TEUCHOS_COMPLEX
266 
267 #define CGEQRF_F77 F77_BLAS_MANGLE(cgeqrf,CGEQRF)
268 #define CGEQR2_F77 F77_BLAS_MANGLE(cgeqr2,CGEQR2)
269 #define CUNGQR_F77 F77_BLAS_MANGLE(cungqr,CUNGQR)
270 #define CUNMQR_F77 F77_BLAS_MANGLE(cunmqr,CUNMQR)
271 #define CUNM2R_F77 F77_BLAS_MANGLE(cunm2r,CUNM2R)
272 #define CGETRF_F77 F77_BLAS_MANGLE(cgetrf,CGETRF)
273 #define CGETRS_F77 F77_BLAS_MANGLE(cgetrs,CGETRS)
274 #define CLASCL_F77 F77_BLAS_MANGLE(clascl,CLASCL)
275 #define CLASWP_F77 F77_BLAS_MANGLE(claswp,CLASWP)
276 #define CGBTRF_F77 F77_BLAS_MANGLE(cgbtrf,CGBTRF)
277 #define CGBTRS_F77 F77_BLAS_MANGLE(cgbtrs,CGBTRS)
278 #define CGTTRF_F77 F77_BLAS_MANGLE(cgttrf,CGTTRF)
279 #define CGTTRS_F77 F77_BLAS_MANGLE(cgttrs,CGTTRS)
280 #define CPTTRF_F77 F77_BLAS_MANGLE(cpttrf,CPTTRF)
281 #define CPTTRS_F77 F77_BLAS_MANGLE(cpttrs,CPTTRS)
282 #define CGETRI_F77 F77_BLAS_MANGLE(cgetri,CGETRI)
283 #define CGERFS_F77 F77_BLAS_MANGLE(cgerfs,CGERFS)
284 #define CGBRFS_F77 F77_BLAS_MANGLE(cgbrfs,CGBRFS)
285 #define CLATRS_F77 F77_BLAS_MANGLE(clatrs,CLATRS)
286 #define CGECON_F77 F77_BLAS_MANGLE(cgecon,CGECON)
287 #define CGBCON_F77 F77_BLAS_MANGLE(cgbcon,CGBCON)
288 #define CLANGB_F77 F77_BLAS_MANGLE(clangb,CLANGB)
289 #define CGESVX_F77 F77_BLAS_MANGLE(cgesvx,CGESVX)
290 #define CGESV_F77 F77_BLAS_MANGLE(cgesv,CGESV)
291 #define CGEEQU_F77 F77_BLAS_MANGLE(cgeequ,CGEEQU)
292 #define CGBEQU_F77 F77_BLAS_MANGLE(cgbequ,CGBEQU)
293 #define CPOTRF_F77 F77_BLAS_MANGLE(cpotrf,CPOTRF)
294 #define CPOTRS_F77 F77_BLAS_MANGLE(cpotrs,CPOTRS)
295 #define CPOTRI_F77 F77_BLAS_MANGLE(cpotri,CPOTRI)
296 #define CPOCON_F77 F77_BLAS_MANGLE(cpocon,CPOCON)
297 #define CPOSV_F77 F77_BLAS_MANGLE(cposv,CPOSV)
298 #define CPOEQU_F77 F77_BLAS_MANGLE(cpoequ,CPOEQU)
299 #define CPORFS_F77 F77_BLAS_MANGLE(cporfs,CPORFS)
300 #define CPOSVX_F77 F77_BLAS_MANGLE(cposvx,CPOSVX)
301 #define CTRTRS_F77 F77_BLAS_MANGLE(ctrtrs,CTRTRS)
302 #define CTRTRI_F77 F77_BLAS_MANGLE(ctrtri,CTRTRI)
303 #define CGELS_F77 F77_BLAS_MANGLE(cgels,CGELS)
304 #define CGELSS_F77 F77_BLAS_MANGLE(cgelss,CGELSS)
305 //#define CGGLSE_F77 F77_BLAS_MANGLE(cgglse,CGGLSE)
306 #define CGEEV_F77 F77_BLAS_MANGLE(cgeev,CGEEV)
307 #define CGESVD_F77 F77_BLAS_MANGLE(cgesvd,CGESVD)
308 #define CGGEV_F77 F77_BLAS_MANGLE(cggev,CGGEV)
309 #define CGGES_F77 F77_BLAS_MANGLE(cgges,CGGES)
310 #define CTGSEN_F77 F77_BLAS_MANGLE(ctgsen,CTGSEN)
311 #define CGEEVX_F77 F77_BLAS_MANGLE(cgeevx,CGEEVX)
312 #define CGGEVX_F77 F77_BLAS_MANGLE(cggevx,CGGEVX)
313 #define CGEHRD_F77 F77_BLAS_MANGLE(cgehrd,CGEHRD)
314 #define CHSEQR_F77 F77_BLAS_MANGLE(chseqr,CHSEQR)
315 #define CTREVC_F77 F77_BLAS_MANGLE(ctrevc,CTREVC)
316 #define CTREXC_F77 F77_BLAS_MANGLE(ctrexc,CTREXC)
317 #define CGEES_F77 F77_BLAS_MANGLE(cgees,CGEES)
318 #define CSTEQR_F77 F77_BLAS_MANGLE(csteqr,CSTEQR)
319 #define CPTEQR_F77 F77_BLAS_MANGLE(cpteqr,CPTEQR)
320 #define CHEEV_F77 F77_BLAS_MANGLE(cheev,CHEEV)
321 #define CHEGV_F77 F77_BLAS_MANGLE(chegv,CHEGV)
322 #define CLARTG_F77 F77_BLAS_MANGLE(clartg,CLARTG)
323 #define CLARFG_F77 F77_BLAS_MANGLE(clarfg,CLARFG)
324 #define CGEBAL_F77 F77_BLAS_MANGLE(cgebal,CGEBAL)
325 #define CGEBAK_F77 F77_BLAS_MANGLE(cgebak,CGEBAK)
326 #define CLARND_F77 F77_BLAS_MANGLE(clarnd,CLARND)
327 #define CLARNV_F77 F77_BLAS_MANGLE(clarnv,CLARNV)
328 #define CGEQP3_F77 F77_BLAS_MANGLE(cgeqp3,CGEQP3)
329 
330 #endif /* HAVE_TEUCHOS_COMPLEX */
331 
332 
333 /* C) Define the function prototypes for all platforms! */
334 
335 #ifdef __cplusplus
336 extern "C" {
337 #endif
338 
339 // Double precision LAPACK linear solvers
340 
341 void PREFIX DGELS_F77(Teuchos_fcd ch, const int* m, const int* n, const int* nrhs, double* a, const int* lda, double* b, const int* ldb, double* work, const int* lwork, int* info);
342 void PREFIX DGELSS_F77(const int* m, const int* n, const int* nrhs, double* a, const int* lda, double* b, const int* ldb, double* s, const double* rcond, int* rank, double* work, const int* lwork, int* info);
343 void PREFIX DGGLSE_F77(const int* m, const int* n, const int* p, double* a, const int* lda, double* b, const int* ldb, double* c, double* d, double* x, double* work, const int* lwork, int* info);
344 void PREFIX DGEQRF_F77(const int* m, const int* n, double* a, const int* lda, double* tau, double* work, const int* lwork, int* info);
345 void PREFIX DGEQR2_F77(const int* const m, const int* const n, double* a, const int* const lda, double* tau, double* work, int* const info);
346 void PREFIX DGETRF_F77(const int* m, const int* n, double* a, const int* lda, int* ipiv, int* info);
347 void PREFIX DGETRS_F77(Teuchos_fcd, const int* n, const int* nrhs, const double* a, const int* lda,const int* ipiv, double* x , const int* ldx, int* info);
348 void PREFIX DLASCL_F77(Teuchos_fcd, const int* kl, const int* ku, const double* cfrom, const double* cto, const int* m, const int* n, double* a, const int* lda, int* info);
349 void PREFIX DLASWP_F77(const int* N, double* A, const int* LDA, const int* K1, const int* K2, const int* IPIV, const int* INCX);
350 void PREFIX DGBTRF_F77(const int* m, const int* n, const int* kl, const int* ku, double* a, const int* lda, int* ipiv, int* info);
351 void PREFIX DGBTRS_F77(Teuchos_fcd, const int* n, const int* kl, const int* ku, const int* nrhs, const double* a, const int* lda, const int* ipiv, double* x, const int* ldx, int* info);
352 void PREFIX DGTTRF_F77(const int* n, double* dl, double* d, double* du, double* du2, int* ipiv, int* info);
353 void PREFIX DGTTRS_F77(Teuchos_fcd, const int* n, const int* nrhs, const double* dl, const double* d, const double* du, const double* du2, const int* ipiv, double* x , const int* ldx, int* info);
354 void PREFIX DPTTRF_F77(const int* n, double* d, double* e, int* info);
355 void PREFIX DPTTRS_F77(const int* n, const int* nrhs, const double* d, const double* e, double* x , const int* ldx, int* info);
356 void PREFIX DGETRI_F77(const int* n, double* a, const int* lda, const int* ipiv, double* work , const int* lwork, int* info);
357 void PREFIX DLATRS_F77(Teuchos_fcd UPLO, Teuchos_fcd TRANS, Teuchos_fcd DIAG, Teuchos_fcd NORMIN, const int* N, const double* A, const int* LDA, double* X, double* SCALE, double* CNORM, int* INFO);
358 void PREFIX DGECON_F77(Teuchos_fcd norm, const int* n, const double* a, const int* lda, const double* anorm, double* rcond, double* work, int* iwork, int* info);
359 void PREFIX DGBCON_F77(Teuchos_fcd norm, const int* n, const int* kl, const int* ku, const double* a, const int* lda, const int* IPIV, const double* anorm, double* rcond, double* work, int* iwork, int* info);
360 double PREFIX DLANGB_F77(Teuchos_fcd norm, const int* n, const int* kl, const int* ku, const double* a, const int* lda, double* work);
361 void PREFIX DGESV_F77(const int* n, const int* nrhs, double* a, const int* lda, int* ipiv, double* x , const int* ldx, int* info);
362 void PREFIX DGEEQU_F77(const int* m, const int* n, const double* a, const int* lda, double* r, double* c, double* rowcnd, double* colcnd, double* amax, int* info);
363 void PREFIX DGBEQU_F77(const int* m, const int* n, const int* kl, const int* ku, const double* a, const int* lda, double* r, double* c, double* rowcnd, double* colcnd, double* amax, int* info);
364 void PREFIX DGERFS_F77(Teuchos_fcd, const int* n, const int* nrhs, const double* a, const int* lda, const double* af, const int* ldaf, const int* ipiv, const double* b, const int* ldb, double* x, const int* ldx, double* ferr, double* berr, double* work, int* iwork, int* info);
365 void PREFIX DGBRFS_F77(Teuchos_fcd, const int* n, const int* kl, const int* ku, const int* nrhs, const double* a, const int* lda, const double* af, const int* ldaf, const int* ipiv, const double* b, const int* ldb, double* x, const int* ldx, double* ferr, double* berr, double* work, int* iwork, int* info);
366 void PREFIX DGESVX_F77(Teuchos_fcd, Teuchos_fcd, const int* n, const int* nrhs, double* a, const int* lda, double* af, const int* ldaf, int* ipiv, Teuchos_nonconst_fcd, double* r,
367 double* c, double* b, const int* ldb, double* x, const int* ldx, double* rcond, double* ferr, double* berr, double* work, int* iwork, int* info);
368 void PREFIX DSYTRD_F77(Teuchos_fcd, const int* n, double* a, const int* lda, double* D, double* E, double* tau, double* work, const int* lwork, int* info);
369 void PREFIX DPOTRF_F77(Teuchos_fcd, const int* n, double* a, const int* lda, int* info);
370 void PREFIX DPOTRS_F77(Teuchos_fcd, const int* n, const int* nrhs, const double* a, const int* lda, double*x , const int* ldx, int* info);
371 void PREFIX DPOTRI_F77(Teuchos_fcd, const int* n, double* a, const int* lda, int* info);
372 void PREFIX DPOCON_F77(Teuchos_fcd, const int* n, const double* a, const int* lda, const double* anorm, double* rcond, double* work, int* iwork, int* info);
373 void PREFIX DPOSV_F77(Teuchos_fcd, const int* n, const int* nrhs, double* a, const int* lda, double*x , const int* ldx, int* info);
374 void PREFIX DPOEQU_F77(const int* n, const double* a, const int* lda, double* s, double* scond, double* amax, int* info);
375 void PREFIX DPORFS_F77(Teuchos_fcd, const int* n, const int* nrhs, const double* a, const int* lda, const double* af, const int* ldaf, const double* b, const int* ldb, double* x, const int* ldx, double* ferr, double* berr, double* work, int* iwork, int* info);
376 void PREFIX DPOSVX_F77(Teuchos_fcd, Teuchos_fcd, const int* n, const int* nrhs, double* a, const int* lda, double* af, const int* ldaf, Teuchos_nonconst_fcd, double* s, double* b, const int* ldb, double* x, const int* ldx, double* rcond, double* ferr, double* berr, double* work, int* iwork, int* info);
377 void PREFIX DTRTRS_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, const int* n, const int* nrhs, const double* a, const int* lda, double* b, const int* ldb, int* info);
378 void PREFIX DTRTRI_F77(Teuchos_fcd, Teuchos_fcd, const int* n, double* a, const int* lda, int* info);
379 void PREFIX DGEQP3_F77( const int *M, const int *N, double *A, const int *LDA, int *JPVT, double *TAU, double *WORK, const int *LWORK, int *INFO );
380 
381 // Single precision LAPACK linear solvers
382 
383 void PREFIX SGELS_F77(Teuchos_fcd ch, const int* m, const int* n, const int* nrhs, float* a, const int* lda, float* b, const int* ldb, float* work, const int* lwork, int* info);
384 void PREFIX SGELSS_F77(const int* m, const int* n, const int* nrhs, float* a, const int* lda, float* b, const int* ldb, float* s, const float* rcond, int* rank, float* work, const int* lwork, int* info);
385 void PREFIX SGGLSE_F77(const int* m, const int* n, const int* p, float* a, const int* lda, float* b, const int* ldb, float* c, float* d, float* x, float* work, const int* lwork, int* info);
386 void PREFIX SGEQRF_F77(const int* m, const int* n, float* a, const int* lda, float* tau, float* work, const int* lwork, int* info);
387 void PREFIX SGEQR2_F77(const int* const m, const int* const n, float* a, const int* const lda, float* tau, float* work, int* const info);
388 void PREFIX SGETRF_F77(const int* m, const int* n, float* a, const int* lda, int* ipiv, int* info);
389 void PREFIX SGETRS_F77(Teuchos_fcd, const int* n, const int* nrhs, const float* a, const int* lda, const int* ipiv, float* x , const int* ldx, int* info);
390 void PREFIX SLASCL_F77(Teuchos_fcd, const int* kl, const int* ku, const float* cfrom, const float* cto, const int* m, const int* n, float* a, const int* lda, int* info);
391 void PREFIX SLASWP_F77(const int* N, float* A, const int* LDA, const int* K1, const int* K2, const int* IPIV, const int* INCX);
392 void PREFIX SGBTRF_F77(const int* m, const int* n, const int* kl, const int* ku, float* a, const int* lda, int* ipiv, int* info);
393 void PREFIX SGBTRS_F77(Teuchos_fcd, const int* n, const int* kl, const int* ku, const int* nrhs, const float* a, const int* lda, const int* ipiv, float* x, const int* ldx, int* info);
394 void PREFIX SGTTRF_F77(const int* n, float* dl, float* d, float* du, float* du2, int* ipiv, int* info);
395 void PREFIX SGTTRS_F77(Teuchos_fcd, const int* n, const int* nrhs, const float* dl, const float* d, const float* du, const float* du2, const int* ipiv, float* x , const int* ldx, int* info);
396 void PREFIX SPTTRF_F77(const int* n, float* d, float* e, int* info);
397 void PREFIX SPTTRS_F77(const int* n, const int* nrhs, const float* d, const float* e, float* x , const int* ldx, int* info);
398 void PREFIX SGETRI_F77(const int* n, float* a, const int* lda, const int* ipiv, float* work , const int* lwork, int* info);
399 void PREFIX SLATRS_F77(Teuchos_fcd UPLO, Teuchos_fcd TRANS, Teuchos_fcd DIAG, Teuchos_fcd NORMIN, const int* N, const float* A, const int* LDA, float* X, float* SCALE, float* CNORM, int* INFO);
400 void PREFIX SGECON_F77(Teuchos_fcd norm, const int* n, const float* a, const int* lda, const float* anorm, float* rcond, float* work, int* iwork, int* info);
401 void PREFIX SGBCON_F77(Teuchos_fcd norm, const int* n, const int* kl, const int* ku, const float* a, const int* lda, const int* IPIV, const float* anorm, float* rcond, float* work, int* iwork, int* info);
402 float PREFIX SLANGB_F77(Teuchos_fcd norm, const int* n, const int* kl, const int* ku, const float* a, const int* lda, float* work);
403 void PREFIX SGESV_F77(const int* n, const int* nrhs, float* a, const int* lda, int* ipiv, float* x , const int* ldx, int* info);
404 void PREFIX SGEEQU_F77(const int* m, const int* n, const float* a, const int* lda, float* r, float* c, float* rowcnd, float* colcnd, float* amax, int* info);
405 void PREFIX SGBEQU_F77(const int* m, const int* n, const int* kl, const int* ku, const float* a, const int* lda, float* r, float* c, float* rowcnd, float* colcnd, float* amax, int* info);
406 void PREFIX SGERFS_F77(Teuchos_fcd, const int* n, const int* nrhs, const float* a, const int* lda, const float* af, const int* ldaf, const int* ipiv, const float* b, const int* ldb, float* x, const int* ldx, float* ferr, float* berr, float* work, int* iwork, int* info);
407 void PREFIX SGBRFS_F77(Teuchos_fcd, const int* n, const int* kl, const int* ku, const int* nrhs, const float* a, const int* lda, const float* af, const int* ldaf, const int* ipiv, const float* b, const int* ldb, float* x, const int* ldx, float* ferr, float* berr, float* work, int* iwork, int* info);
408 void PREFIX SGESVX_F77(Teuchos_fcd, Teuchos_fcd, const int* n, const int* nrhs, float* a, const int* lda, float* af, const int* ldaf, int* ipiv, Teuchos_nonconst_fcd, float* r,
409 float* c, float* b, const int* ldb, float* x, const int* ldx, float* rcond, float* ferr, float* berr, float* work, int* iwork, int* info);
410 void PREFIX SSYTRD_F77(Teuchos_fcd, const int* n, float* a, const int* lda, float* D, float* E, float* tau, float* work, const int* lwork, int* info);
411 void PREFIX SPOTRF_F77(Teuchos_fcd, const int* n, float* a, const int* lda, int* info);
412 void PREFIX SPOTRS_F77(Teuchos_fcd, const int* n, const int* nrhs, const float* a, const int* lda, float*x , const int* ldx, int* info);
413 void PREFIX SPOTRI_F77(Teuchos_fcd, const int* n, float* a, const int* lda, int* info);
414 void PREFIX SPOCON_F77(Teuchos_fcd, const int* n, const float* a, const int* lda, const float* anorm, float* rcond, float* work, int* iwork, int* info);
415 void PREFIX SPOSV_F77(Teuchos_fcd, const int* n, const int* nrhs, float* a, const int* lda, float*x , const int* ldx, int* info);
416 void PREFIX SPOEQU_F77(const int* n, const float* a, const int* lda, float* s, float* scond, float* amax, int* info);
417 void PREFIX SPORFS_F77(Teuchos_fcd, const int* n, const int* nrhs, const float* a, const int* lda, const float* af, const int* ldaf, const float* b, const int* ldb, float* x, const int* ldx, float* ferr, float* berr, float* work, int* iwork, int* info);
418 void PREFIX SPOSVX_F77(Teuchos_fcd, Teuchos_fcd, const int* n, const int* nrhs, float* a, const int* lda, float* af, const int* ldaf, Teuchos_nonconst_fcd, float* s, float* b, const int* ldb, float* x, const int* ldx, float* rcond, float* ferr, float* berr, float* work, int* iwork, int* info);
419 void PREFIX STRTRS_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, const int* n, const int* nrhs, const float* a, const int* lda, float* b, const int* ldb, int* info);
420 void PREFIX STRTRI_F77(Teuchos_fcd, Teuchos_fcd, const int* n, float* a, const int* lda, int* info);
421 void PREFIX SGEQP3_F77( const int *M, const int *N, float *A, const int *LDA, int *JPVT, float *TAU, float *WORK, const int *LWORK, int *INFO );
422 
423 // Double precision LAPACK eigen solvers
424 void PREFIX DSPEV_F77(Teuchos_fcd, Teuchos_fcd, const int* n, double* ap, double* w, double* z, const int* ldz, double* work, int* info);
425 void PREFIX DSYEV_F77(Teuchos_fcd, Teuchos_fcd, const int* n, double* a, const int* lda, double* w, double* work, const int* lwork, int* info);
426 void PREFIX DSYGV_F77(const int* itype, Teuchos_fcd, Teuchos_fcd, const int* n, double* a, const int* lda, double* B, const int* ldb, double* w, double* work, const int* lwork, int* info);
427 void PREFIX DSTEQR_F77(Teuchos_fcd, const int* n, double* D, double* E, double* Z, const int* ldz, double* work, int* info);
428 void PREFIX DPTEQR_F77(Teuchos_fcd, const int* n, double* D, double* E, double* Z, const int* ldz, double* work, int* info);
429 void PREFIX DGEEV_F77(Teuchos_fcd, Teuchos_fcd, const int* n, double* a, const int* lda, double* wr, double* wi, double* vl, const int* ldvl, double* vr, const int* ldvr, double* work, const int* lwork, int* info);
430 void PREFIX DGGEV_F77(Teuchos_fcd, Teuchos_fcd, const int *n, double *A, const int *lda, double *B, const int *ldb, double *alphar, double *alphai, double *beta, double *vl, const int *ldvl, double *vr, const int *ldvr, double *work, const int *lwork, int *info);
431 void PREFIX DGGES_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, int (*ptr2func)(double*, double*, double*), const int* n, double* A, const int* lda, double* B, const int* ldb, int* sdim, double* alphar, double* alphai, double* beta, double* vl, const int* ldvl, double* vr, const int* ldvr, double* work, const int *lwork, int *bwork, int *info);
432 void PREFIX DTRSEN_F77(Teuchos_fcd, Teuchos_fcd, const int *select, const int *n, double *t, const int *ldt, double *q, const int *ldq, double *wr, double *wi, int *m, double *s, double *sep, double *work, const int *lwork, int *iwork, const int *liwork, int *info);
433 void PREFIX DTGSEN_F77(const int *ijob, const int *wantq, const int *wantz, const int *select, const int *n, double *a, const int *lda, double *b, const int *ldb, double *alphar, double *alphai, double *beta, double *q, const int *ldq, double *z, const int *ldz, int *m, double *pl, double *pr, double *dif, double *work, const int *lwork, int *iwork, const int *liwork, int *info);
434 void PREFIX DGESVD_F77(Teuchos_fcd, Teuchos_fcd, const int* m, const int* n, double* a, const int* lda, double* s, double* u, const int* ldu, double* v, const int* ldv, double* work, const int* lwork, int* info);
435 void PREFIX DGGEVX_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, const int* n, double* a, const int* lda, double* b, const int* ldb, double* alphar, double* alphai, double* beta, double* vl, const int* ldvl, double* vr, const int* ldvr, int* ilo, int* ihi, double* lscale, double* rscale, double* abnrm, double* bbnrm, double* rconde, double* rcondv, double* work, const int* lwork, int* iwork, int* bwork, int* info);
436 void PREFIX DGEEVX_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, const int* n, double* a, const int* lda, double* alphar, double* alphai, double* vl, const int* ldvl, double* vr, const int* ldvr, int* ilo, int* ihi, double* scale, double* abnrm, double* rconde, double* rcondv, double* work, const int* lwork, int* iwork, int* info);
437 void PREFIX DGEHRD_F77(const int* n, const int* ilo, const int* ihi, double* A, const int* lda, double* tau, double* work, const int* lwork, int* info);
438 void PREFIX DHSEQR_F77(Teuchos_fcd job, Teuchos_fcd, const int* n, const int* ilo, const int* ihi, double* h, const int* ldh, double* wr, double* wi, double* z, const int* ldz, double* work, const int* lwork, int* info);
439 void PREFIX DGEES_F77(Teuchos_fcd, Teuchos_fcd, int (*ptr2func)(double*, double*), const int* n, double* a, const int* lda, int* sdim, double* wr, double* wi, double* vs, const int* ldvs, double* work, const int* lwork, int* bwork, int* info);
440 void PREFIX DORGHR_F77(const int* n, const int* ilo, const int* ihi, double* a, const int* lda, const double* tau, double* work, const int* lwork, int* info);
441 void PREFIX DORMHR_F77(Teuchos_fcd, Teuchos_fcd, const int* m, const int* n, const int* ilo, const int* ihi, const double* a, const int* lda, const double* tau, double* c, const int* ldc, double* work, const int* lwork, int* info);
442 void PREFIX DORGQR_F77(const int* m, const int* n, const int* k, double* a, const int* lda, const double* tau, double* work, const int* lwork, int* info);
443 void PREFIX DORMQR_F77(Teuchos_fcd, Teuchos_fcd, const int* m, const int* n, const int* k, const double* a, const int* lda, const double* tau, double* C, const int* ldc, double* work, const int* lwork, int* info);
444 void PREFIX DORM2R_F77(Teuchos_fcd SIDE, Teuchos_fcd TRANS, const int* const M, const int* const N, const int* const K, const double* A, const int* const LDA, const double* TAU, double* C, const int* const LDC, double* WORK, int* const INFO);
445 
446 void PREFIX DTREVC_F77(Teuchos_fcd, Teuchos_fcd, int* select, const int* n, const double* t, const int* ldt, double* vl, const int* ldvl, double* vr, const int* ldvr, const int* mm, int* m, double* work, int* info);
447 void PREFIX DTREXC_F77(Teuchos_fcd, const int* n, double* t, const int* ldt, double* q, const int* ldq, int* ifst, int* ilst, double* work, int* info);
448 void PREFIX DTGEVC_F77(Teuchos_fcd, Teuchos_fcd, const int *select, const int *n, const double *s, const int *lds, const double *p, const int *ldp, double *vl, const int *ldvl, double *vr, const int *ldvr, const int *mm, int *m, double *work, int *info);
449 
450 
451 // Single precision LAPACK eigen solvers
452 
453 void PREFIX SSPEV_F77(Teuchos_fcd, Teuchos_fcd, const int* n, float* ap, float* w, float* z, const int* ldz, float* work, int* info);
454 void PREFIX SSYEV_F77(Teuchos_fcd, Teuchos_fcd, const int* n, float* a, const int* lda, float* w, float* work, const int* lwork, int* info);
455 void PREFIX SSYGV_F77(const int* itype, Teuchos_fcd, Teuchos_fcd, const int* n, float* a, const int* lda, float* B, const int* ldb, float* w, float* work, const int* lwork, int* info);
456 void PREFIX SSTEQR_F77(Teuchos_fcd, const int* n, float* D, float* E, float* Z, const int* ldz, float* work, int* info);
457 void PREFIX SPTEQR_F77(Teuchos_fcd, const int* n, float* D, float* E, float* Z, const int* ldz, float* work, int* info);
458 void PREFIX SGEEV_F77(Teuchos_fcd, Teuchos_fcd, const int* n, float* a, const int* lda, float* wr, float* wi, float* vl, const int* ldvl, float* vr, const int* ldvr, float* work, const int* lwork, int* info);
459 void PREFIX SGGEV_F77(Teuchos_fcd, Teuchos_fcd, const int *n, float *A, const int *lda, float *B, const int *ldb, float *alphar, float *alphai, float *beta, float *vl, const int *ldvl, float *vr, const int *ldvr, float *work, const int *lwork, int *info);
460 void PREFIX SGGES_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, int (*ptr2func)(float*, float*, float*), const int* n, float* A, const int* lda, float* B, const int* ldb, int* sdim, float* alphar, float* alphai, float* beta, float* vl, const int* ldvl, float* vr, const int* ldvr, float* work, const int *lwork, int *bwork, int *info);
461 void PREFIX STRSEN_F77(Teuchos_fcd, Teuchos_fcd, const int *select, const int *n, float *t, const int *ldt, float *q, const int *ldq, float *wr, float *wi, int *m, float *s, float *sep, float *work, const int *lwork, int *iwork, const int *liwork, int *info);
462 void PREFIX STGSEN_F77(const int *ijob, const int *wantq, const int *wantz, const int *select, const int *n, float *a, const int *lda, float *b, const int *ldb, float *alphar, float *alphai, float *beta, float *q, const int *ldq, float *z, const int *ldz, int *m, float *pl, float *pr, float *dif, float *work, const int *lwork, int *iwork, const int *liwork, int *info);
463 void PREFIX SGESVD_F77(Teuchos_fcd, Teuchos_fcd, const int* m, const int* n, float* a, const int* lda, float* s, float* u, const int* ldu, float* v, const int* ldv, float* work, const int* lwork, int* info);
464 void PREFIX SGGEVX_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, const int* n, float* a, const int* lda, float* b, const int* ldb, float* alphar, float* alphai, float* beta, float* vl, const int* ldvl, float* vr, const int* ldvr, int* ilo, int* ihi, float* lscale, float* rscale, float* abnrm, float* bbnrm, float* rconde, float* rcondv, float* work, const int* lwork, int* iwork, int* bwork, int* info);
465 void PREFIX SGEEVX_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, const int* n, float* a, const int* lda, float* wr, float* wi, float* vl, const int* ldvl, float* vr, const int* ldvr, int* ilo, int* ihi, float* scale, float* abnrm, float* rconde, float* rcondv, float* work, const int* lwork, int* iwork, int* info);
466 void PREFIX SGEHRD_F77(const int* n, const int* ilo, const int* ihi, float* A, const int* lda, float* tau, float* work, const int* lwork, int* info);
467 void PREFIX SHSEQR_F77(Teuchos_fcd job, Teuchos_fcd, const int* n, const int* ilo, const int* ihi, float* h, const int* ldh, float* wr, float* wi, float* z, const int* ldz, float* work, const int* lwork, int* info);
468 void PREFIX SGEES_F77(Teuchos_fcd, Teuchos_fcd, int (*ptr2func)(float*, float*), const int* n, float* a, const int* lda, int* sdim, float* wr, float* wi, float* vs, const int* ldvs, float* work, const int* lwork, int* bwork, int* info);
469 void PREFIX SORGHR_F77(const int* n, const int* ilo, const int* ihi, float* a, const int* lda, const float* tau, float* work, const int* lwork, int* info);
470 void PREFIX SORMHR_F77(Teuchos_fcd, Teuchos_fcd, const int* m, const int* n, const int* ilo, const int* ihi, const float* a, const int* lda, const float* tau, float* c, const int* ldc, float* work, const int* lwork, int* info);
471 void PREFIX SORGQR_F77(const int* m, const int* n, const int* k, float* a, const int* lda, const float* tau, float* work, const int* lwork, int* info);
472 void PREFIX SORMQR_F77(Teuchos_fcd, Teuchos_fcd, const int* m, const int* n, const int* k, const float* a, const int* lda, const float* tau, float* C, const int* ldc, float* work, const int* lwork, int* info);
473 void PREFIX SORM2R_F77(Teuchos_fcd SIDE, Teuchos_fcd TRANS, const int* const M, const int* const N, const int* const K, const float* A, const int* const LDA, const float* TAU, float* C, const int* const LDC, float* WORK, int* const INFO);
474 
475 void PREFIX STREVC_F77(Teuchos_fcd, Teuchos_fcd, int* select, const int* n, const float* t, const int* ldt, float* vl, const int* ldvl, float* vr, const int* ldvr, const int* mm, int* m, float* work, int* info);
476 void PREFIX STREXC_F77(Teuchos_fcd, const int* n, float* t, const int* ldt, float* q, const int* ldq, int* ifst, int* ilst, float* work, int* info);
477 void PREFIX STGEVC_F77(Teuchos_fcd, Teuchos_fcd, const int *select, const int *n, const float *s, const int *lds, const float *p, const int *ldp, float *vl, const int *ldvl, float *vr, const int *ldvr, const int *mm, int *m, float *work, int *info);
478 
479 void PREFIX SLARTG_F77(const float* f, const float* g, float* c, float* s, float* r);
480 void PREFIX DLARTG_F77(const double* f, const double* g, double* c, double* s, double* r);
481 
482 void PREFIX SLARFG_F77(const int* n, float* alpha, float* x, const int* incx, float* tau);
483 void PREFIX DLARFG_F77(const int* n, double* alpha, double* x, const int* incx, double* tau);
484 
485 void PREFIX SGEBAL_F77(Teuchos_fcd, const int* n, float* a, const int* lda, int* ilo, int* ihi, float* scale, int* info);
486 void PREFIX SGEBAK_F77(Teuchos_fcd, Teuchos_fcd, const int* n, const int* ilo, const int* ihi, const float* scale, const int* m, float* V, const int* ldv, int* info);
487 void PREFIX DGEBAL_F77(Teuchos_fcd, const int* n, double* a, const int* lda, int* ilo, int* ihi, double* scale, int* info);
488 void PREFIX DGEBAK_F77(Teuchos_fcd, Teuchos_fcd, const int* n, const int* ilo, const int* ihi, const double* scale, const int* m, double* V, const int* ldv, int* info);
489 
490 float PREFIX SLARND_F77(const int* idist, int* seed);
491 double PREFIX DLARND_F77(const int* idist, int* seed);
492 
493 void PREFIX SLARNV_F77(const int* idist, int* seed, const int* n, float* v);
494 void PREFIX DLARNV_F77(const int* idist, int* seed, const int* n, double* v);
495 
498 
499 #if defined(INTEL_CXML)
500 int PREFIX ILAENV_F77( const int* ispec, const char* name, unsigned int name_length, const char* opts, unsigned int opts_length, const int* N1, const int* N2, const int* N3, const int* N4 );
501 #else
502 int PREFIX ILAENV_F77( const int* ispec, const char* name, const char* opts, const int* N1, const int* N2, const int* N3, const int* N4, unsigned int name_length, unsigned int opts_length );
503 #endif
504 
505 #ifdef HAVE_TEUCHOS_BLASFLOAT
506  #if defined(HAVE_SLAPY2_PROBLEM) && defined(HAVE_SLAPY2_DOUBLE_RETURN)
507  double PREFIX SLAPY2_F77(const float* x, const float* y);
508  #else
509  float PREFIX SLAPY2_F77(const float* x, const float* y);
510  #endif
511 #endif
512 
513 double PREFIX DLAPY2_F77(const double* x, const double* y);
514 
515 #ifdef HAVE_TEUCHOS_COMPLEX
516 
517 // Double precision complex LAPACK linear solvers
518 void PREFIX ZGELS_F77(Teuchos_fcd ch, const int* m, const int* n, const int* nrhs, std::complex<double>* a, const int* lda, std::complex<double>* b, const int* ldb, std::complex<double>* work, const int* lwork, int* info);
519 void PREFIX ZGELSS_F77(const int* m, const int* n, const int* nrhs, std::complex<double>* a, const int* lda, std::complex<double>* b, const int* ldb, double* s, const double* rcond, int* rank, std::complex<double>* work, const int* lwork, double* rwork, int* info);
520 void PREFIX ZGEQRF_F77(const int* m, const int* n, std::complex<double>* a, const int* lda, std::complex<double>* tau, std::complex<double>* work, const int* lwork, int* info);
521 void PREFIX ZGEQR2_F77(const int* const m, const int* const n, std::complex<double>* a, const int* const lda, std::complex<double>* tau, std::complex<double>* work, int* const info);
522 void PREFIX ZUNGQR_F77(const int* m, const int* n, const int* k, std::complex<double>* a, const int* lda, const std::complex<double>* tau, std::complex<double>* work, const int* lwork, int* info);
523 void PREFIX ZUNMQR_F77(Teuchos_fcd SIDE, Teuchos_fcd TRANS, const int* m, const int* n, const int* k, const std::complex<double>* A, const int* lda, const std::complex<double>* tau, std::complex<double>* C, const int* ldc, std::complex<double>* work, const int* lwork, int* info);
524 void PREFIX ZUNM2R_F77(Teuchos_fcd SIDE, Teuchos_fcd TRANS, const int* const M, const int* const N, const int* const K, const std::complex<double>* A, const int* const LDA, const std::complex<double>* TAU, std::complex<double>* C, const int* const LDC, std::complex<double>* WORK, int* const INFO);
525 void PREFIX ZGETRF_F77(const int* m, const int* n, std::complex<double>* a, const int* lda, int* ipiv, int* info);
526 void PREFIX ZGETRS_F77(Teuchos_fcd, const int* n, const int* nrhs, const std::complex<double>* a, const int* lda,const int* ipiv, std::complex<double>* x , const int* ldx, int* info);
527 void PREFIX ZLASCL_F77(Teuchos_fcd, const int* kl, const int* ku, const double* cfrom, const double* cto, const int* m, const int* n, std::complex<double>* a, const int* lda, int* info);
528 void PREFIX ZLASWP_F77(const int* N, std::complex<double>* A, const int* LDA, const int* K1, const int* K2, const int* IPIV, const int* INCX);
529 void PREFIX ZGBTRF_F77(const int* m, const int* n, const int* kl, const int* ku, std::complex<double>* a, const int* lda, int* ipiv, int* info);
530 void PREFIX ZGBTRS_F77(Teuchos_fcd, const int* n, const int* kl, const int* ku, const int* nrhs, const std::complex<double>* a, const int* lda,const int* ipiv, std::complex<double>* x , const int* ldx, int* info);
531 void PREFIX ZGTTRF_F77(const int* n, std::complex<double>* dl, std::complex<double>* d, std::complex<double>* du, std::complex<double>* du2, int* ipiv, int* info);
532 void PREFIX ZGTTRS_F77(Teuchos_fcd, const int* n, const int* nrhs, const std::complex<double>* dl, const std::complex<double>* d, const std::complex<double>* du, const std::complex<double>* du2, const int* ipiv, std::complex<double>* x , const int* ldx, int* info);
533 void PREFIX ZPTTRF_F77(const int* n, double* d, std::complex<double>* e, int* info);
534 void PREFIX ZPTTRS_F77(Teuchos_fcd UPLO, const int* n, const int* nrhs, const double* d, const std::complex<double>* e, std::complex<double>* x , const int* ldx, int* info);
535 void PREFIX ZGETRI_F77(const int* n, std::complex<double>* a, const int* lda, const int* ipiv, std::complex<double>* work , const int* lwork, int* info);
536 void PREFIX ZLATRS_F77(Teuchos_fcd UPLO, Teuchos_fcd TRANS, Teuchos_fcd DIAG, Teuchos_fcd NORMIN, const int* N, const std::complex<double>* A, const int* LDA, std::complex<double>* X, double* SCALE, double* CNORM, int* INFO);
537 void PREFIX ZGECON_F77(Teuchos_fcd norm, const int* n, const std::complex<double>* a, const int* lda, const double* anorm, double* rcond, std::complex<double>* work, double* rwork, int* info);
538 void PREFIX ZGBCON_F77(Teuchos_fcd norm, const int* n, const int* kl, const int* ku, const std::complex<double>* a, const int* lda, const int* IPIV, const double* anorm, double* rcond, std::complex<double>* work, double* rwork, int* info);
539 double PREFIX ZLANGB_F77(Teuchos_fcd norm, const int* n, const int* kl, const int* ku, const std::complex<double>* a, const int* lda, double* work);
540 void PREFIX ZGESV_F77(const int* n, const int* nrhs, std::complex<double>* a, const int* lda, int* ipiv, std::complex<double>* x , const int* ldx, int* info);
541 void PREFIX ZGEEQU_F77(const int* m, const int* n, const std::complex<double>* a, const int* lda, double* r, double* c, double* rowcnd, double* colcnd, double* amax, int* info);
542 void PREFIX ZGBEQU_F77(const int* m, const int* n, const int* kl, const int* ku, const std::complex<double>* a, const int* lda, double* r, double* c, double* rowcnd, double* colcnd, double* amax, int* info);
543 void PREFIX ZGERFS_F77(Teuchos_fcd, const int* n, const int* nrhs, const std::complex<double>* a, const int* lda, const std::complex<double>* af, const int* ldaf, const int* ipiv, const std::complex<double>* b, const int* ldb, std::complex<double>* x, const int* ldx, double* ferr, double* berr, std::complex<double>* work, double* rwork, int* info);
544 void PREFIX ZGBRFS_F77(Teuchos_fcd, const int* n, const int* kl, const int* ku, const int* nrhs, const std::complex<double>* a, const int* lda, const std::complex<double>* af, const int* ldaf, const int* ipiv, const std::complex<double>* b, const int* ldb, std::complex<double>* x, const int* ldx, double* ferr, double* berr, std::complex<double>* work, double* rwork, int* info);
545 void PREFIX ZGESVX_F77(Teuchos_fcd, Teuchos_fcd, const int* n, const int* nrhs, std::complex<double>* a, const int* lda, std::complex<double>* af, const int* ldaf, int* ipiv, Teuchos_nonconst_fcd, double* r, double* c, std::complex<double>* b, const int* ldb, std::complex<double>* x, const int* ldx, double* rcond, double* ferr, double* berr, std::complex<double>* work, double* rwork, int* info);
546 void PREFIX ZPOTRF_F77(Teuchos_fcd, const int* n, std::complex<double>* a, const int* lda, int* info);
547 void PREFIX ZPOTRS_F77(Teuchos_fcd, const int* n, const int* nrhs, const std::complex<double>* a, const int* lda, std::complex<double>*x , const int* ldx, int* info);
548 void PREFIX ZPOTRI_F77(Teuchos_fcd, const int* n, std::complex<double>* a, const int* lda, int* info);
549 void PREFIX ZPOCON_F77(Teuchos_fcd, const int* n, const std::complex<double>* a, const int* lda, const double* anorm, double* rcond, std::complex<double>* work, double* rwork, int* info);
550 void PREFIX ZPOSV_F77(Teuchos_fcd, const int* n, const int* nrhs, std::complex<double>* a, const int* lda, std::complex<double>*x , const int* ldx, int* info);
551 void PREFIX ZPOEQU_F77(const int* n, const std::complex<double>* a, const int* lda, double* s, double* scond, double* amax, int* info);
552 void PREFIX ZPORFS_F77(Teuchos_fcd, const int* n, const int* nrhs, const std::complex<double>* a, const int* lda, const std::complex<double>* af, const int* ldaf, const std::complex<double>* b, const int* ldb, std::complex<double>* x, const int* ldx, double* ferr, double* berr, std::complex<double>* work, double* rwork, int* info);
553 void PREFIX ZPOSVX_F77(Teuchos_fcd, Teuchos_fcd, const int* n, const int* nrhs, std::complex<double>* a, const int* lda, std::complex<double>* af, const int* ldaf, Teuchos_nonconst_fcd, double* s, std::complex<double>* b, const int* ldb, std::complex<double>* x, const int* ldx, double* rcond, double* ferr, double* berr, std::complex<double>* work, double* rwork, int* info);
554 void PREFIX ZTRTRS_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, const int* n, const int* nrhs, const std::complex<double>* a, const int* lda, std::complex<double>* b, const int* ldb, int* info);
555 void PREFIX ZTRTRI_F77(Teuchos_fcd, Teuchos_fcd, const int* n, std::complex<double>* a, const int* lda, int* info);
556 void PREFIX ZGEQP3_F77( const int *M, const int *N, std::complex<double>* A, const int *LDA, int *JPVT, std::complex<double>* TAU, std::complex<double>* WORK, const int *LWORK, double *RWORK, int *INFO );
557 
558 // Single precision complex LAPACK linear solvers
559 
560 void PREFIX CGELS_F77(Teuchos_fcd ch, const int* m, const int* n, const int* nrhs, std::complex<float>* a, const int* lda, std::complex<float>* b, const int* ldb, std::complex<float>* work, const int* lwork, int* info);
561 void PREFIX CGELSS_F77(const int* m, const int* n, const int* nrhs, std::complex<float>* a, const int* lda, std::complex<float>* b, const int* ldb, float* s, const float* rcond, int* rank, std::complex<float>* work, const int* lwork, float* rwork, int* info);
562 void PREFIX CGEQRF_F77(const int* m, const int* n, std::complex<float>* a, const int* lda, std::complex<float>* tau, std::complex<float>* work, const int* lwork, int* info);
563 void PREFIX CGEQR2_F77(const int* const m, const int* const n, std::complex<float>* a, const int* const lda, std::complex<float>* tau, std::complex<float>* work, int* const info);
564 void PREFIX CUNGQR_F77(const int* m, const int* n, const int* k, std::complex<float>* a, const int* lda, const std::complex<float>* tau, std::complex<float>* work, const int* lwork, int* info);
565 void PREFIX CUNMQR_F77(Teuchos_fcd SIDE, Teuchos_fcd TRANS, const int* m, const int* n, const int* k, const std::complex<float>* A, const int* lda, const std::complex<float>* tau, std::complex<float>* C, const int* ldc, std::complex<float>* work, const int* lwork, int* info);
566 void PREFIX CUNM2R_F77(Teuchos_fcd SIDE, Teuchos_fcd TRANS, const int* const M, const int* const N, const int* const K, const std::complex<float>* A, const int* const LDA, const std::complex<float>* TAU, std::complex<float>* C, const int* const LDC, std::complex<float>* WORK, int* const INFO);
567 void PREFIX CGETRF_F77(const int* m, const int* n, std::complex<float>* a, const int* lda, int* ipiv, int* info);
568 void PREFIX CGETRS_F77(Teuchos_fcd, const int* n, const int* nrhs, const std::complex<float>* a, const int* lda,const int* ipiv, std::complex<float>* x , const int* ldx, int* info);
569 void PREFIX CLASCL_F77(Teuchos_fcd, const int* kl, const int* ku, const float* cfrom, const float* cto, const int* m, const int* n, std::complex<float>* a, const int* lda, int* info);
570 void PREFIX CLASWP_F77(const int* N, std::complex<float>* A, const int* LDA, const int* K1, const int* K2, const int* IPIV, const int* INCX);
571 void PREFIX CGBTRF_F77(const int* m, const int* n, const int* kl, const int* ku, std::complex<float>* a, const int* lda, int* ipiv, int* info);
572 void PREFIX CGBTRS_F77(Teuchos_fcd, const int* n, const int* kl, const int* ku, const int* nrhs, const std::complex<float>* a, const int* lda,const int* ipiv, std::complex<float>* x , const int* ldx, int* info);
573 void PREFIX CGTTRF_F77(const int* n, std::complex<float>* dl, std::complex<float>* d, std::complex<float>* du, std::complex<float>* du2, int* ipiv, int* info);
574 void PREFIX CGTTRS_F77(Teuchos_fcd, const int* n, const int* nrhs, const std::complex<float>* dl, const std::complex<float>* d, const std::complex<float>* du, const std::complex<float>* du2, const int* ipiv, std::complex<float>* x , const int* ldx, int* info);
575 void PREFIX CPTTRF_F77(const int* n, float* d, std::complex<float>* e, int* info);
576 void PREFIX CPTTRS_F77(Teuchos_fcd UPLO, const int* n, const int* nrhs, const float* d, const std::complex<float>* e, std::complex<float>* x , const int* ldx, int* info);
577 void PREFIX CGETRI_F77(const int* n, std::complex<float>* a, const int* lda, const int* ipiv, std::complex<float>* work , const int* lwork, int* info);
578 void PREFIX CLATRS_F77(Teuchos_fcd UPLO, Teuchos_fcd TRANS, Teuchos_fcd DIAG, Teuchos_fcd NORMIN, const int* N, const std::complex<float>* A, const int* LDA, std::complex<float>* X, float* SCALE, float* CNORM, int* INFO);
579 void PREFIX CGECON_F77(Teuchos_fcd norm, const int* n, const std::complex<float>* a, const int* lda, const float* anorm, float* rcond, std::complex<float>* work, float* rwork, int* info);
580 void PREFIX CGBCON_F77(Teuchos_fcd norm, const int* n, const int* kl, const int* ku, const std::complex<float>* a, const int* lda, const int* IPIV, const float* anorm, float* rcond, std::complex<float>* work, float* rwork, int* info);
581 float PREFIX CLANGB_F77(Teuchos_fcd norm, const int* n, const int* kl, const int* ku, const std::complex<float>* a, const int* lda, float* work);
582 void PREFIX CGESV_F77(const int* n, const int* nrhs, std::complex<float>* a, const int* lda, int* ipiv, std::complex<float>* x, const int* ldx, int* info);
583 void PREFIX CGEEQU_F77(const int* m, const int* n, const std::complex<float>* a, const int* lda, float* r, float* c, float* rowcnd, float* colcnd, float* amax, int* info);
584 void PREFIX CGBEQU_F77(const int* m, const int* n, const int* kl, const int* ku, const std::complex<float>* a, const int* lda, float* r, float* c, float* rowcnd, float* colcnd, float* amax, int* info);
585 void PREFIX CGERFS_F77(Teuchos_fcd, const int* n, const int* nrhs, const std::complex<float>* a, const int* lda, const std::complex<float>* af, const int* ldaf, const int* ipiv, const std::complex<float>* b, const int* ldb, std::complex<float>* x, const int* ldx, float* ferr, float* berr, std::complex<float>* work, float* rwork, int* info);
586 void PREFIX CGBRFS_F77(Teuchos_fcd, const int* n, const int* kl, const int* ku, const int* nrhs, const std::complex<float>* a, const int* lda, const std::complex<float>* af, const int* ldaf, const int* ipiv, const std::complex<float>* b, const int* ldb, std::complex<float>* x, const int* ldx, float* ferr, float* berr, std::complex<float>* work, float* rwork, int* info);
587 void PREFIX CGESVX_F77(Teuchos_fcd, Teuchos_fcd, const int* n, const int* nrhs, std::complex<float>* a, const int* lda, std::complex<float>* af, const int* ldaf, int* ipiv, Teuchos_nonconst_fcd, float* r, float* c, std::complex<float>* b, const int* ldb, std::complex<float>* x, const int* ldx, float* rcond, float* ferr, float* berr, std::complex<float>* work, float* rwork, int* info);
588 void PREFIX CPOTRF_F77(Teuchos_fcd, const int* n, std::complex<float>* a, const int* lda, int* info);
589 void PREFIX CPOTRS_F77(Teuchos_fcd, const int* n, const int* nrhs, const std::complex<float>* a, const int* lda, std::complex<float>*x , const int* ldx, int* info);
590 void PREFIX CPOTRI_F77(Teuchos_fcd, const int* n, std::complex<float>* a, const int* lda, int* info);
591 void PREFIX CPOCON_F77(Teuchos_fcd, const int* n, const std::complex<float>* a, const int* lda, const float* anorm, float* rcond, std::complex<float>* work, float* rwork, int* info);
592 void PREFIX CPOSV_F77(Teuchos_fcd, const int* n, const int* nrhs, std::complex<float>* a, const int* lda, std::complex<float>*x , const int* ldx, int* info);
593 void PREFIX CPOEQU_F77(const int* n, const std::complex<float>* a, const int* lda, float* s, float* scond, float* amax, int* info);
594 void PREFIX CPORFS_F77(Teuchos_fcd, const int* n, const int* nrhs, const std::complex<float>* a, const int* lda, const std::complex<float>* af, const int* ldaf, const std::complex<float>* b, const int* ldb, std::complex<float>* x, const int* ldx, float* ferr, float* berr, std::complex<float>* work, float* rwork, int* info);
595 void PREFIX CPOSVX_F77(Teuchos_fcd, Teuchos_fcd, const int* n, const int* nrhs, std::complex<float>* a, const int* lda, std::complex<float>* af, const int* ldaf, Teuchos_nonconst_fcd, float* s, std::complex<float>* b, const int* ldb, std::complex<float>* x, const int* ldx, float* rcond, float* ferr, float* berr, std::complex<float>* work, float* rwork, int* info);
596 void PREFIX CTRTRS_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, const int* n, const int* nrhs, const std::complex<float>* a, const int* lda, std::complex<float>* b, const int* ldb, int* info);
597 void PREFIX CTRTRI_F77(Teuchos_fcd, Teuchos_fcd, const int* n, std::complex<float>* a, const int* lda, int* info);
598 void PREFIX CGEQP3_F77( const int *M, const int *N, std::complex<float>* A, const int *LDA, int *JPVT, std::complex<float>* TAU, std::complex<float>* WORK, const int *LWORK, float *RWORK, int *INFO );
599 
600 // Double precision complex LAPACK eigensolvers
601 
602 void PREFIX ZSTEQR_F77(Teuchos_fcd, const int* n, double* D, double* E, std::complex<double>* Z, const int* ldz, double* work, int* info);
603 void PREFIX ZPTEQR_F77(Teuchos_fcd, const int* n, double* D, double* E, std::complex<double>* Z, const int* ldz, double* work, int* info);
604 void PREFIX ZHEEV_F77(Teuchos_fcd, Teuchos_fcd, const int* n, std::complex<double>* a, const int* lda, double* w, std::complex<double>* work, const int* lwork, double* rwork, int* info);
605 void PREFIX ZHEGV_F77(const int* itype, Teuchos_fcd, Teuchos_fcd, const int* n, std::complex<double>* a, const int* lda, std::complex<double>* B, const int* ldb, double* w, std::complex<double>* work, const int* lwork, double *rwork, int* info);
606 void PREFIX ZGEEV_F77(Teuchos_fcd, Teuchos_fcd, const int* n, std::complex<double>* a, const int* lda, std::complex<double>* w, std::complex<double>* vl, const int* ldvl, std::complex<double>* vr, const int* ldvr, std::complex<double>* work, const int* lwork, double* rwork, int* info);
607 void PREFIX ZGGEV_F77(Teuchos_fcd, Teuchos_fcd, const int *n, std::complex<double> *A, const int *lda, std::complex<double> *B, const int *ldb, std::complex<double> *alpha, std::complex<double> *beta, std::complex<double> *vl, const int *ldvl, std::complex<double> *vr, const int *ldvr, std::complex<double> *work, const int *lwork, double *rwork, int *info);
608 void PREFIX ZGGES_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, int (*ptr2func)(std::complex<double>*, std::complex<double>*), const int* n, std::complex<double>* A, const int* lda, std::complex<double>* B, const int* ldb, int* sdim, std::complex<double>* alpha, std::complex<double>* beta, std::complex<double>* vl, const int* ldvl, std::complex<double>* vr, const int* ldvr, std::complex<double>* work, const int *lwork, double* rwork, int* bwork, int *info);
609 void PREFIX ZTGSEN_F77(const int *ijob, const int *wantq, const int *wantz, const int *select, const int *n, std::complex<double>* a, const int *lda, std::complex<double>* b, const int *ldb, std::complex<double>* alpha, std::complex<double>* beta, std::complex<double>* q, const int *ldq, std::complex<double>* z, const int *ldz, int *m, double *pl, double *pr, double *dif, std::complex<double>* work, const int *lwork, int *iwork, const int *liwork, int *info);
610 void PREFIX ZGESVD_F77(Teuchos_fcd, Teuchos_fcd, const int* m, const int* n, std::complex<double>* a, const int* lda, double* s, std::complex<double>* u, const int* ldu, std::complex<double>* v, const int* ldv, std::complex<double>* work, const int* lwork, double* rwork, int* info);
611 void PREFIX ZGGEVX_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, const int* n, std::complex<double>* a, const int* lda, std::complex<double>* b, const int* ldb, std::complex<double>* alpha, std::complex<double>* beta, std::complex<double>* vl, const int* ldvl, std::complex<double>* vr, const int* ldvr, int* ilo, int* ihi, double* lscale, double* rscale, double* abnrm, double* bbnrm, double* rconde, double* rcondv, std::complex<double>* work, const int* lwork, double* rwork, int* iwork, int* bwork, int* info);
612 void PREFIX ZGEEVX_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, const int* n, std::complex<double>* a, const int* lda, std::complex<double>* w, std::complex<double>* vl, const int* ldvl, std::complex<double>* vr, const int* ldvr, int* ilo, int* ihi, double* scale, double* abnrm, double* rconde, double* rcondv, std::complex<double>* work, const int* lwork, double* rwork, int* info);
613 void PREFIX ZGEHRD_F77(const int* n, const int* ilo, const int* ihi, std::complex<double>* A, const int* lda, std::complex<double>* tau, std::complex<double>* work, const int* lwork, int* info);
614 void PREFIX ZHSEQR_F77(Teuchos_fcd job, Teuchos_fcd, const int* n, const int* ilo, const int* ihi, std::complex<double>* h, const int* ldh, std::complex<double>* w, std::complex<double>* z, const int* ldz, std::complex<double>* work, const int* lwork, int* info);
615 void PREFIX ZGEES_F77(Teuchos_fcd, Teuchos_fcd, int (*ptr2func)(std::complex<double>*), const int* n, std::complex<double>* a, const int* lda, int* sdim, std::complex<double>* w, std::complex<double>* vs, const int* ldvs, std::complex<double>* work, const int* lwork, double* rwork, int* bwork, int* info);
616 void PREFIX ZTREVC_F77(Teuchos_fcd, Teuchos_fcd, int* select, const int* n, const std::complex<double>* t, const int* ldt, std::complex<double>* vl, const int* ldvl, std::complex<double>* vr, const int* ldvr, const int* mm, int* m, std::complex<double>* work, double* rwork, int* info);
617 
618 // note that complex takes const int* for ifst, ilst - float/double types do NOT - they tak int*
619 void PREFIX ZTREXC_F77(Teuchos_fcd, const int* n, std::complex<double>* t, const int* ldt, std::complex<double>* q, const int* ldq, const int* ifst, const int* ilst, int* info);
620 
621 // Single precision complex LAPACK eigensolvers
622 
623 void PREFIX CSTEQR_F77(Teuchos_fcd, const int* n, float* D, float* E, std::complex<float>* Z, const int* ldz, float* work, int* info);
624 void PREFIX CPTEQR_F77(Teuchos_fcd, const int* n, float* D, float* E, std::complex<float>* Z, const int* ldz, float* work, int* info);
625 void PREFIX CHEEV_F77(Teuchos_fcd, Teuchos_fcd, const int* n, std::complex<float>* a, const int* lda, float* w, std::complex<float>* work, const int* lwork, float* rwork, int* info);
626 void PREFIX CHEGV_F77(const int* itype, Teuchos_fcd, Teuchos_fcd, const int* n, std::complex<float>* a, const int* lda, std::complex<float>* B, const int* ldb, float* w, std::complex<float>* work, const int* lwork, float *rwork, int* info);
627 void PREFIX CGEEV_F77(Teuchos_fcd, Teuchos_fcd, const int* n, std::complex<float>* a, const int* lda, std::complex<float>* w, std::complex<float>* vl, const int* ldvl, std::complex<float>* vr, const int* ldvr, std::complex<float>* work, const int* lwork, float* rwork, int* info);
628 void PREFIX CGGEV_F77(Teuchos_fcd, Teuchos_fcd, const int *n, std::complex<float> *A, const int *lda, std::complex<float> *B, const int *ldb, std::complex<float> *alpha, std::complex<float> *beta, std::complex<float> *vl, const int *ldvl, std::complex<float> *vr, const int *ldvr, std::complex<float> *work, const int *lwork, float *rwork, int *info);
629 void PREFIX CGGES_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, int (*ptr2func)(std::complex<float>*, std::complex<float>*), const int* n, std::complex<float>* A, const int* lda, std::complex<float>* B, const int* ldb, int* sdim, std::complex<float>* alpha, std::complex<float>* beta, std::complex<float>* vl, const int* ldvl, std::complex<float>* vr, const int* ldvr, std::complex<float>* work, const int *lwork, float* rwork, int* bwork, int *info);
630 void PREFIX CTGSEN_F77(const int *ijob, const int *wantq, const int *wantz, const int *select, const int *n, std::complex<float>* a, const int *lda, std::complex<float>* b, const int *ldb, std::complex<float>* alpha, std::complex<float>* beta, std::complex<float>* q, const int *ldq, std::complex<float>* z, const int *ldz, int *m, float* pl, float* pr, float* dif, std::complex<float>* work, const int *lwork, int *iwork, const int *liwork, int *info);
631 void PREFIX CGESVD_F77(Teuchos_fcd, Teuchos_fcd, const int* m, const int* n, std::complex<float>* a, const int* lda, float* s, std::complex<float>* u, const int* ldu, std::complex<float>* v, const int* ldv, std::complex<float>* work, const int* lwork, float* rwork, int* info);
632 void PREFIX CGEEVX_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, const int* n, std::complex<float>* a, const int* lda, std::complex<float>* w, std::complex<float>* vl, const int* ldvl, std::complex<float>* vr, const int* ldvr, int* ilo, int* ihi, float* scale, float* abnrm, float* rconde, float* rcondv, std::complex<float>* work, const int* lwork, float* rwork, int* info);
633 void PREFIX CGGEVX_F77(Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, Teuchos_fcd, const int* n, std::complex<float>* a, const int* lda, std::complex<float>* b, const int* ldb, std::complex<float>* alpha, std::complex<float>* beta, std::complex<float>* vl, const int* ldvl, std::complex<float>* vr, const int* ldvr, int* ilo, int* ihi, float* lscale, float* rscale, float* abnrm, float* bbnrm, float* rconde, float* rcondv, std::complex<float>* work, const int* lwork, float* rwork, int* iwork, int* bwork, int* info);
634 void PREFIX CGEHRD_F77(const int* n, const int* ilo, const int* ihi, std::complex<float>* A, const int* lda, std::complex<float>* tau, std::complex<float>* work, const int* lwork, int* info);
635 void PREFIX CHSEQR_F77(Teuchos_fcd job, Teuchos_fcd, const int* n, const int* ilo, const int* ihi, std::complex<float>* h, const int* ldh, std::complex<float>* w, std::complex<float>* z, const int* ldz, std::complex<float>* work, const int* lwork, int* info);
636 void PREFIX CGEES_F77(Teuchos_fcd, Teuchos_fcd, int (*ptr2func)(std::complex<float>*), const int* n, std::complex<float>* a, const int* lda, int* sdim, std::complex<float>* w, std::complex<float>* vs, const int* ldvs, std::complex<float>* work, const int* lwork, float* rwork, int* bwork, int* info);
637  void PREFIX CTREVC_F77(Teuchos_fcd, Teuchos_fcd, int* select, const int* n, const std::complex<float>* t, const int* ldt, std::complex<float>* vl, const int* ldvl, std::complex<float>* vr, const int* ldvr, const int* mm, int* m, std::complex<float>* work, float* rwork, int* info);
638 
639 // note that complex takes const int* for ifst, ilst - float/double types do NOT - they tak int*
640 void PREFIX CTREXC_F77(Teuchos_fcd, const int* n, std::complex<float>* t, const int* ldt, std::complex<float>* q, const int* ldq, const int* ifst, const int* ilst, int* info);
641 
642 void PREFIX CLARTG_F77(const std::complex<float>* f, const std::complex<float>* g, float* c, std::complex<float>* s, std::complex<float>* r);
643 void PREFIX ZLARTG_F77(const std::complex<double>* f, const std::complex<double>* g, double* c, std::complex<double>* s, std::complex<double>* r);
644 
645 void PREFIX CLARFG_F77(const int* n, std::complex<float>* alpha, std::complex<float>* x, const int* incx, std::complex<float>* tau);
646 void PREFIX ZLARFG_F77(const int* n, std::complex<double>* alpha, std::complex<double>* x, const int* incx, std::complex<double>* tau);
647 
648 void PREFIX CGEBAL_F77(Teuchos_fcd, const int* n, std::complex<float>* a, const int* lda, int* ilo, int* ihi, float* scale, int* info);
649 void PREFIX CGEBAK_F77(Teuchos_fcd, Teuchos_fcd, const int* n, const int* ilo, const int* ihi, const float* scale, const int* m, std::complex<float>* V, const int* ldv, int* info);
650 void PREFIX ZGEBAL_F77(Teuchos_fcd, const int* n, std::complex<double>* a, const int* lda, int* ilo, int* ihi, double* scale, int* info);
651 void PREFIX ZGEBAK_F77(Teuchos_fcd, Teuchos_fcd, const int* n, const int* ilo, const int* ihi, const double* scale, const int* m, std::complex<double>* V, const int* ldv, int* info);
652 
653 // Returning the C99 complex type instead of the C++ complex type
654 // avoids build warnings of the following form:
655 //
656 // warning: $FUNCTION_NAME has C-linkage specified, but returns
657 // user-defined type 'std::complex<double>' which is incompatible with
658 // C [-Wreturn-type-c-linkage]
659 //
660 // However, we may only use those types if the C++ compiler supports
661 // them. C++11 implies C99 support generally, so asking whether the
662 // compiler supports C++11 is a reasonable test. Unless you're using
663 // Visual Studio, which supports subsets of C++11, but not this.
664 #if (defined(HAVE_TEUCHOSCORE_CXX11) && !defined(_MSC_VER))
665 float _Complex PREFIX CLARND_F77(const int* idist, int* seed);
666 double _Complex PREFIX ZLARND_F77(const int* idist, int* seed);
667 #else // NOT HAVE_TEUCHOSCORE_CXX11 || _MSC_VER
668 std::complex<float> PREFIX CLARND_F77(const int* idist, int* seed);
669 std::complex<double> PREFIX ZLARND_F77(const int* idist, int* seed);
670 #endif
671 
672 
673 void PREFIX CLARNV_F77(const int* idist, int* seed, const int* n, std::complex<float>* v);
674 void PREFIX ZLARNV_F77(const int* idist, int* seed, const int* n, std::complex<double>* v);
675 
676 #endif /* HAVE_TEUCHOS_COMPLEX */
677 
678 #ifdef __cplusplus
679 }
680 #endif
681 
682 /* Don't leave a global macros called PREFIX or Teuchos_fcd laying around */
683 
684 #ifdef PREFIX
685 # undef PREFIX
686 #endif
687 
688 #ifdef Teuchos_fcd
689 # undef Teuchos_fcd
690 #endif
691 
692 #endif // end of TEUCHOS_LAPACK_WRAPPERS_HPP_
#define SGEQP3_F77
#define SGGLSE_F77
#define SLARNV_F77
#define PREFIX
#define SGESVD_F77
#define DPOTRF_F77
#define DLAPY2_F77
#define SLAMCH_F77
#define STRSEN_F77
#define SPOTRI_F77
#define DTRTRI_F77
#define SGESVX_F77
#define DLARNV_F77
#define DTREVC_F77
#define DGETRF_F77
#define DPOSV_F77
#define STREVC_F77
#define STGSEN_F77
#define SGESV_F77
#define SGEBAK_F77
#define SORGQR_F77
#define DGGLSE_F77
#define SPTTRF_F77
#define DPTTRF_F77
#define SPTTRS_F77
#define DGEQP3_F77
#define DLANGB_F77
#define DTRSEN_F77
#define SGTTRS_F77
#define DGGEVX_F77
#define STGEVC_F77
#define DGESVX_F77
#define ILAENV_F77
#define DTGSEN_F77
#define SGERFS_F77
#define DGEEV_F77
#define SLANGB_F77
Teuchos header file which uses auto-configuration information to include necessary C++ headers...
int rank(const Comm< Ordinal > &comm)
Get the process rank.
#define SLASWP_F77
#define DLASCL_F77
#define SPOCON_F77
#define DORMQR_F77
#define SGBRFS_F77
#define DHSEQR_F77
#define DGEES_F77
#define DGERFS_F77
#define DLAMCH_F77
#define SGEBAL_F77
#define SGELSS_F77
#define Teuchos_fcd
#define SPTEQR_F77
#define SORM2R_F77
#define DGBCON_F77
#define DTRTRS_F77
#define DPTEQR_F77
#define SGEHRD_F77
#define DORM2R_F77
#define DGEBAK_F77
#define SGGES_F77
#define SGEQR2_F77
#define SPOSV_F77
#define DGELS_F77
#define SPOSVX_F77
#define SGEEVX_F77
#define SPOEQU_F77
#define DGBRFS_F77
#define SLARND_F77
#define SGTTRF_F77
#define DPORFS_F77
#define DLATRS_F77
#define STRTRS_F77
#define DPOEQU_F77
#define SGEEQU_F77
#define SORMHR_F77
#define SGGEV_F77
#define DTREXC_F77
#define DSYTRD_F77
#define DLARFG_F77
#define SGEES_F77
#define SLATRS_F77
#define DORGHR_F77
#define SGETRS_F77
#define DGEEVX_F77
#define DGGES_F77
#define DLARTG_F77
#define SPORFS_F77
#define DGGEV_F77
#define DLARND_F77
#define DSTEQR_F77
#define SGGEVX_F77
#define SGBCON_F77
#define SGBEQU_F77
#define SGBTRF_F77
#define DSYGV_F77
#define SSYEV_F77
#define DGEBAL_F77
#define SSTEQR_F77
#define STRTRI_F77
#define SLARFG_F77
#define SGETRF_F77
#define SGEEV_F77
#define DPOSVX_F77
#define DGESVD_F77
#define DLASWP_F77
#define DTGEVC_F77
#define DGEQRF_F77
#define SGETRI_F77
#define SGECON_F77
#define SGEQRF_F77
#define DGESV_F77
#define DGELSS_F77
#define SLASCL_F77
#define DORGQR_F77
#define DPOTRI_F77
#define SLARTG_F77
#define SORGHR_F77
#define DPTTRS_F77
#define DGBTRF_F77
#define DPOCON_F77
#define SGBTRS_F77
#define DGEHRD_F77
#define DGETRI_F77
#define SGELS_F77
#define SORMQR_F77
#define DGEEQU_F77
#define DSPEV_F77
#define DGETRS_F77
#define DGTTRF_F77
#define DORMHR_F77
#define SPOTRF_F77
#define STREXC_F77
#define DGECON_F77
#define DGBTRS_F77
#define DGTTRS_F77
#define SSYGV_F77
#define SSPEV_F77
#define DGBEQU_F77
#define DGEQR2_F77
#define SHSEQR_F77
#define DSYEV_F77
#define SPOTRS_F77
#define SSYTRD_F77
#define DPOTRS_F77
#define Teuchos_nonconst_fcd