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