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