Mercurial > hg > segmenter-vamp-plugin
comparison armadillo-3.900.4/src/wrap_libs.cpp @ 49:1ec0e2823891
Switch to using subrepo copies of qm-dsp, nnls-chroma, vamp-plugin-sdk; update Armadillo version; assume build without external BLAS/LAPACK
author | Chris Cannam |
---|---|
date | Thu, 13 Jun 2013 10:25:24 +0100 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
48:69251e11a913 | 49:1ec0e2823891 |
---|---|
1 #include "armadillo_bits/config.hpp" | |
2 #include "armadillo_bits/typedef_blas_int.hpp" | |
3 | |
4 #undef ARMA_USE_WRAPPER | |
5 #include "armadillo_bits/compiler_setup.hpp" | |
6 | |
7 #include "armadillo_bits/undefine_conflicts.hpp" | |
8 #include "armadillo_bits/include_atlas.hpp" | |
9 | |
10 | |
11 namespace arma | |
12 { | |
13 | |
14 #include "armadillo_bits/blas_bones.hpp" | |
15 #include "armadillo_bits/lapack_bones.hpp" | |
16 | |
17 // at this stage we have prototypes for the real blas, lapack and atlas functions | |
18 | |
19 // now we make the wrapper functions | |
20 | |
21 | |
22 extern "C" | |
23 { | |
24 #if defined(ARMA_USE_BLAS) | |
25 | |
26 float arma_fortran_prefix(arma_sdot)(blas_int* n, const float* x, blas_int* incx, const float* y, blas_int* incy) | |
27 { | |
28 return arma_fortran_noprefix(arma_sdot)(n, x, incx, y, incy); | |
29 } | |
30 | |
31 double arma_fortran_prefix(arma_ddot)(blas_int* n, const double* x, blas_int* incx, const double* y, blas_int* incy) | |
32 { | |
33 return arma_fortran_noprefix(arma_ddot)(n, x, incx, y, incy); | |
34 } | |
35 | |
36 | |
37 | |
38 void arma_fortran_prefix(arma_sgemv)(const char* transA, const blas_int* m, const blas_int* n, const float* alpha, const float* A, const blas_int* ldA, const float* x, const blas_int* incx, const float* beta, float* y, const blas_int* incy) | |
39 { | |
40 arma_fortran_noprefix(arma_sgemv)(transA, m, n, alpha, A, ldA, x, incx, beta, y, incy); | |
41 } | |
42 | |
43 void arma_fortran_prefix(arma_dgemv)(const char* transA, const blas_int* m, const blas_int* n, const double* alpha, const double* A, const blas_int* ldA, const double* x, const blas_int* incx, const double* beta, double* y, const blas_int* incy) | |
44 { | |
45 arma_fortran_noprefix(arma_dgemv)(transA, m, n, alpha, A, ldA, x, incx, beta, y, incy); | |
46 } | |
47 | |
48 void arma_fortran_prefix(arma_cgemv)(const char* transA, const blas_int* m, const blas_int* n, const void* alpha, const void* A, const blas_int* ldA, const void* x, const blas_int* incx, const void* beta, void* y, const blas_int* incy) | |
49 { | |
50 arma_fortran_noprefix(arma_cgemv)(transA, m, n, alpha, A, ldA, x, incx, beta, y, incy); | |
51 } | |
52 | |
53 void arma_fortran_prefix(arma_zgemv)(const char* transA, const blas_int* m, const blas_int* n, const void* alpha, const void* A, const blas_int* ldA, const void* x, const blas_int* incx, const void* beta, void* y, const blas_int* incy) | |
54 { | |
55 arma_fortran_noprefix(arma_zgemv)(transA, m, n, alpha, A, ldA, x, incx, beta, y, incy); | |
56 } | |
57 | |
58 | |
59 | |
60 void arma_fortran_prefix(arma_sgemm)(const char* transA, const char* transB, const blas_int* m, const blas_int* n, const blas_int* k, const float* alpha, const float* A, const blas_int* ldA, const float* B, const blas_int* ldB, const float* beta, float* C, const blas_int* ldC) | |
61 { | |
62 arma_fortran_noprefix(arma_sgemm)(transA, transB, m, n, k, alpha, A, ldA, B, ldB, beta, C, ldC); | |
63 } | |
64 | |
65 void arma_fortran_prefix(arma_dgemm)(const char* transA, const char* transB, const blas_int* m, const blas_int* n, const blas_int* k, const double* alpha, const double* A, const blas_int* ldA, const double* B, const blas_int* ldB, const double* beta, double* C, const blas_int* ldC) | |
66 { | |
67 arma_fortran_noprefix(arma_dgemm)(transA, transB, m, n, k, alpha, A, ldA, B, ldB, beta, C, ldC); | |
68 } | |
69 | |
70 void arma_fortran_prefix(arma_cgemm)(const char* transA, const char* transB, const blas_int* m, const blas_int* n, const blas_int* k, const void* alpha, const void* A, const blas_int* ldA, const void* B, const blas_int* ldB, const void* beta, void* C, const blas_int* ldC) | |
71 { | |
72 arma_fortran_noprefix(arma_cgemm)(transA, transB, m, n, k, alpha, A, ldA, B, ldB, beta, C, ldC); | |
73 } | |
74 | |
75 void arma_fortran_prefix(arma_zgemm)(const char* transA, const char* transB, const blas_int* m, const blas_int* n, const blas_int* k, const void* alpha, const void* A, const blas_int* ldA, const void* B, const blas_int* ldB, const void* beta, void* C, const blas_int* ldC) | |
76 { | |
77 arma_fortran_noprefix(arma_zgemm)(transA, transB, m, n, k, alpha, A, ldA, B, ldB, beta, C, ldC); | |
78 } | |
79 | |
80 #endif | |
81 | |
82 | |
83 | |
84 #if defined(ARMA_USE_LAPACK) | |
85 | |
86 void arma_fortran_prefix(arma_sgetrf)(blas_int* m, blas_int* n, float* a, blas_int* lda, blas_int* ipiv, blas_int* info) | |
87 { | |
88 arma_fortran_noprefix(arma_sgetrf)(m, n, a, lda, ipiv, info); | |
89 } | |
90 | |
91 void arma_fortran_prefix(arma_dgetrf)(blas_int* m, blas_int* n, double* a, blas_int* lda, blas_int* ipiv, blas_int* info) | |
92 { | |
93 arma_fortran_noprefix(arma_dgetrf)(m, n, a, lda, ipiv, info); | |
94 } | |
95 | |
96 void arma_fortran_prefix(arma_cgetrf)(blas_int* m, blas_int* n, void* a, blas_int* lda, blas_int* ipiv, blas_int* info) | |
97 { | |
98 arma_fortran_noprefix(arma_cgetrf)(m, n, a, lda, ipiv, info); | |
99 } | |
100 | |
101 void arma_fortran_prefix(arma_zgetrf)(blas_int* m, blas_int* n, void* a, blas_int* lda, blas_int* ipiv, blas_int* info) | |
102 { | |
103 arma_fortran_noprefix(arma_zgetrf)(m, n, a, lda, ipiv, info); | |
104 } | |
105 | |
106 | |
107 | |
108 void arma_fortran_prefix(arma_sgetri)(blas_int* n, float* a, blas_int* lda, blas_int* ipiv, float* work, blas_int* lwork, blas_int* info) | |
109 { | |
110 arma_fortran_noprefix(arma_sgetri)(n, a, lda, ipiv, work, lwork, info); | |
111 } | |
112 | |
113 void arma_fortran_prefix(arma_dgetri)(blas_int* n, double* a, blas_int* lda, blas_int* ipiv, double* work, blas_int* lwork, blas_int* info) | |
114 { | |
115 arma_fortran_noprefix(arma_dgetri)(n, a, lda, ipiv, work, lwork, info); | |
116 } | |
117 | |
118 void arma_fortran_prefix(arma_cgetri)(blas_int* n, void* a, blas_int* lda, blas_int* ipiv, void* work, blas_int* lwork, blas_int* info) | |
119 { | |
120 arma_fortran_noprefix(arma_cgetri)(n, a, lda, ipiv, work, lwork, info); | |
121 } | |
122 | |
123 void arma_fortran_prefix(arma_zgetri)(blas_int* n, void* a, blas_int* lda, blas_int* ipiv, void* work, blas_int* lwork, blas_int* info) | |
124 { | |
125 arma_fortran_noprefix(arma_zgetri)(n, a, lda, ipiv, work, lwork, info); | |
126 } | |
127 | |
128 | |
129 | |
130 void arma_fortran_prefix(arma_strtri)(char* uplo, char* diag, blas_int* n, float* a, blas_int* lda, blas_int* info) | |
131 { | |
132 arma_fortran_noprefix(arma_strtri)(uplo, diag, n, a, lda, info); | |
133 } | |
134 | |
135 void arma_fortran_prefix(arma_dtrtri)(char* uplo, char* diag, blas_int* n, double* a, blas_int* lda, blas_int* info) | |
136 { | |
137 arma_fortran_noprefix(arma_dtrtri)(uplo, diag, n, a, lda, info); | |
138 } | |
139 | |
140 void arma_fortran_prefix(arma_ctrtri)(char* uplo, char* diag, blas_int* n, void* a, blas_int* lda, blas_int* info) | |
141 { | |
142 arma_fortran_noprefix(arma_ctrtri)(uplo, diag, n, a, lda, info); | |
143 } | |
144 | |
145 void arma_fortran_prefix(arma_ztrtri)(char* uplo, char* diag, blas_int* n, void* a, blas_int* lda, blas_int* info) | |
146 { | |
147 arma_fortran_noprefix(arma_ztrtri)(uplo, diag, n, a, lda, info); | |
148 } | |
149 | |
150 | |
151 | |
152 void arma_fortran_prefix(arma_ssyev)(char* jobz, char* uplo, blas_int* n, float* a, blas_int* lda, float* w, float* work, blas_int* lwork, blas_int* info) | |
153 { | |
154 arma_fortran_noprefix(arma_ssyev)(jobz, uplo, n, a, lda, w, work, lwork, info); | |
155 } | |
156 | |
157 void arma_fortran_prefix(arma_dsyev)(char* jobz, char* uplo, blas_int* n, double* a, blas_int* lda, double* w, double* work, blas_int* lwork, blas_int* info) | |
158 { | |
159 arma_fortran_noprefix(arma_dsyev)(jobz, uplo, n, a, lda, w, work, lwork, info); | |
160 } | |
161 | |
162 | |
163 | |
164 void arma_fortran_prefix(arma_cheev)(char* jobz, char* uplo, blas_int* n, void* a, blas_int* lda, float* w, void* work, blas_int* lwork, float* rwork, blas_int* info) | |
165 { | |
166 arma_fortran_noprefix(arma_cheev)(jobz, uplo, n, a, lda, w, work, lwork, rwork, info); | |
167 } | |
168 | |
169 void arma_fortran_prefix(arma_zheev)(char* jobz, char* uplo, blas_int* n, void* a, blas_int* lda, double* w, void* work, blas_int* lwork, double* rwork, blas_int* info) | |
170 { | |
171 arma_fortran_noprefix(arma_zheev)(jobz, uplo, n, a, lda, w, work, lwork, rwork, info); | |
172 } | |
173 | |
174 | |
175 | |
176 void arma_fortran_prefix(arma_ssyevd)(char* jobz, char* uplo, blas_int* n, float* a, blas_int* lda, float* w, float* work, blas_int* lwork, blas_int* iwork, blas_int* liwork, blas_int* info) | |
177 { | |
178 arma_fortran_noprefix(arma_ssyevd)(jobz, uplo, n, a, lda, w, work, lwork, iwork, liwork, info); | |
179 } | |
180 | |
181 void arma_fortran_prefix(arma_dsyevd)(char* jobz, char* uplo, blas_int* n, double* a, blas_int* lda, double* w, double* work, blas_int* lwork, blas_int* iwork, blas_int* liwork, blas_int* info) | |
182 { | |
183 arma_fortran_noprefix(arma_dsyevd)(jobz, uplo, n, a, lda, w, work, lwork, iwork, liwork, info); | |
184 } | |
185 | |
186 | |
187 | |
188 void arma_fortran_prefix(arma_cheevd)(char* jobz, char* uplo, blas_int* n, void* a, blas_int* lda, float* w, void* work, blas_int* lwork, float* rwork, blas_int* lrwork, blas_int* iwork, blas_int* liwork, blas_int* info) | |
189 { | |
190 arma_fortran_noprefix(arma_cheevd)(jobz, uplo, n, a, lda, w, work, lwork, rwork, lrwork, iwork, liwork, info); | |
191 } | |
192 | |
193 void arma_fortran_prefix(arma_zheevd)(char* jobz, char* uplo, blas_int* n, void* a, blas_int* lda, double* w, void* work, blas_int* lwork, double* rwork, blas_int* lrwork, blas_int* iwork, blas_int* liwork, blas_int* info) | |
194 { | |
195 arma_fortran_noprefix(arma_zheevd)(jobz, uplo, n, a, lda, w, work, lwork, rwork, lrwork, iwork, liwork, info); | |
196 } | |
197 | |
198 | |
199 | |
200 void arma_fortran_prefix(arma_sgeev)(char* jobvl, char* jobvr, blas_int* n, float* a, blas_int* lda, float* wr, float* wi, float* vl, blas_int* ldvl, float* vr, blas_int* ldvr, float* work, blas_int* lwork, blas_int* info) | |
201 { | |
202 arma_fortran_noprefix(arma_sgeev)(jobvl, jobvr, n, a, lda, wr, wi, vl, ldvl, vr, ldvr, work, lwork, info); | |
203 } | |
204 | |
205 void arma_fortran_prefix(arma_dgeev)(char* jobvl, char* jobvr, blas_int* n, double* a, blas_int* lda, double* wr, double* wi, double* vl, blas_int* ldvl, double* vr, blas_int* ldvr, double* work, blas_int* lwork, blas_int* info) | |
206 { | |
207 arma_fortran_noprefix(arma_dgeev)(jobvl, jobvr, n, a, lda, wr, wi, vl, ldvl, vr, ldvr, work, lwork, info); | |
208 } | |
209 | |
210 | |
211 | |
212 void arma_fortran_prefix(arma_cgeev)(char* jobvl, char* jobvr, blas_int* n, void* a, blas_int* lda, void* w, void* vl, blas_int* ldvl, void* vr, blas_int* ldvr, void* work, blas_int* lwork, float* rwork, blas_int* info) | |
213 { | |
214 arma_fortran_noprefix(arma_cgeev)(jobvl, jobvr, n, a, lda, w, vl, ldvl, vr, ldvr, work, lwork, rwork, info); | |
215 } | |
216 | |
217 void arma_fortran_prefix(arma_zgeev)(char* jobvl, char* jobvr, blas_int* n, void* a, blas_int* lda, void* w, void* vl, blas_int* ldvl, void* vr, blas_int* ldvr, void* work, blas_int* lwork, double* rwork, blas_int* info) | |
218 { | |
219 arma_fortran_noprefix(arma_zgeev)(jobvl, jobvr, n, a, lda, w, vl, ldvl, vr, ldvr, work, lwork, rwork, info); | |
220 } | |
221 | |
222 | |
223 | |
224 void arma_fortran_prefix(arma_spotrf)(char* uplo, blas_int* n, float* a, blas_int* lda, blas_int* info) | |
225 { | |
226 arma_fortran_noprefix(arma_spotrf)(uplo, n, a, lda, info); | |
227 } | |
228 | |
229 void arma_fortran_prefix(arma_dpotrf)(char* uplo, blas_int* n, double* a, blas_int* lda, blas_int* info) | |
230 { | |
231 arma_fortran_noprefix(arma_dpotrf)(uplo, n, a, lda, info); | |
232 } | |
233 | |
234 void arma_fortran_prefix(arma_cpotrf)(char* uplo, blas_int* n, void* a, blas_int* lda, blas_int* info) | |
235 { | |
236 arma_fortran_noprefix(arma_cpotrf)(uplo, n, a, lda, info); | |
237 } | |
238 | |
239 void arma_fortran_prefix(arma_zpotrf)(char* uplo, blas_int* n, void* a, blas_int* lda, blas_int* info) | |
240 { | |
241 arma_fortran_noprefix(arma_zpotrf)(uplo, n, a, lda, info); | |
242 } | |
243 | |
244 | |
245 | |
246 void arma_fortran_prefix(arma_spotri)(char* uplo, blas_int* n, float* a, blas_int* lda, blas_int* info) | |
247 { | |
248 arma_fortran_noprefix(arma_spotri)(uplo, n, a, lda, info); | |
249 } | |
250 | |
251 void arma_fortran_prefix(arma_dpotri)(char* uplo, blas_int* n, double* a, blas_int* lda, blas_int* info) | |
252 { | |
253 arma_fortran_noprefix(arma_dpotri)(uplo, n, a, lda, info); | |
254 } | |
255 | |
256 void arma_fortran_prefix(arma_cpotri)(char* uplo, blas_int* n, void* a, blas_int* lda, blas_int* info) | |
257 { | |
258 arma_fortran_noprefix(arma_cpotri)(uplo, n, a, lda, info); | |
259 } | |
260 | |
261 void arma_fortran_prefix(arma_zpotri)(char* uplo, blas_int* n, void* a, blas_int* lda, blas_int* info) | |
262 { | |
263 arma_fortran_noprefix(arma_zpotri)(uplo, n, a, lda, info); | |
264 } | |
265 | |
266 | |
267 | |
268 void arma_fortran_prefix(arma_sgeqrf)(blas_int* m, blas_int* n, float* a, blas_int* lda, float* tau, float* work, blas_int* lwork, blas_int* info) | |
269 { | |
270 arma_fortran_noprefix(arma_sgeqrf)(m, n, a, lda, tau, work, lwork, info); | |
271 } | |
272 | |
273 void arma_fortran_prefix(arma_dgeqrf)(blas_int* m, blas_int* n, double* a, blas_int* lda, double* tau, double* work, blas_int* lwork, blas_int* info) | |
274 { | |
275 arma_fortran_noprefix(arma_dgeqrf)(m, n, a, lda, tau, work, lwork, info); | |
276 } | |
277 | |
278 void arma_fortran_prefix(arma_cgeqrf)(blas_int* m, blas_int* n, void* a, blas_int* lda, void* tau, void* work, blas_int* lwork, blas_int* info) | |
279 { | |
280 arma_fortran_noprefix(arma_cgeqrf)(m, n, a, lda, tau, work, lwork, info); | |
281 } | |
282 | |
283 void arma_fortran_prefix(arma_zgeqrf)(blas_int* m, blas_int* n, void* a, blas_int* lda, void* tau, void* work, blas_int* lwork, blas_int* info) | |
284 { | |
285 arma_fortran_noprefix(arma_zgeqrf)(m, n, a, lda, tau, work, lwork, info); | |
286 } | |
287 | |
288 | |
289 | |
290 void arma_fortran_prefix(arma_sorgqr)(blas_int* m, blas_int* n, blas_int* k, float* a, blas_int* lda, float* tau, float* work, blas_int* lwork, blas_int* info) | |
291 { | |
292 arma_fortran_noprefix(arma_sorgqr)(m, n, k, a, lda, tau, work, lwork, info); | |
293 } | |
294 | |
295 void arma_fortran_prefix(arma_dorgqr)(blas_int* m, blas_int* n, blas_int* k, double* a, blas_int* lda, double* tau, double* work, blas_int* lwork, blas_int* info) | |
296 { | |
297 arma_fortran_noprefix(arma_dorgqr)(m, n, k, a, lda, tau, work, lwork, info); | |
298 } | |
299 | |
300 | |
301 | |
302 void arma_fortran_prefix(arma_cungqr)(blas_int* m, blas_int* n, blas_int* k, void* a, blas_int* lda, void* tau, void* work, blas_int* lwork, blas_int* info) | |
303 { | |
304 arma_fortran_noprefix(arma_cungqr)(m, n, k, a, lda, tau, work, lwork, info); | |
305 } | |
306 | |
307 void arma_fortran_prefix(arma_zungqr)(blas_int* m, blas_int* n, blas_int* k, void* a, blas_int* lda, void* tau, void* work, blas_int* lwork, blas_int* info) | |
308 { | |
309 arma_fortran_noprefix(arma_zungqr)(m, n, k, a, lda, tau, work, lwork, info); | |
310 } | |
311 | |
312 | |
313 | |
314 void arma_fortran_prefix(arma_sgesvd)(char* jobu, char* jobvt, blas_int* m, blas_int* n, float* a, blas_int* lda, float* s, float* u, blas_int* ldu, float* vt, blas_int* ldvt, float* work, blas_int* lwork, blas_int* info) | |
315 { | |
316 arma_fortran_noprefix(arma_sgesvd)(jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, info); | |
317 } | |
318 | |
319 void arma_fortran_prefix(arma_dgesvd)(char* jobu, char* jobvt, blas_int* m, blas_int* n, double* a, blas_int* lda, double* s, double* u, blas_int* ldu, double* vt, blas_int* ldvt, double* work, blas_int* lwork, blas_int* info) | |
320 { | |
321 arma_fortran_noprefix(arma_dgesvd)(jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, info); | |
322 } | |
323 | |
324 | |
325 | |
326 void arma_fortran_prefix(arma_cgesvd)(char* jobu, char* jobvt, blas_int* m, blas_int* n, void* a, blas_int* lda, float* s, void* u, blas_int* ldu, void* vt, blas_int* ldvt, void* work, blas_int* lwork, float* rwork, blas_int* info) | |
327 { | |
328 arma_fortran_noprefix(arma_cgesvd)(jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, info); | |
329 } | |
330 | |
331 void arma_fortran_prefix(arma_zgesvd)(char* jobu, char* jobvt, blas_int* m, blas_int* n, void* a, blas_int* lda, double* s, void* u, blas_int* ldu, void* vt, blas_int* ldvt, void* work, blas_int* lwork, double* rwork, blas_int* info) | |
332 { | |
333 arma_fortran_noprefix(arma_zgesvd)(jobu, jobvt, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, info); | |
334 } | |
335 | |
336 | |
337 | |
338 void arma_fortran_prefix(arma_sgesdd)(char* jobz, blas_int* m, blas_int* n, float* a, blas_int* lda, float* s, float* u, blas_int* ldu, float* vt, blas_int* ldvt, float* work, blas_int* lwork, blas_int* iwork, blas_int* info) | |
339 { | |
340 arma_fortran_noprefix(arma_sgesdd)(jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, iwork, info); | |
341 } | |
342 | |
343 void arma_fortran_prefix(arma_dgesdd)(char* jobz, blas_int* m, blas_int* n, double* a, blas_int* lda, double* s, double* u, blas_int* ldu, double* vt, blas_int* ldvt, double* work, blas_int* lwork, blas_int* iwork, blas_int* info) | |
344 { | |
345 arma_fortran_noprefix(arma_dgesdd)(jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, iwork, info); | |
346 } | |
347 | |
348 | |
349 | |
350 void arma_fortran_prefix(arma_cgesdd)(char* jobz, blas_int* m, blas_int* n, void* a, blas_int* lda, float* s, void* u, blas_int* ldu, void* vt, blas_int* ldvt, void* work, blas_int* lwork, float* rwork, blas_int* iwork, blas_int* info) | |
351 { | |
352 arma_fortran_noprefix(arma_cgesdd)(jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, iwork, info); | |
353 } | |
354 | |
355 void arma_fortran_prefix(arma_zgesdd)(char* jobz, blas_int* m, blas_int* n, void* a, blas_int* lda, double* s, void* u, blas_int* ldu, void* vt, blas_int* ldvt, void* work, blas_int* lwork, double* rwork, blas_int* iwork, blas_int* info) | |
356 { | |
357 arma_fortran_noprefix(arma_zgesdd)(jobz, m, n, a, lda, s, u, ldu, vt, ldvt, work, lwork, rwork, iwork, info); | |
358 } | |
359 | |
360 | |
361 | |
362 void arma_fortran_prefix(arma_sgesv)(blas_int* n, blas_int* nrhs, float* a, blas_int* lda, blas_int* ipiv, float* b, blas_int* ldb, blas_int* info) | |
363 { | |
364 arma_fortran_noprefix(arma_sgesv)(n, nrhs, a, lda, ipiv, b, ldb, info); | |
365 } | |
366 | |
367 void arma_fortran_prefix(arma_dgesv)(blas_int* n, blas_int* nrhs, double* a, blas_int* lda, blas_int* ipiv, double* b, blas_int* ldb, blas_int* info) | |
368 { | |
369 arma_fortran_noprefix(arma_dgesv)(n, nrhs, a, lda, ipiv, b, ldb, info); | |
370 } | |
371 | |
372 void arma_fortran_prefix(arma_cgesv)(blas_int* n, blas_int* nrhs, void* a, blas_int* lda, blas_int* ipiv, void* b, blas_int* ldb, blas_int* info) | |
373 { | |
374 arma_fortran_noprefix(arma_cgesv)(n, nrhs, a, lda, ipiv, b, ldb, info); | |
375 } | |
376 | |
377 void arma_fortran_prefix(arma_zgesv)(blas_int* n, blas_int* nrhs, void* a, blas_int* lda, blas_int* ipiv, void* b, blas_int* ldb, blas_int* info) | |
378 { | |
379 arma_fortran_noprefix(arma_zgesv)(n, nrhs, a, lda, ipiv, b, ldb, info); | |
380 } | |
381 | |
382 | |
383 | |
384 void arma_fortran_prefix(arma_sgels)(char* trans, blas_int* m, blas_int* n, blas_int* nrhs, float* a, blas_int* lda, float* b, blas_int* ldb, float* work, blas_int* lwork, blas_int* info) | |
385 { | |
386 arma_fortran_noprefix(arma_sgels)(trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info); | |
387 } | |
388 | |
389 void arma_fortran_prefix(arma_dgels)(char* trans, blas_int* m, blas_int* n, blas_int* nrhs, double* a, blas_int* lda, double* b, blas_int* ldb, double* work, blas_int* lwork, blas_int* info) | |
390 { | |
391 arma_fortran_noprefix(arma_dgels)(trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info); | |
392 } | |
393 | |
394 void arma_fortran_prefix(arma_cgels)(char* trans, blas_int* m, blas_int* n, blas_int* nrhs, void* a, blas_int* lda, void* b, blas_int* ldb, void* work, blas_int* lwork, blas_int* info) | |
395 { | |
396 arma_fortran_noprefix(arma_cgels)(trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info); | |
397 } | |
398 | |
399 void arma_fortran_prefix(arma_zgels)(char* trans, blas_int* m, blas_int* n, blas_int* nrhs, void* a, blas_int* lda, void* b, blas_int* ldb, void* work, blas_int* lwork, blas_int* info) | |
400 { | |
401 arma_fortran_noprefix(arma_zgels)(trans, m, n, nrhs, a, lda, b, ldb, work, lwork, info); | |
402 } | |
403 | |
404 | |
405 | |
406 | |
407 void arma_fortran_prefix(arma_strtrs)(char* uplo, char* trans, char* diag, blas_int* n, blas_int* nrhs, const float* a, blas_int* lda, float* b, blas_int* ldb, blas_int* info) | |
408 { | |
409 arma_fortran_noprefix(arma_strtrs)(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info); | |
410 } | |
411 | |
412 void arma_fortran_prefix(arma_dtrtrs)(char* uplo, char* trans, char* diag, blas_int* n, blas_int* nrhs, const double* a, blas_int* lda, double* b, blas_int* ldb, blas_int* info) | |
413 { | |
414 arma_fortran_noprefix(arma_dtrtrs)(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info); | |
415 } | |
416 | |
417 void arma_fortran_prefix(arma_ctrtrs)(char* uplo, char* trans, char* diag, blas_int* n, blas_int* nrhs, const void* a, blas_int* lda, void* b, blas_int* ldb, blas_int* info) | |
418 { | |
419 arma_fortran_noprefix(arma_ctrtrs)(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info); | |
420 } | |
421 | |
422 void arma_fortran_prefix(arma_ztrtrs)(char* uplo, char* trans, char* diag, blas_int* n, blas_int* nrhs, const void* a, blas_int* lda, void* b, blas_int* ldb, blas_int* info) | |
423 { | |
424 arma_fortran_noprefix(arma_ztrtrs)(uplo, trans, diag, n, nrhs, a, lda, b, ldb, info); | |
425 } | |
426 | |
427 | |
428 | |
429 | |
430 void arma_fortran_prefix(arma_sgees)(char* jobvs, char* sort, blas_int* select, blas_int* n, float* a, blas_int* lda, blas_int* sdim, float* wr, float* wi, float* vs, blas_int* ldvs, float* work, blas_int* lwork, blas_int* bwork, blas_int* info) | |
431 { | |
432 arma_fortran_noprefix(arma_sgees)(jobvs, sort, select, n, a, lda, sdim, wr, wi, vs, ldvs, work, lwork, bwork, info); | |
433 } | |
434 | |
435 void arma_fortran_prefix(arma_dgees)(char* jobvs, char* sort, blas_int* select, blas_int* n, double* a, blas_int* lda, blas_int* sdim, double* wr, double* wi, double* vs, blas_int* ldvs, double* work, blas_int* lwork, blas_int* bwork, blas_int* info) | |
436 { | |
437 arma_fortran_noprefix(arma_dgees)(jobvs, sort, select, n, a, lda, sdim, wr, wi, vs, ldvs, work, lwork, bwork, info); | |
438 } | |
439 | |
440 | |
441 | |
442 void arma_fortran_prefix(arma_cgees)(char* jobvs, char* sort, blas_int* select, blas_int* n, void* a, blas_int* lda, blas_int* sdim, void* w, void* vs, blas_int* ldvs, void* work, blas_int* lwork, float* rwork, blas_int* bwork, blas_int* info) | |
443 { | |
444 arma_fortran_noprefix(arma_cgees)(jobvs, sort, select, n, a, lda, sdim, w, vs, ldvs, work, lwork, rwork, bwork, info); | |
445 } | |
446 | |
447 void arma_fortran_prefix(arma_zgees)(char* jobvs, char* sort, blas_int* select, blas_int* n, void* a, blas_int* lda, blas_int* sdim, void* w, void* vs, blas_int* ldvs, void* work, blas_int* lwork, double* rwork, blas_int* bwork, blas_int* info) | |
448 { | |
449 arma_fortran_noprefix(arma_zgees)(jobvs, sort, select, n, a, lda, sdim, w, vs, ldvs, work, lwork, rwork, bwork, info); | |
450 } | |
451 | |
452 | |
453 | |
454 void arma_fortran_prefix(arma_strsyl)(char* transa, char* transb, blas_int* isgn, blas_int* m, blas_int* n, const float* a, blas_int* lda, const float* b, blas_int* ldb, float* c, blas_int* ldc, float* scale, blas_int* info) | |
455 { | |
456 arma_fortran_noprefix(arma_strsyl)(transa, transb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info); | |
457 } | |
458 | |
459 void arma_fortran_prefix(arma_dtrsyl)(char* transa, char* transb, blas_int* isgn, blas_int* m, blas_int* n, const double* a, blas_int* lda, const double* b, blas_int* ldb, double* c, blas_int* ldc, double* scale, blas_int* info) | |
460 { | |
461 arma_fortran_noprefix(arma_dtrsyl)(transa, transb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info); | |
462 } | |
463 | |
464 void arma_fortran_prefix(arma_ctrsyl)(char* transa, char* transb, blas_int* isgn, blas_int* m, blas_int* n, const void* a, blas_int* lda, const void* b, blas_int* ldb, void* c, blas_int* ldc, float* scale, blas_int* info) | |
465 { | |
466 arma_fortran_noprefix(arma_ctrsyl)(transa, transb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info); | |
467 } | |
468 | |
469 void arma_fortran_prefix(arma_ztrsyl)(char* transa, char* transb, blas_int* isgn, blas_int* m, blas_int* n, const void* a, blas_int* lda, const void* b, blas_int* ldb, void* c, blas_int* ldc, double* scale, blas_int* info) | |
470 { | |
471 arma_fortran_noprefix(arma_ztrsyl)(transa, transb, isgn, m, n, a, lda, b, ldb, c, ldc, scale, info); | |
472 } | |
473 | |
474 | |
475 | |
476 | |
477 void arma_fortran_prefix(arma_ssytrf)(char* uplo, blas_int* n, float* a, blas_int* lda, blas_int* ipiv, float* work, blas_int* lwork, blas_int* info) | |
478 { | |
479 arma_fortran_noprefix(arma_ssytrf)(uplo, n, a, lda, ipiv, work, lwork, info); | |
480 } | |
481 | |
482 void arma_fortran_prefix(arma_dsytrf)(char* uplo, blas_int* n, double* a, blas_int* lda, blas_int* ipiv, double* work, blas_int* lwork, blas_int* info) | |
483 { | |
484 arma_fortran_noprefix(arma_dsytrf)(uplo, n, a, lda, ipiv, work, lwork, info); | |
485 } | |
486 | |
487 void arma_fortran_prefix(arma_csytrf)(char* uplo, blas_int* n, void* a, blas_int* lda, blas_int* ipiv, void* work, blas_int* lwork, blas_int* info) | |
488 { | |
489 arma_fortran_noprefix(arma_csytrf)(uplo, n, a, lda, ipiv, work, lwork, info); | |
490 } | |
491 | |
492 void arma_fortran_prefix(arma_zsytrf)(char* uplo, blas_int* n, void* a, blas_int* lda, blas_int* ipiv, void* work, blas_int* lwork, blas_int* info) | |
493 { | |
494 arma_fortran_noprefix(arma_zsytrf)(uplo, n, a, lda, ipiv, work, lwork, info); | |
495 } | |
496 | |
497 | |
498 | |
499 | |
500 void arma_fortran_prefix(arma_ssytri)(char* uplo, blas_int* n, float* a, blas_int* lda, blas_int* ipiv, float* work, blas_int* info) | |
501 { | |
502 arma_fortran_noprefix(arma_ssytri)(uplo, n, a, lda, ipiv, work, info); | |
503 } | |
504 | |
505 void arma_fortran_prefix(arma_dsytri)(char* uplo, blas_int* n, double* a, blas_int* lda, blas_int* ipiv, double* work, blas_int* info) | |
506 { | |
507 arma_fortran_noprefix(arma_dsytri)(uplo, n, a, lda, ipiv, work, info); | |
508 } | |
509 | |
510 void arma_fortran_prefix(arma_csytri)(char* uplo, blas_int* n, void* a, blas_int* lda, blas_int* ipiv, void* work, blas_int* info) | |
511 { | |
512 arma_fortran_noprefix(arma_csytri)(uplo, n, a, lda, ipiv, work, info); | |
513 } | |
514 | |
515 void arma_fortran_prefix(arma_zsytri)(char* uplo, blas_int* n, void* a, blas_int* lda, blas_int* ipiv, void* work, blas_int* info) | |
516 { | |
517 arma_fortran_noprefix(arma_zsytri)(uplo, n, a, lda, ipiv, work, info); | |
518 } | |
519 | |
520 #endif | |
521 | |
522 | |
523 | |
524 #if defined(ARMA_USE_ATLAS) | |
525 | |
526 float wrapper_cblas_sdot(const int N, const float *X, const int incX, const float *Y, const int incY) | |
527 { | |
528 return cblas_sdot(N, X, incX, Y, incY); | |
529 } | |
530 | |
531 double wrapper_cblas_ddot(const int N, const double *X, const int incX, const double *Y, const int incY) | |
532 { | |
533 return cblas_ddot(N, X, incX, Y, incY); | |
534 } | |
535 | |
536 void wrapper_cblas_cdotu_sub(const int N, const void *X, const int incX, const void *Y, const int incY, void *dotu) | |
537 { | |
538 cblas_cdotu_sub(N, X, incX, Y, incY, dotu); | |
539 } | |
540 | |
541 void wrapper_cblas_zdotu_sub(const int N, const void *X, const int incX, const void *Y, const int incY, void *dotu) | |
542 { | |
543 cblas_zdotu_sub(N, X, incX, Y, incY, dotu); | |
544 } | |
545 | |
546 | |
547 | |
548 void wrapper_cblas_sgemv(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const int M, const int N, const float alpha, | |
549 const float *A, const int lda, const float *X, const int incX, const float beta, float *Y, const int incY) | |
550 { | |
551 cblas_sgemv(Order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY); | |
552 } | |
553 | |
554 void wrapper_cblas_dgemv(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const int M, const int N, const double alpha, | |
555 const double *A, const int lda, const double *X, const int incX, const double beta, double *Y, const int incY) | |
556 { | |
557 cblas_dgemv(Order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY); | |
558 } | |
559 | |
560 void wrapper_cblas_cgemv(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const int M, const int N, const void *alpha, | |
561 const void *A, const int lda, const void *X, const int incX, const void *beta, void *Y, const int incY) | |
562 { | |
563 cblas_cgemv(Order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY); | |
564 } | |
565 | |
566 void wrapper_cblas_zgemv(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const int M, const int N, const void *alpha, | |
567 const void *A, const int lda, const void *X, const int incX, const void *beta, void *Y, const int incY) | |
568 { | |
569 cblas_zgemv(Order, TransA, M, N, alpha, A, lda, X, incX, beta, Y, incY); | |
570 } | |
571 | |
572 | |
573 | |
574 void wrapper_cblas_sgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_TRANSPOSE TransB, | |
575 const int M, const int N, const int K, const float alpha, | |
576 const float *A, const int lda, const float *B, const int ldb, const float beta, float *C, const int ldc) | |
577 { | |
578 cblas_sgemm(Order, TransA, TransB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc); | |
579 } | |
580 | |
581 void wrapper_cblas_dgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_TRANSPOSE TransB, | |
582 const int M, const int N, const int K, const double alpha, | |
583 const double *A, const int lda, const double *B, const int ldb, const double beta, double *C, const int ldc) | |
584 { | |
585 cblas_dgemm(Order, TransA, TransB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc); | |
586 } | |
587 | |
588 void wrapper_cblas_cgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_TRANSPOSE TransB, | |
589 const int M, const int N, const int K, const void *alpha, | |
590 const void *A, const int lda, const void *B, const int ldb, const void *beta, void *C, const int ldc) | |
591 { | |
592 cblas_cgemm(Order, TransA, TransB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc); | |
593 } | |
594 | |
595 void wrapper_cblas_zgemm(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_TRANSPOSE TransB, | |
596 const int M, const int N, const int K, const void *alpha, | |
597 const void *A, const int lda, const void *B, const int ldb, const void *beta, void *C, const int ldc) | |
598 { | |
599 cblas_zgemm(Order, TransA, TransB, M, N, K, alpha, A, lda, B, ldb, beta, C, ldc); | |
600 } | |
601 | |
602 | |
603 | |
604 int wrapper_clapack_sgetrf(const enum CBLAS_ORDER Order, const int M, const int N, float *A, const int lda, int *ipiv) | |
605 { | |
606 return clapack_sgetrf(Order, M, N, A, lda, ipiv); | |
607 } | |
608 | |
609 int wrapper_clapack_dgetrf(const enum CBLAS_ORDER Order, const int M, const int N, double *A, const int lda, int *ipiv) | |
610 { | |
611 return clapack_dgetrf(Order, M, N, A, lda, ipiv); | |
612 } | |
613 | |
614 int wrapper_clapack_cgetrf(const enum CBLAS_ORDER Order, const int M, const int N, void *A, const int lda, int *ipiv) | |
615 { | |
616 return clapack_cgetrf(Order, M, N, A, lda, ipiv); | |
617 } | |
618 | |
619 int wrapper_clapack_zgetrf(const enum CBLAS_ORDER Order, const int M, const int N, void *A, const int lda, int *ipiv) | |
620 { | |
621 return clapack_zgetrf(Order, M, N, A, lda, ipiv); | |
622 } | |
623 | |
624 | |
625 | |
626 int wrapper_clapack_sgetri(const enum CBLAS_ORDER Order, const int N, float *A, const int lda, const int *ipiv) | |
627 { | |
628 return clapack_sgetri(Order, N, A, lda, ipiv); | |
629 } | |
630 | |
631 int wrapper_clapack_dgetri(const enum CBLAS_ORDER Order, const int N, double *A, const int lda, const int *ipiv) | |
632 { | |
633 return clapack_dgetri(Order, N, A, lda, ipiv); | |
634 } | |
635 | |
636 int wrapper_clapack_cgetri(const enum CBLAS_ORDER Order, const int N, void *A, const int lda, const int *ipiv) | |
637 { | |
638 return clapack_cgetri(Order, N, A, lda, ipiv); | |
639 } | |
640 | |
641 int wrapper_clapack_zgetri(const enum CBLAS_ORDER Order, const int N, void *A, const int lda, const int *ipiv) | |
642 { | |
643 return clapack_zgetri(Order, N, A, lda, ipiv); | |
644 } | |
645 | |
646 | |
647 | |
648 int wrapper_clapack_sgesv(const enum CBLAS_ORDER Order, const int N, const int NRHS, float *A, const int lda, int *ipiv, float *B, const int ldb) | |
649 { | |
650 return clapack_sgesv(Order, N, NRHS, A, lda, ipiv, B, ldb); | |
651 } | |
652 | |
653 int wrapper_clapack_dgesv(const enum CBLAS_ORDER Order, const int N, const int NRHS, double *A, const int lda, int *ipiv, double *B, const int ldb) | |
654 { | |
655 return clapack_dgesv(Order, N, NRHS, A, lda, ipiv, B, ldb); | |
656 } | |
657 | |
658 int wrapper_clapack_cgesv(const enum CBLAS_ORDER Order, const int N, const int NRHS, void *A, const int lda, int *ipiv, void *B, const int ldb) | |
659 { | |
660 return clapack_cgesv(Order, N, NRHS, A, lda, ipiv, B, ldb); | |
661 } | |
662 | |
663 int wrapper_clapack_zgesv(const enum CBLAS_ORDER Order, const int N, const int NRHS, void *A, const int lda, int *ipiv, void *B, const int ldb) | |
664 { | |
665 return clapack_zgesv(Order, N, NRHS, A, lda, ipiv, B, ldb); | |
666 } | |
667 | |
668 #endif | |
669 } | |
670 | |
671 } |