1*e1eccf28SAndroid Build Coastguard Worker #ifndef RS_COMPATIBILITY_LIB
2*e1eccf28SAndroid Build Coastguard Worker #include "cblas.h"
3*e1eccf28SAndroid Build Coastguard Worker #else
4*e1eccf28SAndroid Build Coastguard Worker #include <dlfcn.h>
5*e1eccf28SAndroid Build Coastguard Worker /*
6*e1eccf28SAndroid Build Coastguard Worker * The following enums are based on cblas.h
7*e1eccf28SAndroid Build Coastguard Worker */
8*e1eccf28SAndroid Build Coastguard Worker enum CBLAS_ORDER {CblasRowMajor=101, CblasColMajor=102};
9*e1eccf28SAndroid Build Coastguard Worker enum CBLAS_TRANSPOSE {CblasNoTrans=111, CblasTrans=112, CblasConjTrans=113};
10*e1eccf28SAndroid Build Coastguard Worker enum CBLAS_UPLO {CblasUpper=121, CblasLower=122};
11*e1eccf28SAndroid Build Coastguard Worker enum CBLAS_DIAG {CblasNonUnit=131, CblasUnit=132};
12*e1eccf28SAndroid Build Coastguard Worker enum CBLAS_SIDE {CblasLeft=141, CblasRight=142};
13*e1eccf28SAndroid Build Coastguard Worker #endif
14*e1eccf28SAndroid Build Coastguard Worker
15*e1eccf28SAndroid Build Coastguard Worker /*
16*e1eccf28SAndroid Build Coastguard Worker * ===========================================================================
17*e1eccf28SAndroid Build Coastguard Worker * Prototypes for level 2 BLAS
18*e1eccf28SAndroid Build Coastguard Worker * ===========================================================================
19*e1eccf28SAndroid Build Coastguard Worker */
20*e1eccf28SAndroid Build Coastguard Worker
21*e1eccf28SAndroid Build Coastguard Worker /*
22*e1eccf28SAndroid Build Coastguard Worker * Routines with standard 4 prefixes (S, D, C, Z)
23*e1eccf28SAndroid Build Coastguard Worker */
24*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_sgemv)(const enum CBLAS_ORDER order,
25*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
26*e1eccf28SAndroid Build Coastguard Worker const float alpha, const float *A, const int lda,
27*e1eccf28SAndroid Build Coastguard Worker const float *X, const int incX, const float beta,
28*e1eccf28SAndroid Build Coastguard Worker float *Y, const int incY);
29*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_sgbmv)(const enum CBLAS_ORDER order,
30*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
31*e1eccf28SAndroid Build Coastguard Worker const int KL, const int KU, const float alpha,
32*e1eccf28SAndroid Build Coastguard Worker const float *A, const int lda, const float *X,
33*e1eccf28SAndroid Build Coastguard Worker const int incX, const float beta, float *Y, const int incY);
34*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_strmv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
35*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
36*e1eccf28SAndroid Build Coastguard Worker const int N, const float *A, const int lda,
37*e1eccf28SAndroid Build Coastguard Worker float *X, const int incX);
38*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_stbmv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
39*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
40*e1eccf28SAndroid Build Coastguard Worker const int N, const int K, const float *A, const int lda,
41*e1eccf28SAndroid Build Coastguard Worker float *X, const int incX);
42*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_stpmv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
43*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
44*e1eccf28SAndroid Build Coastguard Worker const int N, const float *Ap, float *X, const int incX);
45*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_strsv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
46*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
47*e1eccf28SAndroid Build Coastguard Worker const int N, const float *A, const int lda, float *X,
48*e1eccf28SAndroid Build Coastguard Worker const int incX);
49*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_stbsv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
50*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
51*e1eccf28SAndroid Build Coastguard Worker const int N, const int K, const float *A, const int lda,
52*e1eccf28SAndroid Build Coastguard Worker float *X, const int incX);
53*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_stpsv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
54*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
55*e1eccf28SAndroid Build Coastguard Worker const int N, const float *Ap, float *X, const int incX);
56*e1eccf28SAndroid Build Coastguard Worker
57*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dgemv)(const enum CBLAS_ORDER order,
58*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
59*e1eccf28SAndroid Build Coastguard Worker const double alpha, const double *A, const int lda,
60*e1eccf28SAndroid Build Coastguard Worker const double *X, const int incX, const double beta,
61*e1eccf28SAndroid Build Coastguard Worker double *Y, const int incY);
62*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dgbmv)(const enum CBLAS_ORDER order,
63*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
64*e1eccf28SAndroid Build Coastguard Worker const int KL, const int KU, const double alpha,
65*e1eccf28SAndroid Build Coastguard Worker const double *A, const int lda, const double *X,
66*e1eccf28SAndroid Build Coastguard Worker const int incX, const double beta, double *Y, const int incY);
67*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dtrmv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
68*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
69*e1eccf28SAndroid Build Coastguard Worker const int N, const double *A, const int lda,
70*e1eccf28SAndroid Build Coastguard Worker double *X, const int incX);
71*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dtbmv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
72*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
73*e1eccf28SAndroid Build Coastguard Worker const int N, const int K, const double *A, const int lda,
74*e1eccf28SAndroid Build Coastguard Worker double *X, const int incX);
75*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dtpmv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
76*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
77*e1eccf28SAndroid Build Coastguard Worker const int N, const double *Ap, double *X, const int incX);
78*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dtrsv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
79*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
80*e1eccf28SAndroid Build Coastguard Worker const int N, const double *A, const int lda, double *X,
81*e1eccf28SAndroid Build Coastguard Worker const int incX);
82*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dtbsv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
83*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
84*e1eccf28SAndroid Build Coastguard Worker const int N, const int K, const double *A, const int lda,
85*e1eccf28SAndroid Build Coastguard Worker double *X, const int incX);
86*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dtpsv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
87*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
88*e1eccf28SAndroid Build Coastguard Worker const int N, const double *Ap, double *X, const int incX);
89*e1eccf28SAndroid Build Coastguard Worker
90*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_cgemv)(const enum CBLAS_ORDER order,
91*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
92*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *A, const int lda,
93*e1eccf28SAndroid Build Coastguard Worker const void *X, const int incX, const void *beta,
94*e1eccf28SAndroid Build Coastguard Worker void *Y, const int incY);
95*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_cgbmv)(const enum CBLAS_ORDER order,
96*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
97*e1eccf28SAndroid Build Coastguard Worker const int KL, const int KU, const void *alpha,
98*e1eccf28SAndroid Build Coastguard Worker const void *A, const int lda, const void *X,
99*e1eccf28SAndroid Build Coastguard Worker const int incX, const void *beta, void *Y, const int incY);
100*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ctrmv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
101*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
102*e1eccf28SAndroid Build Coastguard Worker const int N, const void *A, const int lda,
103*e1eccf28SAndroid Build Coastguard Worker void *X, const int incX);
104*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ctbmv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
105*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
106*e1eccf28SAndroid Build Coastguard Worker const int N, const int K, const void *A, const int lda,
107*e1eccf28SAndroid Build Coastguard Worker void *X, const int incX);
108*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ctpmv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
109*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
110*e1eccf28SAndroid Build Coastguard Worker const int N, const void *Ap, void *X, const int incX);
111*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ctrsv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
112*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
113*e1eccf28SAndroid Build Coastguard Worker const int N, const void *A, const int lda, void *X,
114*e1eccf28SAndroid Build Coastguard Worker const int incX);
115*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ctbsv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
116*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
117*e1eccf28SAndroid Build Coastguard Worker const int N, const int K, const void *A, const int lda,
118*e1eccf28SAndroid Build Coastguard Worker void *X, const int incX);
119*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ctpsv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
120*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
121*e1eccf28SAndroid Build Coastguard Worker const int N, const void *Ap, void *X, const int incX);
122*e1eccf28SAndroid Build Coastguard Worker
123*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_zgemv)(const enum CBLAS_ORDER order,
124*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
125*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *A, const int lda,
126*e1eccf28SAndroid Build Coastguard Worker const void *X, const int incX, const void *beta,
127*e1eccf28SAndroid Build Coastguard Worker void *Y, const int incY);
128*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_zgbmv)(const enum CBLAS_ORDER order,
129*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const int M, const int N,
130*e1eccf28SAndroid Build Coastguard Worker const int KL, const int KU, const void *alpha,
131*e1eccf28SAndroid Build Coastguard Worker const void *A, const int lda, const void *X,
132*e1eccf28SAndroid Build Coastguard Worker const int incX, const void *beta, void *Y, const int incY);
133*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ztrmv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
134*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
135*e1eccf28SAndroid Build Coastguard Worker const int N, const void *A, const int lda,
136*e1eccf28SAndroid Build Coastguard Worker void *X, const int incX);
137*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ztbmv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
138*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
139*e1eccf28SAndroid Build Coastguard Worker const int N, const int K, const void *A, const int lda,
140*e1eccf28SAndroid Build Coastguard Worker void *X, const int incX);
141*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ztpmv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
142*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
143*e1eccf28SAndroid Build Coastguard Worker const int N, const void *Ap, void *X, const int incX);
144*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ztrsv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
145*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
146*e1eccf28SAndroid Build Coastguard Worker const int N, const void *A, const int lda, void *X,
147*e1eccf28SAndroid Build Coastguard Worker const int incX);
148*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ztbsv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
149*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
150*e1eccf28SAndroid Build Coastguard Worker const int N, const int K, const void *A, const int lda,
151*e1eccf28SAndroid Build Coastguard Worker void *X, const int incX);
152*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ztpsv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
153*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransA, const enum CBLAS_DIAG Diag,
154*e1eccf28SAndroid Build Coastguard Worker const int N, const void *Ap, void *X, const int incX);
155*e1eccf28SAndroid Build Coastguard Worker
156*e1eccf28SAndroid Build Coastguard Worker
157*e1eccf28SAndroid Build Coastguard Worker /*
158*e1eccf28SAndroid Build Coastguard Worker * Routines with S and D prefixes only
159*e1eccf28SAndroid Build Coastguard Worker */
160*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ssymv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
161*e1eccf28SAndroid Build Coastguard Worker const int N, const float alpha, const float *A,
162*e1eccf28SAndroid Build Coastguard Worker const int lda, const float *X, const int incX,
163*e1eccf28SAndroid Build Coastguard Worker const float beta, float *Y, const int incY);
164*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ssbmv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
165*e1eccf28SAndroid Build Coastguard Worker const int N, const int K, const float alpha, const float *A,
166*e1eccf28SAndroid Build Coastguard Worker const int lda, const float *X, const int incX,
167*e1eccf28SAndroid Build Coastguard Worker const float beta, float *Y, const int incY);
168*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_sspmv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
169*e1eccf28SAndroid Build Coastguard Worker const int N, const float alpha, const float *Ap,
170*e1eccf28SAndroid Build Coastguard Worker const float *X, const int incX,
171*e1eccf28SAndroid Build Coastguard Worker const float beta, float *Y, const int incY);
172*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_sger)(const enum CBLAS_ORDER order, const int M, const int N,
173*e1eccf28SAndroid Build Coastguard Worker const float alpha, const float *X, const int incX,
174*e1eccf28SAndroid Build Coastguard Worker const float *Y, const int incY, float *A, const int lda);
175*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ssyr)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
176*e1eccf28SAndroid Build Coastguard Worker const int N, const float alpha, const float *X,
177*e1eccf28SAndroid Build Coastguard Worker const int incX, float *A, const int lda);
178*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_sspr)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
179*e1eccf28SAndroid Build Coastguard Worker const int N, const float alpha, const float *X,
180*e1eccf28SAndroid Build Coastguard Worker const int incX, float *Ap);
181*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ssyr2)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
182*e1eccf28SAndroid Build Coastguard Worker const int N, const float alpha, const float *X,
183*e1eccf28SAndroid Build Coastguard Worker const int incX, const float *Y, const int incY, float *A,
184*e1eccf28SAndroid Build Coastguard Worker const int lda);
185*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_sspr2)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
186*e1eccf28SAndroid Build Coastguard Worker const int N, const float alpha, const float *X,
187*e1eccf28SAndroid Build Coastguard Worker const int incX, const float *Y, const int incY, float *A);
188*e1eccf28SAndroid Build Coastguard Worker
189*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dsymv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
190*e1eccf28SAndroid Build Coastguard Worker const int N, const double alpha, const double *A,
191*e1eccf28SAndroid Build Coastguard Worker const int lda, const double *X, const int incX,
192*e1eccf28SAndroid Build Coastguard Worker const double beta, double *Y, const int incY);
193*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dsbmv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
194*e1eccf28SAndroid Build Coastguard Worker const int N, const int K, const double alpha, const double *A,
195*e1eccf28SAndroid Build Coastguard Worker const int lda, const double *X, const int incX,
196*e1eccf28SAndroid Build Coastguard Worker const double beta, double *Y, const int incY);
197*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dspmv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
198*e1eccf28SAndroid Build Coastguard Worker const int N, const double alpha, const double *Ap,
199*e1eccf28SAndroid Build Coastguard Worker const double *X, const int incX,
200*e1eccf28SAndroid Build Coastguard Worker const double beta, double *Y, const int incY);
201*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dger)(const enum CBLAS_ORDER order, const int M, const int N,
202*e1eccf28SAndroid Build Coastguard Worker const double alpha, const double *X, const int incX,
203*e1eccf28SAndroid Build Coastguard Worker const double *Y, const int incY, double *A, const int lda);
204*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dsyr)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
205*e1eccf28SAndroid Build Coastguard Worker const int N, const double alpha, const double *X,
206*e1eccf28SAndroid Build Coastguard Worker const int incX, double *A, const int lda);
207*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dspr)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
208*e1eccf28SAndroid Build Coastguard Worker const int N, const double alpha, const double *X,
209*e1eccf28SAndroid Build Coastguard Worker const int incX, double *Ap);
210*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dsyr2)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
211*e1eccf28SAndroid Build Coastguard Worker const int N, const double alpha, const double *X,
212*e1eccf28SAndroid Build Coastguard Worker const int incX, const double *Y, const int incY, double *A,
213*e1eccf28SAndroid Build Coastguard Worker const int lda);
214*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dspr2)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
215*e1eccf28SAndroid Build Coastguard Worker const int N, const double alpha, const double *X,
216*e1eccf28SAndroid Build Coastguard Worker const int incX, const double *Y, const int incY, double *A);
217*e1eccf28SAndroid Build Coastguard Worker
218*e1eccf28SAndroid Build Coastguard Worker
219*e1eccf28SAndroid Build Coastguard Worker /*
220*e1eccf28SAndroid Build Coastguard Worker * Routines with C and Z prefixes only
221*e1eccf28SAndroid Build Coastguard Worker */
222*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_chemv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
223*e1eccf28SAndroid Build Coastguard Worker const int N, const void *alpha, const void *A,
224*e1eccf28SAndroid Build Coastguard Worker const int lda, const void *X, const int incX,
225*e1eccf28SAndroid Build Coastguard Worker const void *beta, void *Y, const int incY);
226*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_chbmv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
227*e1eccf28SAndroid Build Coastguard Worker const int N, const int K, const void *alpha, const void *A,
228*e1eccf28SAndroid Build Coastguard Worker const int lda, const void *X, const int incX,
229*e1eccf28SAndroid Build Coastguard Worker const void *beta, void *Y, const int incY);
230*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_chpmv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
231*e1eccf28SAndroid Build Coastguard Worker const int N, const void *alpha, const void *Ap,
232*e1eccf28SAndroid Build Coastguard Worker const void *X, const int incX,
233*e1eccf28SAndroid Build Coastguard Worker const void *beta, void *Y, const int incY);
234*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_cgeru)(const enum CBLAS_ORDER order, const int M, const int N,
235*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *X, const int incX,
236*e1eccf28SAndroid Build Coastguard Worker const void *Y, const int incY, void *A, const int lda);
237*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_cgerc)(const enum CBLAS_ORDER order, const int M, const int N,
238*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *X, const int incX,
239*e1eccf28SAndroid Build Coastguard Worker const void *Y, const int incY, void *A, const int lda);
240*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_cher)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
241*e1eccf28SAndroid Build Coastguard Worker const int N, const float alpha, const void *X, const int incX,
242*e1eccf28SAndroid Build Coastguard Worker void *A, const int lda);
243*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_chpr)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
244*e1eccf28SAndroid Build Coastguard Worker const int N, const float alpha, const void *X,
245*e1eccf28SAndroid Build Coastguard Worker const int incX, void *A);
246*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_cher2)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
247*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *X, const int incX,
248*e1eccf28SAndroid Build Coastguard Worker const void *Y, const int incY, void *A, const int lda);
249*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_chpr2)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
250*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *X, const int incX,
251*e1eccf28SAndroid Build Coastguard Worker const void *Y, const int incY, void *Ap);
252*e1eccf28SAndroid Build Coastguard Worker
253*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_zhemv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
254*e1eccf28SAndroid Build Coastguard Worker const int N, const void *alpha, const void *A,
255*e1eccf28SAndroid Build Coastguard Worker const int lda, const void *X, const int incX,
256*e1eccf28SAndroid Build Coastguard Worker const void *beta, void *Y, const int incY);
257*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_zhbmv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
258*e1eccf28SAndroid Build Coastguard Worker const int N, const int K, const void *alpha, const void *A,
259*e1eccf28SAndroid Build Coastguard Worker const int lda, const void *X, const int incX,
260*e1eccf28SAndroid Build Coastguard Worker const void *beta, void *Y, const int incY);
261*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_zhpmv)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
262*e1eccf28SAndroid Build Coastguard Worker const int N, const void *alpha, const void *Ap,
263*e1eccf28SAndroid Build Coastguard Worker const void *X, const int incX,
264*e1eccf28SAndroid Build Coastguard Worker const void *beta, void *Y, const int incY);
265*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_zgeru)(const enum CBLAS_ORDER order, const int M, const int N,
266*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *X, const int incX,
267*e1eccf28SAndroid Build Coastguard Worker const void *Y, const int incY, void *A, const int lda);
268*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_zgerc)(const enum CBLAS_ORDER order, const int M, const int N,
269*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *X, const int incX,
270*e1eccf28SAndroid Build Coastguard Worker const void *Y, const int incY, void *A, const int lda);
271*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_zher)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
272*e1eccf28SAndroid Build Coastguard Worker const int N, const double alpha, const void *X, const int incX,
273*e1eccf28SAndroid Build Coastguard Worker void *A, const int lda);
274*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_zhpr)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo,
275*e1eccf28SAndroid Build Coastguard Worker const int N, const double alpha, const void *X,
276*e1eccf28SAndroid Build Coastguard Worker const int incX, void *A);
277*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_zher2)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
278*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *X, const int incX,
279*e1eccf28SAndroid Build Coastguard Worker const void *Y, const int incY, void *A, const int lda);
280*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_zhpr2)(const enum CBLAS_ORDER order, const enum CBLAS_UPLO Uplo, const int N,
281*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *X, const int incX,
282*e1eccf28SAndroid Build Coastguard Worker const void *Y, const int incY, void *Ap);
283*e1eccf28SAndroid Build Coastguard Worker
284*e1eccf28SAndroid Build Coastguard Worker /*
285*e1eccf28SAndroid Build Coastguard Worker * ===========================================================================
286*e1eccf28SAndroid Build Coastguard Worker * Prototypes for level 3 BLAS
287*e1eccf28SAndroid Build Coastguard Worker * ===========================================================================
288*e1eccf28SAndroid Build Coastguard Worker */
289*e1eccf28SAndroid Build Coastguard Worker
290*e1eccf28SAndroid Build Coastguard Worker /*
291*e1eccf28SAndroid Build Coastguard Worker * Routines with standard 4 prefixes (S, D, C, Z)
292*e1eccf28SAndroid Build Coastguard Worker */
293*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_sgemm)(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
294*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
295*e1eccf28SAndroid Build Coastguard Worker const int K, const float alpha, const float *A,
296*e1eccf28SAndroid Build Coastguard Worker const int lda, const float *B, const int ldb,
297*e1eccf28SAndroid Build Coastguard Worker const float beta, float *C, const int ldc);
298*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ssymm)(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
299*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_UPLO Uplo, const int M, const int N,
300*e1eccf28SAndroid Build Coastguard Worker const float alpha, const float *A, const int lda,
301*e1eccf28SAndroid Build Coastguard Worker const float *B, const int ldb, const float beta,
302*e1eccf28SAndroid Build Coastguard Worker float *C, const int ldc);
303*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ssyrk)(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
304*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
305*e1eccf28SAndroid Build Coastguard Worker const float alpha, const float *A, const int lda,
306*e1eccf28SAndroid Build Coastguard Worker const float beta, float *C, const int ldc);
307*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ssyr2k)(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
308*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
309*e1eccf28SAndroid Build Coastguard Worker const float alpha, const float *A, const int lda,
310*e1eccf28SAndroid Build Coastguard Worker const float *B, const int ldb, const float beta,
311*e1eccf28SAndroid Build Coastguard Worker float *C, const int ldc);
312*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_strmm)(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
313*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
314*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_DIAG Diag, const int M, const int N,
315*e1eccf28SAndroid Build Coastguard Worker const float alpha, const float *A, const int lda,
316*e1eccf28SAndroid Build Coastguard Worker float *B, const int ldb);
317*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_strsm)(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
318*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
319*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_DIAG Diag, const int M, const int N,
320*e1eccf28SAndroid Build Coastguard Worker const float alpha, const float *A, const int lda,
321*e1eccf28SAndroid Build Coastguard Worker float *B, const int ldb);
322*e1eccf28SAndroid Build Coastguard Worker
323*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dgemm)(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
324*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
325*e1eccf28SAndroid Build Coastguard Worker const int K, const double alpha, const double *A,
326*e1eccf28SAndroid Build Coastguard Worker const int lda, const double *B, const int ldb,
327*e1eccf28SAndroid Build Coastguard Worker const double beta, double *C, const int ldc);
328*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dsymm)(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
329*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_UPLO Uplo, const int M, const int N,
330*e1eccf28SAndroid Build Coastguard Worker const double alpha, const double *A, const int lda,
331*e1eccf28SAndroid Build Coastguard Worker const double *B, const int ldb, const double beta,
332*e1eccf28SAndroid Build Coastguard Worker double *C, const int ldc);
333*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dsyrk)(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
334*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
335*e1eccf28SAndroid Build Coastguard Worker const double alpha, const double *A, const int lda,
336*e1eccf28SAndroid Build Coastguard Worker const double beta, double *C, const int ldc);
337*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dsyr2k)(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
338*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
339*e1eccf28SAndroid Build Coastguard Worker const double alpha, const double *A, const int lda,
340*e1eccf28SAndroid Build Coastguard Worker const double *B, const int ldb, const double beta,
341*e1eccf28SAndroid Build Coastguard Worker double *C, const int ldc);
342*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dtrmm)(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
343*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
344*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_DIAG Diag, const int M, const int N,
345*e1eccf28SAndroid Build Coastguard Worker const double alpha, const double *A, const int lda,
346*e1eccf28SAndroid Build Coastguard Worker double *B, const int ldb);
347*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_dtrsm)(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
348*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
349*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_DIAG Diag, const int M, const int N,
350*e1eccf28SAndroid Build Coastguard Worker const double alpha, const double *A, const int lda,
351*e1eccf28SAndroid Build Coastguard Worker double *B, const int ldb);
352*e1eccf28SAndroid Build Coastguard Worker
353*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_cgemm)(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
354*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
355*e1eccf28SAndroid Build Coastguard Worker const int K, const void *alpha, const void *A,
356*e1eccf28SAndroid Build Coastguard Worker const int lda, const void *B, const int ldb,
357*e1eccf28SAndroid Build Coastguard Worker const void *beta, void *C, const int ldc);
358*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_csymm)(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
359*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_UPLO Uplo, const int M, const int N,
360*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *A, const int lda,
361*e1eccf28SAndroid Build Coastguard Worker const void *B, const int ldb, const void *beta,
362*e1eccf28SAndroid Build Coastguard Worker void *C, const int ldc);
363*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_csyrk)(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
364*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
365*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *A, const int lda,
366*e1eccf28SAndroid Build Coastguard Worker const void *beta, void *C, const int ldc);
367*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_csyr2k)(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
368*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
369*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *A, const int lda,
370*e1eccf28SAndroid Build Coastguard Worker const void *B, const int ldb, const void *beta,
371*e1eccf28SAndroid Build Coastguard Worker void *C, const int ldc);
372*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ctrmm)(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
373*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
374*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_DIAG Diag, const int M, const int N,
375*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *A, const int lda,
376*e1eccf28SAndroid Build Coastguard Worker void *B, const int ldb);
377*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ctrsm)(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
378*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
379*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_DIAG Diag, const int M, const int N,
380*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *A, const int lda,
381*e1eccf28SAndroid Build Coastguard Worker void *B, const int ldb);
382*e1eccf28SAndroid Build Coastguard Worker
383*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_zgemm)(const enum CBLAS_ORDER Order, const enum CBLAS_TRANSPOSE TransA,
384*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE TransB, const int M, const int N,
385*e1eccf28SAndroid Build Coastguard Worker const int K, const void *alpha, const void *A,
386*e1eccf28SAndroid Build Coastguard Worker const int lda, const void *B, const int ldb,
387*e1eccf28SAndroid Build Coastguard Worker const void *beta, void *C, const int ldc);
388*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_zsymm)(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
389*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_UPLO Uplo, const int M, const int N,
390*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *A, const int lda,
391*e1eccf28SAndroid Build Coastguard Worker const void *B, const int ldb, const void *beta,
392*e1eccf28SAndroid Build Coastguard Worker void *C, const int ldc);
393*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_zsyrk)(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
394*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
395*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *A, const int lda,
396*e1eccf28SAndroid Build Coastguard Worker const void *beta, void *C, const int ldc);
397*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_zsyr2k)(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
398*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
399*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *A, const int lda,
400*e1eccf28SAndroid Build Coastguard Worker const void *B, const int ldb, const void *beta,
401*e1eccf28SAndroid Build Coastguard Worker void *C, const int ldc);
402*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ztrmm)(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
403*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
404*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_DIAG Diag, const int M, const int N,
405*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *A, const int lda,
406*e1eccf28SAndroid Build Coastguard Worker void *B, const int ldb);
407*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_ztrsm)(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
408*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_UPLO Uplo, const enum CBLAS_TRANSPOSE TransA,
409*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_DIAG Diag, const int M, const int N,
410*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *A, const int lda,
411*e1eccf28SAndroid Build Coastguard Worker void *B, const int ldb);
412*e1eccf28SAndroid Build Coastguard Worker
413*e1eccf28SAndroid Build Coastguard Worker
414*e1eccf28SAndroid Build Coastguard Worker /*
415*e1eccf28SAndroid Build Coastguard Worker * Routines with prefixes C and Z only
416*e1eccf28SAndroid Build Coastguard Worker */
417*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_chemm)(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
418*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_UPLO Uplo, const int M, const int N,
419*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *A, const int lda,
420*e1eccf28SAndroid Build Coastguard Worker const void *B, const int ldb, const void *beta,
421*e1eccf28SAndroid Build Coastguard Worker void *C, const int ldc);
422*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_cherk)(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
423*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
424*e1eccf28SAndroid Build Coastguard Worker const float alpha, const void *A, const int lda,
425*e1eccf28SAndroid Build Coastguard Worker const float beta, void *C, const int ldc);
426*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_cher2k)(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
427*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
428*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *A, const int lda,
429*e1eccf28SAndroid Build Coastguard Worker const void *B, const int ldb, const float beta,
430*e1eccf28SAndroid Build Coastguard Worker void *C, const int ldc);
431*e1eccf28SAndroid Build Coastguard Worker
432*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_zhemm)(const enum CBLAS_ORDER Order, const enum CBLAS_SIDE Side,
433*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_UPLO Uplo, const int M, const int N,
434*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *A, const int lda,
435*e1eccf28SAndroid Build Coastguard Worker const void *B, const int ldb, const void *beta,
436*e1eccf28SAndroid Build Coastguard Worker void *C, const int ldc);
437*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_zherk)(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
438*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
439*e1eccf28SAndroid Build Coastguard Worker const double alpha, const void *A, const int lda,
440*e1eccf28SAndroid Build Coastguard Worker const double beta, void *C, const int ldc);
441*e1eccf28SAndroid Build Coastguard Worker typedef void (*FnPtr_cblas_zher2k)(const enum CBLAS_ORDER Order, const enum CBLAS_UPLO Uplo,
442*e1eccf28SAndroid Build Coastguard Worker const enum CBLAS_TRANSPOSE Trans, const int N, const int K,
443*e1eccf28SAndroid Build Coastguard Worker const void *alpha, const void *A, const int lda,
444*e1eccf28SAndroid Build Coastguard Worker const void *B, const int ldb, const double beta,
445*e1eccf28SAndroid Build Coastguard Worker void *C, const int ldc);
446*e1eccf28SAndroid Build Coastguard Worker
447*e1eccf28SAndroid Build Coastguard Worker
448*e1eccf28SAndroid Build Coastguard Worker #ifdef RS_COMPATIBILITY_LIB
449*e1eccf28SAndroid Build Coastguard Worker // Macros to help declare our function pointers for the dispatch table.
450*e1eccf28SAndroid Build Coastguard Worker #define RS_APPLY_MACRO_TO(x) \
451*e1eccf28SAndroid Build Coastguard Worker FnPtr_##x x;
452*e1eccf28SAndroid Build Coastguard Worker #include "rsCpuBLAS.inc"
453*e1eccf28SAndroid Build Coastguard Worker
loadBLASLib()454*e1eccf28SAndroid Build Coastguard Worker bool loadBLASLib() {
455*e1eccf28SAndroid Build Coastguard Worker void* handle = NULL;
456*e1eccf28SAndroid Build Coastguard Worker handle = dlopen("libblasV8.so", RTLD_LAZY | RTLD_LOCAL);
457*e1eccf28SAndroid Build Coastguard Worker
458*e1eccf28SAndroid Build Coastguard Worker if (handle == NULL) {
459*e1eccf28SAndroid Build Coastguard Worker return false;
460*e1eccf28SAndroid Build Coastguard Worker }
461*e1eccf28SAndroid Build Coastguard Worker
462*e1eccf28SAndroid Build Coastguard Worker // Macros to help load the function pointers.
463*e1eccf28SAndroid Build Coastguard Worker #define RS_APPLY_MACRO_TO(x) \
464*e1eccf28SAndroid Build Coastguard Worker x = (FnPtr_##x)dlsym(handle, #x); \
465*e1eccf28SAndroid Build Coastguard Worker if ((x) == nullptr) { \
466*e1eccf28SAndroid Build Coastguard Worker ALOGE("Failed to load " #x " for RS BLAS implementation."); \
467*e1eccf28SAndroid Build Coastguard Worker return false; \
468*e1eccf28SAndroid Build Coastguard Worker }
469*e1eccf28SAndroid Build Coastguard Worker #include "rsCpuBLAS.inc"
470*e1eccf28SAndroid Build Coastguard Worker return true;
471*e1eccf28SAndroid Build Coastguard Worker }
472*e1eccf28SAndroid Build Coastguard Worker #endif
473