comparison armadillo-3.900.4/include/armadillo_bits/lapack_bones.hpp @ 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 // Copyright (C) 2008-2012 NICTA (www.nicta.com.au)
2 // Copyright (C) 2008-2012 Conrad Sanderson
3 // Copyright (C) 2009 Edmund Highcock
4 // Copyright (C) 2011 James Sanders
5 // Copyright (C) 2012 Eric Jon Sundstrom
6 //
7 // This Source Code Form is subject to the terms of the Mozilla Public
8 // License, v. 2.0. If a copy of the MPL was not distributed with this
9 // file, You can obtain one at http://mozilla.org/MPL/2.0/.
10
11
12
13 #ifdef ARMA_USE_LAPACK
14
15
16 #if !defined(ARMA_BLAS_CAPITALS)
17
18 #define arma_sgetrf sgetrf
19 #define arma_dgetrf dgetrf
20 #define arma_cgetrf cgetrf
21 #define arma_zgetrf zgetrf
22
23 #define arma_sgetri sgetri
24 #define arma_dgetri dgetri
25 #define arma_cgetri cgetri
26 #define arma_zgetri zgetri
27
28 #define arma_strtri strtri
29 #define arma_dtrtri dtrtri
30 #define arma_ctrtri ctrtri
31 #define arma_ztrtri ztrtri
32
33 #define arma_ssyev ssyev
34 #define arma_dsyev dsyev
35
36 #define arma_cheev cheev
37 #define arma_zheev zheev
38
39 #define arma_ssyevd ssyevd
40 #define arma_dsyevd dsyevd
41
42 #define arma_cheevd cheevd
43 #define arma_zheevd zheevd
44
45 #define arma_sgeev sgeev
46 #define arma_dgeev dgeev
47
48 #define arma_cgeev cgeev
49 #define arma_zgeev zgeev
50
51 #define arma_spotrf spotrf
52 #define arma_dpotrf dpotrf
53 #define arma_cpotrf cpotrf
54 #define arma_zpotrf zpotrf
55
56 #define arma_spotri spotri
57 #define arma_dpotri dpotri
58 #define arma_cpotri cpotri
59 #define arma_zpotri zpotri
60
61 #define arma_sgeqrf sgeqrf
62 #define arma_dgeqrf dgeqrf
63 #define arma_cgeqrf cgeqrf
64 #define arma_zgeqrf zgeqrf
65
66 #define arma_sorgqr sorgqr
67 #define arma_dorgqr dorgqr
68
69 #define arma_cungqr cungqr
70 #define arma_zungqr zungqr
71
72 #define arma_sgesvd sgesvd
73 #define arma_dgesvd dgesvd
74
75 #define arma_cgesvd cgesvd
76 #define arma_zgesvd zgesvd
77
78 #define arma_sgesdd sgesdd
79 #define arma_dgesdd dgesdd
80 #define arma_cgesdd cgesdd
81 #define arma_zgesdd zgesdd
82
83 #define arma_sgesv sgesv
84 #define arma_dgesv dgesv
85 #define arma_cgesv cgesv
86 #define arma_zgesv zgesv
87
88 #define arma_sgels sgels
89 #define arma_dgels dgels
90 #define arma_cgels cgels
91 #define arma_zgels zgels
92
93 #define arma_strtrs strtrs
94 #define arma_dtrtrs dtrtrs
95 #define arma_ctrtrs ctrtrs
96 #define arma_ztrtrs ztrtrs
97
98 #define arma_sgees sgees
99 #define arma_dgees dgees
100 #define arma_cgees cgees
101 #define arma_zgees zgees
102
103 #define arma_strsyl strsyl
104 #define arma_dtrsyl dtrsyl
105 #define arma_ctrsyl ctrsyl
106 #define arma_ztrsyl ztrsyl
107
108 #define arma_ssytrf ssytrf
109 #define arma_dsytrf dsytrf
110 #define arma_csytrf csytrf
111 #define arma_zsytrf zsytrf
112
113 #define arma_ssytri ssytri
114 #define arma_dsytri dsytri
115 #define arma_csytri csytri
116 #define arma_zsytri zsytri
117
118 #else
119
120 #define arma_sgetrf SGETRF
121 #define arma_dgetrf DGETRF
122 #define arma_cgetrf CGETRF
123 #define arma_zgetrf ZGETRF
124
125 #define arma_sgetri SGETRI
126 #define arma_dgetri DGETRI
127 #define arma_cgetri CGETRI
128 #define arma_zgetri ZGETRI
129
130 #define arma_strtri STRTRI
131 #define arma_dtrtri DTRTRI
132 #define arma_ctrtri CTRTRI
133 #define arma_ztrtri ZTRTRI
134
135 #define arma_ssyev SSYEV
136 #define arma_dsyev DSYEV
137
138 #define arma_cheev CHEEV
139 #define arma_zheev ZHEEV
140
141 #define arma_ssyevd SSYEVD
142 #define arma_dsyevd DSYEVD
143
144 #define arma_cheevd CHEEVD
145 #define arma_zheevd ZHEEVD
146
147 #define arma_sgeev SGEEV
148 #define arma_dgeev DGEEV
149
150 #define arma_cgeev CGEEV
151 #define arma_zgeev ZGEEV
152
153 #define arma_spotrf SPOTRF
154 #define arma_dpotrf DPOTRF
155 #define arma_cpotrf CPOTRF
156 #define arma_zpotrf ZPOTRF
157
158 #define arma_spotri SPOTRI
159 #define arma_dpotri DPOTRI
160 #define arma_cpotri CPOTRI
161 #define arma_zpotri ZPOTRI
162
163 #define arma_sgeqrf SGEQRF
164 #define arma_dgeqrf DGEQRF
165 #define arma_cgeqrf CGEQRF
166 #define arma_zgeqrf ZGEQRF
167
168 #define arma_sorgqr SORGQR
169 #define arma_dorgqr DORGQR
170
171 #define arma_cungqr CUNGQR
172 #define arma_zungqr ZUNGQR
173
174 #define arma_sgesvd SGESVD
175 #define arma_dgesvd DGESVD
176
177 #define arma_cgesvd CGESVD
178 #define arma_zgesvd ZGESVD
179
180 #define arma_sgesdd SGESDD
181 #define arma_dgesdd DGESDD
182 #define arma_cgesdd CGESDD
183 #define arma_zgesdd ZGESDD
184
185 #define arma_sgesv SGESV
186 #define arma_dgesv DGESV
187 #define arma_cgesv CGESV
188 #define arma_zgesv ZGESV
189
190 #define arma_sgels SGELS
191 #define arma_dgels DGELS
192 #define arma_cgels CGELS
193 #define arma_zgels ZGELS
194
195 #define arma_strtrs STRTRS
196 #define arma_dtrtrs DTRTRS
197 #define arma_ctrtrs CTRTRS
198 #define arma_ztrtrs ZTRTRS
199
200 #define arma_sgees SGEES
201 #define arma_dgees DGEES
202 #define arma_cgees CGEES
203 #define arma_zgees ZGEES
204
205 #define arma_strsyl STRSYL
206 #define arma_dtrsyl DTRSYL
207 #define arma_ctrsyl CTRSYL
208 #define arma_ztrsyl ZTRSYL
209
210 #define arma_ssytrf SSYTRF
211 #define arma_dsytrf DSYTRF
212 #define arma_csytrf CSYTRF
213 #define arma_zsytrf ZSYTRF
214
215 #define arma_ssytri SSYTRI
216 #define arma_dsytri DSYTRI
217 #define arma_csytri CSYTRI
218 #define arma_zsytri ZSYTRI
219
220 #endif
221
222
223
224 extern "C"
225 {
226 // LU factorisation
227 void arma_fortran(arma_sgetrf)(blas_int* m, blas_int* n, float* a, blas_int* lda, blas_int* ipiv, blas_int* info);
228 void arma_fortran(arma_dgetrf)(blas_int* m, blas_int* n, double* a, blas_int* lda, blas_int* ipiv, blas_int* info);
229 void arma_fortran(arma_cgetrf)(blas_int* m, blas_int* n, void* a, blas_int* lda, blas_int* ipiv, blas_int* info);
230 void arma_fortran(arma_zgetrf)(blas_int* m, blas_int* n, void* a, blas_int* lda, blas_int* ipiv, blas_int* info);
231
232 // matrix inversion (using LU factorisation result)
233 void arma_fortran(arma_sgetri)(blas_int* n, float* a, blas_int* lda, blas_int* ipiv, float* work, blas_int* lwork, blas_int* info);
234 void arma_fortran(arma_dgetri)(blas_int* n, double* a, blas_int* lda, blas_int* ipiv, double* work, blas_int* lwork, blas_int* info);
235 void arma_fortran(arma_cgetri)(blas_int* n, void* a, blas_int* lda, blas_int* ipiv, void* work, blas_int* lwork, blas_int* info);
236 void arma_fortran(arma_zgetri)(blas_int* n, void* a, blas_int* lda, blas_int* ipiv, void* work, blas_int* lwork, blas_int* info);
237
238 // matrix inversion (triangular matrices)
239 void arma_fortran(arma_strtri)(char* uplo, char* diag, blas_int* n, float* a, blas_int* lda, blas_int* info);
240 void arma_fortran(arma_dtrtri)(char* uplo, char* diag, blas_int* n, double* a, blas_int* lda, blas_int* info);
241 void arma_fortran(arma_ctrtri)(char* uplo, char* diag, blas_int* n, void* a, blas_int* lda, blas_int* info);
242 void arma_fortran(arma_ztrtri)(char* uplo, char* diag, blas_int* n, void* a, blas_int* lda, blas_int* info);
243
244 // eigenvector decomposition of symmetric real matrices
245 void arma_fortran(arma_ssyev)(char* jobz, char* uplo, blas_int* n, float* a, blas_int* lda, float* w, float* work, blas_int* lwork, blas_int* info);
246 void arma_fortran(arma_dsyev)(char* jobz, char* uplo, blas_int* n, double* a, blas_int* lda, double* w, double* work, blas_int* lwork, blas_int* info);
247
248 // eigenvector decomposition of hermitian matrices (complex)
249 void arma_fortran(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);
250 void arma_fortran(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);
251
252 // eigenvector decomposition of symmetric real matrices by divide and conquer
253 void arma_fortran(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);
254 void arma_fortran(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);
255
256 // eigenvector decomposition of hermitian matrices (complex) by divide and conquer
257 void arma_fortran(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);
258 void arma_fortran(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);
259
260 // eigenvector decomposition of general real matrices
261 void arma_fortran(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);
262 void arma_fortran(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);
263
264 // eigenvector decomposition of general complex matrices
265 void arma_fortran(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);
266 void arma_fortran(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);
267
268 // Cholesky decomposition
269 void arma_fortran(arma_spotrf)(char* uplo, blas_int* n, float* a, blas_int* lda, blas_int* info);
270 void arma_fortran(arma_dpotrf)(char* uplo, blas_int* n, double* a, blas_int* lda, blas_int* info);
271 void arma_fortran(arma_cpotrf)(char* uplo, blas_int* n, void* a, blas_int* lda, blas_int* info);
272 void arma_fortran(arma_zpotrf)(char* uplo, blas_int* n, void* a, blas_int* lda, blas_int* info);
273
274 // matrix inversion (using Cholesky decomposition result)
275 void arma_fortran(arma_spotri)(char* uplo, blas_int* n, float* a, blas_int* lda, blas_int* info);
276 void arma_fortran(arma_dpotri)(char* uplo, blas_int* n, double* a, blas_int* lda, blas_int* info);
277 void arma_fortran(arma_cpotri)(char* uplo, blas_int* n, void* a, blas_int* lda, blas_int* info);
278 void arma_fortran(arma_zpotri)(char* uplo, blas_int* n, void* a, blas_int* lda, blas_int* info);
279
280 // QR decomposition
281 void arma_fortran(arma_sgeqrf)(blas_int* m, blas_int* n, float* a, blas_int* lda, float* tau, float* work, blas_int* lwork, blas_int* info);
282 void arma_fortran(arma_dgeqrf)(blas_int* m, blas_int* n, double* a, blas_int* lda, double* tau, double* work, blas_int* lwork, blas_int* info);
283 void arma_fortran(arma_cgeqrf)(blas_int* m, blas_int* n, void* a, blas_int* lda, void* tau, void* work, blas_int* lwork, blas_int* info);
284 void arma_fortran(arma_zgeqrf)(blas_int* m, blas_int* n, void* a, blas_int* lda, void* tau, void* work, blas_int* lwork, blas_int* info);
285
286 // Q matrix calculation from QR decomposition (real matrices)
287 void arma_fortran(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);
288 void arma_fortran(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);
289
290 // Q matrix calculation from QR decomposition (complex matrices)
291 void arma_fortran(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);
292 void arma_fortran(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);
293
294 // SVD (real matrices)
295 void arma_fortran(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);
296 void arma_fortran(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);
297
298 // SVD (complex matrices)
299 void arma_fortran(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);
300 void arma_fortran(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);
301
302 // SVD (real matrices) by divide and conquer
303 void arma_fortran(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);
304 void arma_fortran(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);
305
306 // SVD (complex matrices) by divide and conquer
307 void arma_fortran(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);
308 void arma_fortran(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);
309
310 // solve system of linear equations, using LU decomposition
311 void arma_fortran(arma_sgesv)(blas_int* n, blas_int* nrhs, float* a, blas_int* lda, blas_int* ipiv, float* b, blas_int* ldb, blas_int* info);
312 void arma_fortran(arma_dgesv)(blas_int* n, blas_int* nrhs, double* a, blas_int* lda, blas_int* ipiv, double* b, blas_int* ldb, blas_int* info);
313 void arma_fortran(arma_cgesv)(blas_int* n, blas_int* nrhs, void* a, blas_int* lda, blas_int* ipiv, void* b, blas_int* ldb, blas_int* info);
314 void arma_fortran(arma_zgesv)(blas_int* n, blas_int* nrhs, void* a, blas_int* lda, blas_int* ipiv, void* b, blas_int* ldb, blas_int* info);
315
316 // solve over/underdetermined system of linear equations
317 void arma_fortran(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);
318 void arma_fortran(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);
319 void arma_fortran(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);
320 void arma_fortran(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);
321
322 // solve a triangular system of linear equations
323 void arma_fortran(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);
324 void arma_fortran(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);
325 void arma_fortran(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);
326 void arma_fortran(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);
327
328 // Schur decomposition (real matrices)
329 void arma_fortran(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);
330 void arma_fortran(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);
331
332 // Schur decomposition (complex matrices)
333 void arma_fortran(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);
334 void arma_fortran(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);
335
336 // solve a Sylvester equation ax + xb = c, with a and b assumed to be in Schur form
337 void arma_fortran(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);
338 void arma_fortran(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);
339 void arma_fortran(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);
340 void arma_fortran(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);
341
342 void arma_fortran(arma_ssytrf)(char* uplo, blas_int* n, float* a, blas_int* lda, blas_int* ipiv, float* work, blas_int* lwork, blas_int* info);
343 void arma_fortran(arma_dsytrf)(char* uplo, blas_int* n, double* a, blas_int* lda, blas_int* ipiv, double* work, blas_int* lwork, blas_int* info);
344 void arma_fortran(arma_csytrf)(char* uplo, blas_int* n, void* a, blas_int* lda, blas_int* ipiv, void* work, blas_int* lwork, blas_int* info);
345 void arma_fortran(arma_zsytrf)(char* uplo, blas_int* n, void* a, blas_int* lda, blas_int* ipiv, void* work, blas_int* lwork, blas_int* info);
346
347 void arma_fortran(arma_ssytri)(char* uplo, blas_int* n, float* a, blas_int* lda, blas_int* ipiv, float* work, blas_int* info);
348 void arma_fortran(arma_dsytri)(char* uplo, blas_int* n, double* a, blas_int* lda, blas_int* ipiv, double* work, blas_int* info);
349 void arma_fortran(arma_csytri)(char* uplo, blas_int* n, void* a, blas_int* lda, blas_int* ipiv, void* work, blas_int* info);
350 void arma_fortran(arma_zsytri)(char* uplo, blas_int* n, void* a, blas_int* lda, blas_int* ipiv, void* work, blas_int* info);
351
352 // void arma_fortran(arma_dgeqp3)(blas_int* m, blas_int* n, double* a, blas_int* lda, blas_int* jpvt, double* tau, double* work, blas_int* lwork, blas_int* info);
353 // void arma_fortran(arma_dormqr)(char* side, char* trans, blas_int* m, blas_int* n, blas_int* k, double* a, blas_int* lda, double* tau, double* c, blas_int* ldc, double* work, blas_int* lwork, blas_int* info);
354 // void arma_fortran(arma_dposv)(char* uplo, blas_int* n, blas_int* nrhs, double* a, blas_int* lda, double* b, blas_int* ldb, blas_int* info);
355 }
356
357
358 #endif