1 /*
2  * Copyright (C) 2015 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  * See the License for the specific language governing permissions and
14  * limitations under the License.
15  */
16 
17 /* Don't edit this file alone!
18  * The array names need to match the data generated by blas_gen.py. */
19 
20 package android.cts.rsblas;
21 
22 import android.content.res.AssetManager;
23 import android.content.Context;
24 import java.io.InputStream;
25 import java.io.BufferedReader;
26 import java.io.InputStreamReader;
27 import java.io.IOException;
28 
29 import android.test.AndroidTestCase;
30 
31 public class BLASData extends AndroidTestCase {
32     private BufferedReader mBufReader;
33 
34     int dM;
35     int dN;
36     int dK;
37 
38     int KL;
39     int KU;
40 
41     float[] L2_sGEMV_A_mn;
42     float[] L2_sGEMV_x_n1;
43     float[] L2_sGEMV_x_n2;
44     float[] L2_sGEMV_y_m1;
45     float[] L2_sGEMV_y_m2;
46     float[] L2_sGEMV_o_N;
47     float[] L2_sGEMV_o_N2;
48     float[] L2_sGEMV_o_T;
49     float[] L2_sGEMV_o_H;
50 
51     double[] L2_dGEMV_A_mn;
52     double[] L2_dGEMV_x_n1;
53     double[] L2_dGEMV_x_n2;
54     double[] L2_dGEMV_y_m1;
55     double[] L2_dGEMV_y_m2;
56     double[] L2_dGEMV_o_N;
57     double[] L2_dGEMV_o_N2;
58     double[] L2_dGEMV_o_T;
59     double[] L2_dGEMV_o_H;
60 
61     float[] L2_cGEMV_A_mn;
62     float[] L2_cGEMV_x_n1;
63     float[] L2_cGEMV_x_n2;
64     float[] L2_cGEMV_y_m1;
65     float[] L2_cGEMV_y_m2;
66     float[] L2_cGEMV_o_N;
67     float[] L2_cGEMV_o_N2;
68     float[] L2_cGEMV_o_T;
69     float[] L2_cGEMV_o_H;
70 
71     double[] L2_zGEMV_A_mn;
72     double[] L2_zGEMV_x_n1;
73     double[] L2_zGEMV_x_n2;
74     double[] L2_zGEMV_y_m1;
75     double[] L2_zGEMV_y_m2;
76     double[] L2_zGEMV_o_N;
77     double[] L2_zGEMV_o_N2;
78     double[] L2_zGEMV_o_T;
79     double[] L2_zGEMV_o_H;
80 
81     float[] L2_sGBMV_A_mn;
82     float[] L2_sGBMV_x_n1;
83     float[] L2_sGBMV_x_n2;
84     float[] L2_sGBMV_y_m1;
85     float[] L2_sGBMV_y_m2;
86     float[] L2_sGBMV_o_N;
87     float[] L2_sGBMV_o_N2;
88     float[] L2_sGBMV_o_T;
89     float[] L2_sGBMV_o_H;
90 
91     double[] L2_dGBMV_A_mn;
92     double[] L2_dGBMV_x_n1;
93     double[] L2_dGBMV_x_n2;
94     double[] L2_dGBMV_y_m1;
95     double[] L2_dGBMV_y_m2;
96     double[] L2_dGBMV_o_N;
97     double[] L2_dGBMV_o_N2;
98     double[] L2_dGBMV_o_T;
99     double[] L2_dGBMV_o_H;
100 
101     float[] L2_cGBMV_A_mn;
102     float[] L2_cGBMV_x_n1;
103     float[] L2_cGBMV_x_n2;
104     float[] L2_cGBMV_y_m1;
105     float[] L2_cGBMV_y_m2;
106     float[] L2_cGBMV_o_N;
107     float[] L2_cGBMV_o_N2;
108     float[] L2_cGBMV_o_T;
109     float[] L2_cGBMV_o_H;
110 
111     double[] L2_zGBMV_A_mn;
112     double[] L2_zGBMV_x_n1;
113     double[] L2_zGBMV_x_n2;
114     double[] L2_zGBMV_y_m1;
115     double[] L2_zGBMV_y_m2;
116     double[] L2_zGBMV_o_N;
117     double[] L2_zGBMV_o_N2;
118     double[] L2_zGBMV_o_T;
119     double[] L2_zGBMV_o_H;
120 
121     float[] L2_cHEMV_A_nn;
122     float[] L2_cHEMV_A_nn_pu;
123     float[] L2_cHEMV_x_n1;
124     float[] L2_cHEMV_x_n2;
125     float[] L2_cHEMV_y_n1;
126     float[] L2_cHEMV_y_n2;
127     float[] L2_cHEMV_o_N;
128     float[] L2_cHEMV_o_N2;
129 
130     double[] L2_zHEMV_A_nn;
131     double[] L2_zHEMV_A_nn_pu;
132     double[] L2_zHEMV_x_n1;
133     double[] L2_zHEMV_x_n2;
134     double[] L2_zHEMV_y_n1;
135     double[] L2_zHEMV_y_n2;
136     double[] L2_zHEMV_o_N;
137     double[] L2_zHEMV_o_N2;
138 
139     float[] L2_cHBMV_A_nn;
140     float[] L2_cHBMV_x_n1;
141     float[] L2_cHBMV_x_n2;
142     float[] L2_cHBMV_y_n1;
143     float[] L2_cHBMV_y_n2;
144     float[] L2_cHBMV_o_N;
145     float[] L2_cHBMV_o_N2;
146 
147     double[] L2_zHBMV_A_nn;
148     double[] L2_zHBMV_x_n1;
149     double[] L2_zHBMV_x_n2;
150     double[] L2_zHBMV_y_n1;
151     double[] L2_zHBMV_y_n2;
152     double[] L2_zHBMV_o_N;
153     double[] L2_zHBMV_o_N2;
154 
155     float[] L2_sSYMV_A_nn;
156     float[] L2_sSYMV_A_nn_pu;
157     float[] L2_sSYMV_x_n1;
158     float[] L2_sSYMV_x_n2;
159     float[] L2_sSYMV_y_n1;
160     float[] L2_sSYMV_y_n2;
161     float[] L2_sSYMV_o_N;
162     float[] L2_sSYMV_o_N2;
163 
164     double[] L2_dSYMV_A_nn;
165     double[] L2_dSYMV_A_nn_pu;
166     double[] L2_dSYMV_x_n1;
167     double[] L2_dSYMV_x_n2;
168     double[] L2_dSYMV_y_n1;
169     double[] L2_dSYMV_y_n2;
170     double[] L2_dSYMV_o_N;
171     double[] L2_dSYMV_o_N2;
172 
173     float[] L2_sSBMV_A_nn;
174     float[] L2_sSBMV_x_n1;
175     float[] L2_sSBMV_x_n2;
176     float[] L2_sSBMV_y_n1;
177     float[] L2_sSBMV_y_n2;
178     float[] L2_sSBMV_o_N;
179     float[] L2_sSBMV_o_N2;
180 
181     double[] L2_dSBMV_A_nn;
182     double[] L2_dSBMV_x_n1;
183     double[] L2_dSBMV_x_n2;
184     double[] L2_dSBMV_y_n1;
185     double[] L2_dSBMV_y_n2;
186     double[] L2_dSBMV_o_N;
187     double[] L2_dSBMV_o_N2;
188 
189     float[] L2_sTRMV_A_nn;
190     float[] L2_sTRMV_A_nn_pu;
191     float[] L2_sTRMV_x_n1;
192     float[] L2_sTRMV_x_n2;
193     float[] L2_sTRMV_o_UN;
194     float[] L2_sTRMV_o_UN2;
195     float[] L2_sTRMV_o_UT;
196     float[] L2_sTRMV_o_UH;
197 
198     double[] L2_dTRMV_A_nn;
199     double[] L2_dTRMV_A_nn_pu;
200     double[] L2_dTRMV_x_n1;
201     double[] L2_dTRMV_x_n2;
202     double[] L2_dTRMV_o_UN;
203     double[] L2_dTRMV_o_UN2;
204     double[] L2_dTRMV_o_UT;
205     double[] L2_dTRMV_o_UH;
206 
207     float[] L2_cTRMV_A_nn;
208     float[] L2_cTRMV_A_nn_pu;
209     float[] L2_cTRMV_x_n1;
210     float[] L2_cTRMV_x_n2;
211     float[] L2_cTRMV_o_UN;
212     float[] L2_cTRMV_o_UN2;
213     float[] L2_cTRMV_o_UT;
214     float[] L2_cTRMV_o_UH;
215 
216     double[] L2_zTRMV_A_nn;
217     double[] L2_zTRMV_A_nn_pu;
218     double[] L2_zTRMV_x_n1;
219     double[] L2_zTRMV_x_n2;
220     double[] L2_zTRMV_o_UN;
221     double[] L2_zTRMV_o_UN2;
222     double[] L2_zTRMV_o_UT;
223     double[] L2_zTRMV_o_UH;
224 
225     float[] L2_sTBMV_A_nn;
226     float[] L2_sTBMV_x_n1;
227     float[] L2_sTBMV_x_n2;
228     float[] L2_sTBMV_o_UN;
229     float[] L2_sTBMV_o_UN2;
230     float[] L2_sTBMV_o_UT;
231     float[] L2_sTBMV_o_UH;
232 
233     double[] L2_dTBMV_A_nn;
234     double[] L2_dTBMV_x_n1;
235     double[] L2_dTBMV_x_n2;
236     double[] L2_dTBMV_o_UN;
237     double[] L2_dTBMV_o_UN2;
238     double[] L2_dTBMV_o_UT;
239     double[] L2_dTBMV_o_UH;
240 
241     float[] L2_cTBMV_A_nn;
242     float[] L2_cTBMV_x_n1;
243     float[] L2_cTBMV_x_n2;
244     float[] L2_cTBMV_o_UN;
245     float[] L2_cTBMV_o_UN2;
246     float[] L2_cTBMV_o_UT;
247     float[] L2_cTBMV_o_UH;
248 
249     double[] L2_zTBMV_A_nn;
250     double[] L2_zTBMV_x_n1;
251     double[] L2_zTBMV_x_n2;
252     double[] L2_zTBMV_o_UN;
253     double[] L2_zTBMV_o_UN2;
254     double[] L2_zTBMV_o_UT;
255     double[] L2_zTBMV_o_UH;
256 
257     float[] L2_sTRSV_A_nn;
258     float[] L2_sTRSV_A_nn_pu;
259     float[] L2_sTRSV_x_n1;
260     float[] L2_sTRSV_x_n2;
261     float[] L2_sTRSV_o_UN;
262     float[] L2_sTRSV_o_UN2;
263     float[] L2_sTRSV_o_UT;
264     float[] L2_sTRSV_o_UH;
265 
266     double[] L2_dTRSV_A_nn;
267     double[] L2_dTRSV_A_nn_pu;
268     double[] L2_dTRSV_x_n1;
269     double[] L2_dTRSV_x_n2;
270     double[] L2_dTRSV_o_UN;
271     double[] L2_dTRSV_o_UN2;
272     double[] L2_dTRSV_o_UT;
273     double[] L2_dTRSV_o_UH;
274 
275     float[] L2_cTRSV_A_nn;
276     float[] L2_cTRSV_A_nn_pu;
277     float[] L2_cTRSV_x_n1;
278     float[] L2_cTRSV_x_n2;
279     float[] L2_cTRSV_o_UN;
280     float[] L2_cTRSV_o_UN2;
281     float[] L2_cTRSV_o_UT;
282     float[] L2_cTRSV_o_UH;
283 
284     double[] L2_zTRSV_A_nn;
285     double[] L2_zTRSV_A_nn_pu;
286     double[] L2_zTRSV_x_n1;
287     double[] L2_zTRSV_x_n2;
288     double[] L2_zTRSV_o_UN;
289     double[] L2_zTRSV_o_UN2;
290     double[] L2_zTRSV_o_UT;
291     double[] L2_zTRSV_o_UH;
292 
293     float[] L2_sTBSV_A_nn;
294     float[] L2_sTBSV_x_n1;
295     float[] L2_sTBSV_x_n2;
296     float[] L2_sTBSV_o_UN;
297     float[] L2_sTBSV_o_UN2;
298     float[] L2_sTBSV_o_UT;
299     float[] L2_sTBSV_o_UH;
300 
301     double[] L2_dTBSV_A_nn;
302     double[] L2_dTBSV_x_n1;
303     double[] L2_dTBSV_x_n2;
304     double[] L2_dTBSV_o_UN;
305     double[] L2_dTBSV_o_UN2;
306     double[] L2_dTBSV_o_UT;
307     double[] L2_dTBSV_o_UH;
308 
309     float[] L2_cTBSV_A_nn;
310     float[] L2_cTBSV_x_n1;
311     float[] L2_cTBSV_x_n2;
312     float[] L2_cTBSV_o_UN;
313     float[] L2_cTBSV_o_UN2;
314     float[] L2_cTBSV_o_UT;
315     float[] L2_cTBSV_o_UH;
316 
317     double[] L2_zTBSV_A_nn;
318     double[] L2_zTBSV_x_n1;
319     double[] L2_zTBSV_x_n2;
320     double[] L2_zTBSV_o_UN;
321     double[] L2_zTBSV_o_UN2;
322     double[] L2_zTBSV_o_UT;
323     double[] L2_zTBSV_o_UH;
324 
325     float[] L2_sGER_A_mn;
326     float[] L2_sGER_x_m1;
327     float[] L2_sGER_x_m2;
328     float[] L2_sGER_y_n1;
329     float[] L2_sGER_y_n2;
330     float[] L2_sGER_o_N;
331 
332     double[] L2_dGER_A_mn;
333     double[] L2_dGER_x_m1;
334     double[] L2_dGER_x_m2;
335     double[] L2_dGER_y_n1;
336     double[] L2_dGER_y_n2;
337     double[] L2_dGER_o_N;
338 
339     float[] L2_cGERU_A_mn;
340     float[] L2_cGERU_x_m1;
341     float[] L2_cGERU_x_m2;
342     float[] L2_cGERU_y_n1;
343     float[] L2_cGERU_y_n2;
344     float[] L2_cGERU_o_N;
345 
346     double[] L2_zGERU_A_mn;
347     double[] L2_zGERU_x_m1;
348     double[] L2_zGERU_x_m2;
349     double[] L2_zGERU_y_n1;
350     double[] L2_zGERU_y_n2;
351     double[] L2_zGERU_o_N;
352 
353     float[] L2_cGERC_A_mn;
354     float[] L2_cGERC_x_m1;
355     float[] L2_cGERC_x_m2;
356     float[] L2_cGERC_y_n1;
357     float[] L2_cGERC_y_n2;
358     float[] L2_cGERC_o_N;
359 
360     double[] L2_zGERC_A_mn;
361     double[] L2_zGERC_x_m1;
362     double[] L2_zGERC_x_m2;
363     double[] L2_zGERC_y_n1;
364     double[] L2_zGERC_y_n2;
365     double[] L2_zGERC_o_N;
366 
367     float[] L2_cHER_A_nn;
368     float[] L2_cHER_A_nn_pu;
369     float[] L2_cHER_x_n1;
370     float[] L2_cHER_x_n2;
371     float[] L2_cHER_o_N;
372     float[] L2_cHER_o_N_pu;
373 
374     double[] L2_zHER_A_nn;
375     double[] L2_zHER_A_nn_pu;
376     double[] L2_zHER_x_n1;
377     double[] L2_zHER_x_n2;
378     double[] L2_zHER_o_N;
379     double[] L2_zHER_o_N_pu;
380 
381     float[] L2_cHER2_A_nn;
382     float[] L2_cHER2_A_nn_pu;
383     float[] L2_cHER2_x_n1;
384     float[] L2_cHER2_x_n2;
385     float[] L2_cHER2_y_n1;
386     float[] L2_cHER2_y_n2;
387     float[] L2_cHER2_o_N;
388     float[] L2_cHER2_o_N_pu;
389 
390     double[] L2_zHER2_A_nn;
391     double[] L2_zHER2_A_nn_pu;
392     double[] L2_zHER2_x_n1;
393     double[] L2_zHER2_x_n2;
394     double[] L2_zHER2_y_n1;
395     double[] L2_zHER2_y_n2;
396     double[] L2_zHER2_o_N;
397     double[] L2_zHER2_o_N_pu;
398 
399     float[] L2_sSYR_A_nn;
400     float[] L2_sSYR_A_nn_pu;
401     float[] L2_sSYR_x_n1;
402     float[] L2_sSYR_x_n2;
403     float[] L2_sSYR_o_N;
404     float[] L2_sSYR_o_N_pu;
405 
406     double[] L2_dSYR_A_nn;
407     double[] L2_dSYR_A_nn_pu;
408     double[] L2_dSYR_x_n1;
409     double[] L2_dSYR_x_n2;
410     double[] L2_dSYR_o_N;
411     double[] L2_dSYR_o_N_pu;
412 
413     float[] L2_sSYR2_A_nn;
414     float[] L2_sSYR2_A_nn_pu;
415     float[] L2_sSYR2_x_n1;
416     float[] L2_sSYR2_x_n2;
417     float[] L2_sSYR2_y_n1;
418     float[] L2_sSYR2_y_n2;
419     float[] L2_sSYR2_o_N;
420     float[] L2_sSYR2_o_N_pu;
421 
422     double[] L2_dSYR2_A_nn;
423     double[] L2_dSYR2_A_nn_pu;
424     double[] L2_dSYR2_x_n1;
425     double[] L2_dSYR2_x_n2;
426     double[] L2_dSYR2_y_n1;
427     double[] L2_dSYR2_y_n2;
428     double[] L2_dSYR2_o_N;
429     double[] L2_dSYR2_o_N_pu;
430 
431     float[] L3_sGEMM_A_mk;
432     float[] L3_sGEMM_B_kn;
433     float[] L3_sGEMM_C_mn;
434     float[] L3_sGEMM_o_NN;
435     float[] L3_sGEMM_A_km;
436     float[] L3_sGEMM_B_nk;
437     float[] L3_sGEMM_o_TT;
438     float[] L3_sGEMM_o_HH;
439 
440     double[] L3_dGEMM_A_mk;
441     double[] L3_dGEMM_B_kn;
442     double[] L3_dGEMM_C_mn;
443     double[] L3_dGEMM_o_NN;
444     double[] L3_dGEMM_A_km;
445     double[] L3_dGEMM_B_nk;
446     double[] L3_dGEMM_o_TT;
447     double[] L3_dGEMM_o_HH;
448     float[] L3_cGEMM_A_mk;
449     float[] L3_cGEMM_B_kn;
450     float[] L3_cGEMM_C_mn;
451     float[] L3_cGEMM_o_NN;
452     float[] L3_cGEMM_A_km;
453     float[] L3_cGEMM_B_nk;
454     float[] L3_cGEMM_o_TT;
455     float[] L3_cGEMM_o_HH;
456 
457     double[] L3_zGEMM_A_mk;
458     double[] L3_zGEMM_B_kn;
459     double[] L3_zGEMM_C_mn;
460     double[] L3_zGEMM_o_NN;
461     double[] L3_zGEMM_A_km;
462     double[] L3_zGEMM_B_nk;
463     double[] L3_zGEMM_o_TT;
464     double[] L3_zGEMM_o_HH;
465 
466     float[] L3_sSYMM_A_mm;
467     float[] L3_sSYMM_B_mn;
468     float[] L3_sSYMM_C_mn;
469     float[] L3_sSYMM_o_L;
470     float[] L3_sSYMM_A_nn;
471     float[] L3_sSYMM_o_R;
472 
473     double[] L3_dSYMM_A_mm;
474     double[] L3_dSYMM_B_mn;
475     double[] L3_dSYMM_C_mn;
476     double[] L3_dSYMM_o_L;
477     double[] L3_dSYMM_A_nn;
478     double[] L3_dSYMM_o_R;
479 
480     float[] L3_cSYMM_A_mm;
481     float[] L3_cSYMM_B_mn;
482     float[] L3_cSYMM_C_mn;
483     float[] L3_cSYMM_o_L;
484     float[] L3_cSYMM_A_nn;
485     float[] L3_cSYMM_o_R;
486 
487     double[] L3_zSYMM_A_mm;
488     double[] L3_zSYMM_B_mn;
489     double[] L3_zSYMM_C_mn;
490     double[] L3_zSYMM_o_L;
491     double[] L3_zSYMM_A_nn;
492     double[] L3_zSYMM_o_R;
493 
494     float[] L3_cHEMM_A_mm;
495     float[] L3_cHEMM_B_mn;
496     float[] L3_cHEMM_C_mn;
497     float[] L3_cHEMM_o_L;
498     float[] L3_cHEMM_A_nn;
499     float[] L3_cHEMM_o_R;
500 
501     double[] L3_zHEMM_A_mm;
502     double[] L3_zHEMM_B_mn;
503     double[] L3_zHEMM_C_mn;
504     double[] L3_zHEMM_o_L;
505     double[] L3_zHEMM_A_nn;
506     double[] L3_zHEMM_o_R;
507 
508     float[] L3_sSYRK_A_nk;
509     float[] L3_sSYRK_C_nn;
510     float[] L3_sSYRK_o_N;
511     float[] L3_sSYRK_A_kn;
512     float[] L3_sSYRK_o_T;
513 
514     double[] L3_dSYRK_A_nk;
515     double[] L3_dSYRK_C_nn;
516     double[] L3_dSYRK_o_N;
517     double[] L3_dSYRK_A_kn;
518     double[] L3_dSYRK_o_T;
519 
520     float[] L3_cSYRK_A_nk;
521     float[] L3_cSYRK_C_nn;
522     float[] L3_cSYRK_o_N;
523     float[] L3_cSYRK_A_kn;
524     float[] L3_cSYRK_o_T;
525 
526     double[] L3_zSYRK_A_nk;
527     double[] L3_zSYRK_C_nn;
528     double[] L3_zSYRK_o_N;
529     double[] L3_zSYRK_A_kn;
530     double[] L3_zSYRK_o_T;
531 
532     float[] L3_cHERK_A_nk;
533     float[] L3_cHERK_C_nn;
534     float[] L3_cHERK_o_N;
535     float[] L3_cHERK_A_kn;
536     float[] L3_cHERK_o_H;
537 
538     double[] L3_zHERK_A_nk;
539     double[] L3_zHERK_C_nn;
540     double[] L3_zHERK_o_N;
541     double[] L3_zHERK_A_kn;
542     double[] L3_zHERK_o_H;
543 
544     float[] L3_sSYR2K_A_nk;
545     float[] L3_sSYR2K_B_nk;
546     float[] L3_sSYR2K_C_nn;
547     float[] L3_sSYR2K_o_N;
548     float[] L3_sSYR2K_A_kn;
549     float[] L3_sSYR2K_B_kn;
550     float[] L3_sSYR2K_o_T;
551 
552     double[] L3_dSYR2K_A_nk;
553     double[] L3_dSYR2K_B_nk;
554     double[] L3_dSYR2K_C_nn;
555     double[] L3_dSYR2K_o_N;
556     double[] L3_dSYR2K_A_kn;
557     double[] L3_dSYR2K_B_kn;
558     double[] L3_dSYR2K_o_T;
559 
560     float[] L3_cSYR2K_A_nk;
561     float[] L3_cSYR2K_B_nk;
562     float[] L3_cSYR2K_C_nn;
563     float[] L3_cSYR2K_o_N;
564     float[] L3_cSYR2K_A_kn;
565     float[] L3_cSYR2K_B_kn;
566     float[] L3_cSYR2K_o_T;
567 
568     double[] L3_zSYR2K_A_nk;
569     double[] L3_zSYR2K_B_nk;
570     double[] L3_zSYR2K_C_nn;
571     double[] L3_zSYR2K_o_N;
572     double[] L3_zSYR2K_A_kn;
573     double[] L3_zSYR2K_B_kn;
574     double[] L3_zSYR2K_o_T;
575 
576     float[] L3_cHER2K_A_nk;
577     float[] L3_cHER2K_B_nk;
578     float[] L3_cHER2K_C_nn;
579     float[] L3_cHER2K_o_N;
580     float[] L3_cHER2K_A_kn;
581     float[] L3_cHER2K_B_kn;
582     float[] L3_cHER2K_o_H;
583 
584     double[] L3_zHER2K_A_nk;
585     double[] L3_zHER2K_B_nk;
586     double[] L3_zHER2K_C_nn;
587     double[] L3_zHER2K_o_N;
588     double[] L3_zHER2K_A_kn;
589     double[] L3_zHER2K_B_kn;
590     double[] L3_zHER2K_o_H;
591 
592     float[] L3_sTRMM_A_mm;
593     float[] L3_sTRMM_B_mn;
594     float[] L3_sTRMM_o_LUN;
595     float[] L3_sTRMM_A_nn;
596     float[] L3_sTRMM_o_RLT;
597 
598     double[] L3_dTRMM_A_mm;
599     double[] L3_dTRMM_B_mn;
600     double[] L3_dTRMM_o_LUN;
601     double[] L3_dTRMM_A_nn;
602     double[] L3_dTRMM_o_RLT;
603 
604     float[] L3_cTRMM_A_mm;
605     float[] L3_cTRMM_B_mn;
606     float[] L3_cTRMM_o_LUN;
607     float[] L3_cTRMM_A_nn;
608     float[] L3_cTRMM_o_RLT;
609 
610     double[] L3_zTRMM_A_mm;
611     double[] L3_zTRMM_B_mn;
612     double[] L3_zTRMM_o_LUN;
613     double[] L3_zTRMM_A_nn;
614     double[] L3_zTRMM_o_RLT;
615 
616     float[] L3_sTRSM_A_mm;
617     float[] L3_sTRSM_B_mn;
618     float[] L3_sTRSM_o_LUN;
619     float[] L3_sTRSM_A_nn;
620     float[] L3_sTRSM_o_RLT;
621 
622     double[] L3_dTRSM_A_mm;
623     double[] L3_dTRSM_B_mn;
624     double[] L3_dTRSM_o_LUN;
625     double[] L3_dTRSM_A_nn;
626     double[] L3_dTRSM_o_RLT;
627 
628     float[] L3_cTRSM_A_mm;
629     float[] L3_cTRSM_B_mn;
630     float[] L3_cTRSM_o_LUN;
631     float[] L3_cTRSM_A_nn;
632     float[] L3_cTRSM_o_RLT;
633 
634     double[] L3_zTRSM_A_mm;
635     double[] L3_zTRSM_B_mn;
636     double[] L3_zTRSM_o_LUN;
637     double[] L3_zTRSM_A_nn;
638     double[] L3_zTRSM_o_RLT;
639 
640     //load dimensions of matrixes
loadMNK()641     private void loadMNK() throws Exception {
642         String data = "";
643         int skipLine = 3;
644 
645         for (int i = 0; i < skipLine; i++) {
646             data = mBufReader.readLine();
647         }
648         data = mBufReader.readLine();
649 
650         String[] results = data.split(" ");
651         dM = Integer.parseInt(results[0]);
652         dN = Integer.parseInt(results[1]);
653         dK = Integer.parseInt(results[2]);
654         KL = Integer.parseInt(results[3]);
655         KU = Integer.parseInt(results[4]);
656     }
657 
loadFloatArray()658     private float[] loadFloatArray() throws Exception {
659         String data = "";
660         int skipLine = 2;
661 
662         for (int i = 0; i < skipLine; i++) {
663             data = mBufReader.readLine();
664         }
665         data = mBufReader.readLine();
666         String[] results = data.split(", ");
667 
668         float[] floatArr = new float[results.length];
669         for (int i = 0; i < floatArr.length; i++) {
670             floatArr[i] = Float.parseFloat(results[i]);
671         }
672 
673         return floatArr;
674     }
675 
loadDoubleArray()676     private double[] loadDoubleArray() throws Exception {
677         String data = "";
678         int skipLine = 2;
679 
680         for (int i = 0; i < skipLine; i++) {
681             data = mBufReader.readLine();
682         }
683         data = mBufReader.readLine();
684         String[] results = data.split(", ");
685 
686         double[] doubleArr = new double[results.length];
687         for (int i = 0; i < doubleArr.length; i++) {
688             doubleArr[i] = Double.parseDouble(results[i]);
689         }
690         return doubleArr;
691     }
692 
693     //load data for L2 BLAS
loadGEMVData()694     private void loadGEMVData() throws Exception {
695         L2_sGEMV_A_mn = loadFloatArray();
696         L2_sGEMV_x_n1 = loadFloatArray();
697         L2_sGEMV_x_n2 = loadFloatArray();
698         L2_sGEMV_y_m1 = loadFloatArray();
699         L2_sGEMV_y_m2 = loadFloatArray();
700         L2_sGEMV_o_N = loadFloatArray();
701         L2_sGEMV_o_N2 = loadFloatArray();
702         L2_sGEMV_o_T = loadFloatArray();
703         L2_sGEMV_o_H = loadFloatArray();
704 
705         L2_dGEMV_A_mn = loadDoubleArray();
706         L2_dGEMV_x_n1 = loadDoubleArray();
707         L2_dGEMV_x_n2 = loadDoubleArray();
708         L2_dGEMV_y_m1 = loadDoubleArray();
709         L2_dGEMV_y_m2 = loadDoubleArray();
710         L2_dGEMV_o_N = loadDoubleArray();
711         L2_dGEMV_o_N2 = loadDoubleArray();
712         L2_dGEMV_o_T = loadDoubleArray();
713         L2_dGEMV_o_H = loadDoubleArray();
714 
715         L2_cGEMV_A_mn = loadFloatArray();
716         L2_cGEMV_x_n1 = loadFloatArray();
717         L2_cGEMV_x_n2 = loadFloatArray();
718         L2_cGEMV_y_m1 = loadFloatArray();
719         L2_cGEMV_y_m2 = loadFloatArray();
720         L2_cGEMV_o_N = loadFloatArray();
721         L2_cGEMV_o_N2 = loadFloatArray();
722         L2_cGEMV_o_T = loadFloatArray();
723         L2_cGEMV_o_H = loadFloatArray();
724 
725         L2_zGEMV_A_mn = loadDoubleArray();
726         L2_zGEMV_x_n1 = loadDoubleArray();
727         L2_zGEMV_x_n2 = loadDoubleArray();
728         L2_zGEMV_y_m1 = loadDoubleArray();
729         L2_zGEMV_y_m2 = loadDoubleArray();
730         L2_zGEMV_o_N = loadDoubleArray();
731         L2_zGEMV_o_N2 = loadDoubleArray();
732         L2_zGEMV_o_T = loadDoubleArray();
733         L2_zGEMV_o_H = loadDoubleArray();
734 
735     }
736 
loadGBMVData()737     private void loadGBMVData() throws Exception {
738         L2_sGBMV_A_mn = loadFloatArray();
739         L2_sGBMV_x_n1 = loadFloatArray();
740         L2_sGBMV_x_n2 = loadFloatArray();
741         L2_sGBMV_y_m1 = loadFloatArray();
742         L2_sGBMV_y_m2 = loadFloatArray();
743         L2_sGBMV_o_N = loadFloatArray();
744         L2_sGBMV_o_N2 = loadFloatArray();
745         L2_sGBMV_o_T = loadFloatArray();
746         L2_sGBMV_o_H = loadFloatArray();
747 
748         L2_dGBMV_A_mn = loadDoubleArray();
749         L2_dGBMV_x_n1 = loadDoubleArray();
750         L2_dGBMV_x_n2 = loadDoubleArray();
751         L2_dGBMV_y_m1 = loadDoubleArray();
752         L2_dGBMV_y_m2 = loadDoubleArray();
753         L2_dGBMV_o_N = loadDoubleArray();
754         L2_dGBMV_o_N2 = loadDoubleArray();
755         L2_dGBMV_o_T = loadDoubleArray();
756         L2_dGBMV_o_H = loadDoubleArray();
757 
758         L2_cGBMV_A_mn = loadFloatArray();
759         L2_cGBMV_x_n1 = loadFloatArray();
760         L2_cGBMV_x_n2 = loadFloatArray();
761         L2_cGBMV_y_m1 = loadFloatArray();
762         L2_cGBMV_y_m2 = loadFloatArray();
763         L2_cGBMV_o_N = loadFloatArray();
764         L2_cGBMV_o_N2 = loadFloatArray();
765         L2_cGBMV_o_T = loadFloatArray();
766         L2_cGBMV_o_H = loadFloatArray();
767 
768         L2_zGBMV_A_mn = loadDoubleArray();
769         L2_zGBMV_x_n1 = loadDoubleArray();
770         L2_zGBMV_x_n2 = loadDoubleArray();
771         L2_zGBMV_y_m1 = loadDoubleArray();
772         L2_zGBMV_y_m2 = loadDoubleArray();
773         L2_zGBMV_o_N = loadDoubleArray();
774         L2_zGBMV_o_N2 = loadDoubleArray();
775         L2_zGBMV_o_T = loadDoubleArray();
776         L2_zGBMV_o_H = loadDoubleArray();
777     }
778 
loadHEMVData()779     private void loadHEMVData() throws Exception {
780         L2_cHEMV_A_nn = loadFloatArray();
781         L2_cHEMV_A_nn_pu = loadFloatArray();
782         L2_cHEMV_x_n1 = loadFloatArray();
783         L2_cHEMV_x_n2 = loadFloatArray();
784         L2_cHEMV_y_n1 = loadFloatArray();
785         L2_cHEMV_y_n2 = loadFloatArray();
786         L2_cHEMV_o_N = loadFloatArray();
787         L2_cHEMV_o_N2 = loadFloatArray();
788 
789         L2_zHEMV_A_nn = loadDoubleArray();
790         L2_zHEMV_A_nn_pu = loadDoubleArray();
791         L2_zHEMV_x_n1 = loadDoubleArray();
792         L2_zHEMV_x_n2 = loadDoubleArray();
793         L2_zHEMV_y_n1 = loadDoubleArray();
794         L2_zHEMV_y_n2 = loadDoubleArray();
795         L2_zHEMV_o_N = loadDoubleArray();
796         L2_zHEMV_o_N2 = loadDoubleArray();
797     }
798 
loadHBMVData()799     private void loadHBMVData() throws Exception {
800         L2_cHBMV_A_nn = loadFloatArray();
801         L2_cHBMV_x_n1 = loadFloatArray();
802         L2_cHBMV_x_n2 = loadFloatArray();
803         L2_cHBMV_y_n1 = loadFloatArray();
804         L2_cHBMV_y_n2 = loadFloatArray();
805         L2_cHBMV_o_N = loadFloatArray();
806         L2_cHBMV_o_N2 = loadFloatArray();
807 
808         L2_zHBMV_A_nn = loadDoubleArray();
809         L2_zHBMV_x_n1 = loadDoubleArray();
810         L2_zHBMV_x_n2 = loadDoubleArray();
811         L2_zHBMV_y_n1 = loadDoubleArray();
812         L2_zHBMV_y_n2 = loadDoubleArray();
813         L2_zHBMV_o_N = loadDoubleArray();
814         L2_zHBMV_o_N2 = loadDoubleArray();
815     }
816 
loadSYMVData()817     private void loadSYMVData() throws Exception {
818         L2_sSYMV_A_nn = loadFloatArray();
819         L2_sSYMV_A_nn_pu = loadFloatArray();
820         L2_sSYMV_x_n1 = loadFloatArray();
821         L2_sSYMV_x_n2 = loadFloatArray();
822         L2_sSYMV_y_n1 = loadFloatArray();
823         L2_sSYMV_y_n2 = loadFloatArray();
824         L2_sSYMV_o_N = loadFloatArray();
825         L2_sSYMV_o_N2 = loadFloatArray();
826 
827         L2_dSYMV_A_nn = loadDoubleArray();
828         L2_dSYMV_A_nn_pu = loadDoubleArray();
829         L2_dSYMV_x_n1 = loadDoubleArray();
830         L2_dSYMV_x_n2 = loadDoubleArray();
831         L2_dSYMV_y_n1 = loadDoubleArray();
832         L2_dSYMV_y_n2 = loadDoubleArray();
833         L2_dSYMV_o_N = loadDoubleArray();
834         L2_dSYMV_o_N2 = loadDoubleArray();
835     }
836 
loadSBMVData()837     private void loadSBMVData() throws Exception {
838         L2_sSBMV_A_nn = loadFloatArray();
839         L2_sSBMV_x_n1 = loadFloatArray();
840         L2_sSBMV_x_n2 = loadFloatArray();
841         L2_sSBMV_y_n1 = loadFloatArray();
842         L2_sSBMV_y_n2 = loadFloatArray();
843         L2_sSBMV_o_N = loadFloatArray();
844         L2_sSBMV_o_N2 = loadFloatArray();
845 
846         L2_dSBMV_A_nn = loadDoubleArray();
847         L2_dSBMV_x_n1 = loadDoubleArray();
848         L2_dSBMV_x_n2 = loadDoubleArray();
849         L2_dSBMV_y_n1 = loadDoubleArray();
850         L2_dSBMV_y_n2 = loadDoubleArray();
851         L2_dSBMV_o_N = loadDoubleArray();
852         L2_dSBMV_o_N2 = loadDoubleArray();
853     }
854 
loadTRMVData()855     private void loadTRMVData() throws Exception {
856         L2_sTRMV_A_nn = loadFloatArray();
857         L2_sTRMV_A_nn_pu = loadFloatArray();
858         L2_sTRMV_x_n1 = loadFloatArray();
859         L2_sTRMV_x_n2 = loadFloatArray();
860         L2_sTRMV_o_UN = loadFloatArray();
861         L2_sTRMV_o_UN2 = loadFloatArray();
862         L2_sTRMV_o_UT = loadFloatArray();
863         L2_sTRMV_o_UH = loadFloatArray();
864 
865         L2_dTRMV_A_nn = loadDoubleArray();
866         L2_dTRMV_A_nn_pu = loadDoubleArray();
867         L2_dTRMV_x_n1 = loadDoubleArray();
868         L2_dTRMV_x_n2 = loadDoubleArray();
869         L2_dTRMV_o_UN = loadDoubleArray();
870         L2_dTRMV_o_UN2 = loadDoubleArray();
871         L2_dTRMV_o_UT = loadDoubleArray();
872         L2_dTRMV_o_UH = loadDoubleArray();
873 
874         L2_cTRMV_A_nn = loadFloatArray();
875         L2_cTRMV_A_nn_pu = loadFloatArray();
876         L2_cTRMV_x_n1 = loadFloatArray();
877         L2_cTRMV_x_n2 = loadFloatArray();
878         L2_cTRMV_o_UN = loadFloatArray();
879         L2_cTRMV_o_UN2 = loadFloatArray();
880         L2_cTRMV_o_UT = loadFloatArray();
881         L2_cTRMV_o_UH = loadFloatArray();
882 
883         L2_zTRMV_A_nn = loadDoubleArray();
884         L2_zTRMV_A_nn_pu = loadDoubleArray();
885         L2_zTRMV_x_n1 = loadDoubleArray();
886         L2_zTRMV_x_n2 = loadDoubleArray();
887         L2_zTRMV_o_UN = loadDoubleArray();
888         L2_zTRMV_o_UN2 = loadDoubleArray();
889         L2_zTRMV_o_UT = loadDoubleArray();
890         L2_zTRMV_o_UH = loadDoubleArray();
891     }
892 
loadTBMVData()893     private void loadTBMVData() throws Exception {
894         L2_sTBMV_A_nn = loadFloatArray();
895         L2_sTBMV_x_n1 = loadFloatArray();
896         L2_sTBMV_x_n2 = loadFloatArray();
897         L2_sTBMV_o_UN = loadFloatArray();
898         L2_sTBMV_o_UN2 = loadFloatArray();
899         L2_sTBMV_o_UT = loadFloatArray();
900         L2_sTBMV_o_UH = loadFloatArray();
901 
902         L2_dTBMV_A_nn = loadDoubleArray();
903         L2_dTBMV_x_n1 = loadDoubleArray();
904         L2_dTBMV_x_n2 = loadDoubleArray();
905         L2_dTBMV_o_UN = loadDoubleArray();
906         L2_dTBMV_o_UN2 = loadDoubleArray();
907         L2_dTBMV_o_UT = loadDoubleArray();
908         L2_dTBMV_o_UH = loadDoubleArray();
909 
910         L2_cTBMV_A_nn = loadFloatArray();
911         L2_cTBMV_x_n1 = loadFloatArray();
912         L2_cTBMV_x_n2 = loadFloatArray();
913         L2_cTBMV_o_UN = loadFloatArray();
914         L2_cTBMV_o_UN2 = loadFloatArray();
915         L2_cTBMV_o_UT = loadFloatArray();
916         L2_cTBMV_o_UH = loadFloatArray();
917 
918         L2_zTBMV_A_nn = loadDoubleArray();
919         L2_zTBMV_x_n1 = loadDoubleArray();
920         L2_zTBMV_x_n2 = loadDoubleArray();
921         L2_zTBMV_o_UN = loadDoubleArray();
922         L2_zTBMV_o_UN2 = loadDoubleArray();
923         L2_zTBMV_o_UT = loadDoubleArray();
924         L2_zTBMV_o_UH = loadDoubleArray();
925     }
926 
loadTRSVData()927     private void loadTRSVData() throws Exception {
928         L2_sTRSV_A_nn = loadFloatArray();
929         L2_sTRSV_A_nn_pu = loadFloatArray();
930         L2_sTRSV_x_n1 = loadFloatArray();
931         L2_sTRSV_x_n2 = loadFloatArray();
932         L2_sTRSV_o_UN = loadFloatArray();
933         L2_sTRSV_o_UN2 = loadFloatArray();
934         L2_sTRSV_o_UT = loadFloatArray();
935         L2_sTRSV_o_UH = loadFloatArray();
936 
937         L2_dTRSV_A_nn = loadDoubleArray();
938         L2_dTRSV_A_nn_pu = loadDoubleArray();
939         L2_dTRSV_x_n1 = loadDoubleArray();
940         L2_dTRSV_x_n2 = loadDoubleArray();
941         L2_dTRSV_o_UN = loadDoubleArray();
942         L2_dTRSV_o_UN2 = loadDoubleArray();
943         L2_dTRSV_o_UT = loadDoubleArray();
944         L2_dTRSV_o_UH = loadDoubleArray();
945 
946         L2_cTRSV_A_nn = loadFloatArray();
947         L2_cTRSV_A_nn_pu = loadFloatArray();
948         L2_cTRSV_x_n1 = loadFloatArray();
949         L2_cTRSV_x_n2 = loadFloatArray();
950         L2_cTRSV_o_UN = loadFloatArray();
951         L2_cTRSV_o_UN2 = loadFloatArray();
952         L2_cTRSV_o_UT = loadFloatArray();
953         L2_cTRSV_o_UH = loadFloatArray();
954 
955         L2_zTRSV_A_nn = loadDoubleArray();
956         L2_zTRSV_A_nn_pu = loadDoubleArray();
957         L2_zTRSV_x_n1 = loadDoubleArray();
958         L2_zTRSV_x_n2 = loadDoubleArray();
959         L2_zTRSV_o_UN = loadDoubleArray();
960         L2_zTRSV_o_UN2 = loadDoubleArray();
961         L2_zTRSV_o_UT = loadDoubleArray();
962         L2_zTRSV_o_UH = loadDoubleArray();
963     }
964 
loadTBSVData()965     private void loadTBSVData() throws Exception {
966         L2_sTBSV_A_nn = loadFloatArray();
967         L2_sTBSV_x_n1 = loadFloatArray();
968         L2_sTBSV_x_n2 = loadFloatArray();
969         L2_sTBSV_o_UN = loadFloatArray();
970         L2_sTBSV_o_UN2 = loadFloatArray();
971         L2_sTBSV_o_UT = loadFloatArray();
972         L2_sTBSV_o_UH = loadFloatArray();
973 
974         L2_dTBSV_A_nn = loadDoubleArray();
975         L2_dTBSV_x_n1 = loadDoubleArray();
976         L2_dTBSV_x_n2 = loadDoubleArray();
977         L2_dTBSV_o_UN = loadDoubleArray();
978         L2_dTBSV_o_UN2 = loadDoubleArray();
979         L2_dTBSV_o_UT = loadDoubleArray();
980         L2_dTBSV_o_UH = loadDoubleArray();
981 
982         L2_cTBSV_A_nn = loadFloatArray();
983         L2_cTBSV_x_n1 = loadFloatArray();
984         L2_cTBSV_x_n2 = loadFloatArray();
985         L2_cTBSV_o_UN = loadFloatArray();
986         L2_cTBSV_o_UN2 = loadFloatArray();
987         L2_cTBSV_o_UT = loadFloatArray();
988         L2_cTBSV_o_UH = loadFloatArray();
989 
990         L2_zTBSV_A_nn = loadDoubleArray();
991         L2_zTBSV_x_n1 = loadDoubleArray();
992         L2_zTBSV_x_n2 = loadDoubleArray();
993         L2_zTBSV_o_UN = loadDoubleArray();
994         L2_zTBSV_o_UN2 = loadDoubleArray();
995         L2_zTBSV_o_UT = loadDoubleArray();
996         L2_zTBSV_o_UH = loadDoubleArray();
997     }
998 
loadGERData()999     private void loadGERData() throws Exception {
1000         L2_sGER_A_mn = loadFloatArray();
1001         L2_sGER_x_m1 = loadFloatArray();
1002         L2_sGER_x_m2 = loadFloatArray();
1003         L2_sGER_y_n1 = loadFloatArray();
1004         L2_sGER_y_n2 = loadFloatArray();
1005         L2_sGER_o_N = loadFloatArray();
1006 
1007         L2_dGER_A_mn = loadDoubleArray();
1008         L2_dGER_x_m1 = loadDoubleArray();
1009         L2_dGER_x_m2 = loadDoubleArray();
1010         L2_dGER_y_n1 = loadDoubleArray();
1011         L2_dGER_y_n2 = loadDoubleArray();
1012         L2_dGER_o_N = loadDoubleArray();
1013     }
1014 
loadGERUData()1015     private void loadGERUData() throws Exception {
1016         L2_cGERU_A_mn = loadFloatArray();
1017         L2_cGERU_x_m1 = loadFloatArray();
1018         L2_cGERU_x_m2 = loadFloatArray();
1019         L2_cGERU_y_n1 = loadFloatArray();
1020         L2_cGERU_y_n2 = loadFloatArray();
1021         L2_cGERU_o_N = loadFloatArray();
1022 
1023         L2_zGERU_A_mn = loadDoubleArray();
1024         L2_zGERU_x_m1 = loadDoubleArray();
1025         L2_zGERU_x_m2 = loadDoubleArray();
1026         L2_zGERU_y_n1 = loadDoubleArray();
1027         L2_zGERU_y_n2 = loadDoubleArray();
1028         L2_zGERU_o_N = loadDoubleArray();
1029     }
1030 
loadGERCData()1031     private void loadGERCData() throws Exception {
1032         L2_cGERC_A_mn = loadFloatArray();
1033         L2_cGERC_x_m1 = loadFloatArray();
1034         L2_cGERC_x_m2 = loadFloatArray();
1035         L2_cGERC_y_n1 = loadFloatArray();
1036         L2_cGERC_y_n2 = loadFloatArray();
1037         L2_cGERC_o_N = loadFloatArray();
1038 
1039         L2_zGERC_A_mn = loadDoubleArray();
1040         L2_zGERC_x_m1 = loadDoubleArray();
1041         L2_zGERC_x_m2 = loadDoubleArray();
1042         L2_zGERC_y_n1 = loadDoubleArray();
1043         L2_zGERC_y_n2 = loadDoubleArray();
1044         L2_zGERC_o_N = loadDoubleArray();
1045     }
1046 
loadHERData()1047     private void loadHERData() throws Exception {
1048         L2_cHER_A_nn = loadFloatArray();
1049         L2_cHER_A_nn_pu = loadFloatArray();
1050         L2_cHER_x_n1 = loadFloatArray();
1051         L2_cHER_x_n2 = loadFloatArray();
1052         L2_cHER_o_N = loadFloatArray();
1053         L2_cHER_o_N_pu = loadFloatArray();
1054 
1055         L2_zHER_A_nn = loadDoubleArray();
1056         L2_zHER_A_nn_pu = loadDoubleArray();
1057         L2_zHER_x_n1 = loadDoubleArray();
1058         L2_zHER_x_n2 = loadDoubleArray();
1059         L2_zHER_o_N = loadDoubleArray();
1060         L2_zHER_o_N_pu = loadDoubleArray();
1061     }
1062 
loadHER2Data()1063     private void loadHER2Data() throws Exception {
1064         L2_cHER2_A_nn = loadFloatArray();
1065         L2_cHER2_A_nn_pu = loadFloatArray();
1066         L2_cHER2_x_n1 = loadFloatArray();
1067         L2_cHER2_x_n2 = loadFloatArray();
1068         L2_cHER2_y_n1 = loadFloatArray();
1069         L2_cHER2_y_n2 = loadFloatArray();
1070         L2_cHER2_o_N = loadFloatArray();
1071         L2_cHER2_o_N_pu = loadFloatArray();
1072 
1073         L2_zHER2_A_nn = loadDoubleArray();
1074         L2_zHER2_A_nn_pu = loadDoubleArray();
1075         L2_zHER2_x_n1 = loadDoubleArray();
1076         L2_zHER2_x_n2 = loadDoubleArray();
1077         L2_zHER2_y_n1 = loadDoubleArray();
1078         L2_zHER2_y_n2 = loadDoubleArray();
1079         L2_zHER2_o_N = loadDoubleArray();
1080         L2_zHER2_o_N_pu = loadDoubleArray();
1081     }
1082 
loadSYRData()1083     private void loadSYRData() throws Exception {
1084         L2_sSYR_A_nn = loadFloatArray();
1085         L2_sSYR_A_nn_pu = loadFloatArray();
1086         L2_sSYR_x_n1 = loadFloatArray();
1087         L2_sSYR_x_n2 = loadFloatArray();
1088         L2_sSYR_o_N = loadFloatArray();
1089         L2_sSYR_o_N_pu = loadFloatArray();
1090 
1091         L2_dSYR_A_nn = loadDoubleArray();
1092         L2_dSYR_A_nn_pu = loadDoubleArray();
1093         L2_dSYR_x_n1 = loadDoubleArray();
1094         L2_dSYR_x_n2 = loadDoubleArray();
1095         L2_dSYR_o_N = loadDoubleArray();
1096         L2_dSYR_o_N_pu = loadDoubleArray();
1097     }
1098 
loadSYR2Data()1099     private void loadSYR2Data() throws Exception {
1100         L2_sSYR2_A_nn = loadFloatArray();
1101         L2_sSYR2_A_nn_pu = loadFloatArray();
1102         L2_sSYR2_x_n1 = loadFloatArray();
1103         L2_sSYR2_x_n2 = loadFloatArray();
1104         L2_sSYR2_y_n1 = loadFloatArray();
1105         L2_sSYR2_y_n2 = loadFloatArray();
1106         L2_sSYR2_o_N = loadFloatArray();
1107         L2_sSYR2_o_N_pu = loadFloatArray();
1108 
1109         L2_dSYR2_A_nn = loadDoubleArray();
1110         L2_dSYR2_A_nn_pu = loadDoubleArray();
1111         L2_dSYR2_x_n1 = loadDoubleArray();
1112         L2_dSYR2_x_n2 = loadDoubleArray();
1113         L2_dSYR2_y_n1 = loadDoubleArray();
1114         L2_dSYR2_y_n2 = loadDoubleArray();
1115         L2_dSYR2_o_N = loadDoubleArray();
1116         L2_dSYR2_o_N_pu = loadDoubleArray();
1117     }
1118 
1119     //load data for L3 BLAS
loadGEMMData()1120     private void loadGEMMData() throws Exception {
1121         L3_sGEMM_A_mk = loadFloatArray();
1122         L3_sGEMM_B_kn = loadFloatArray();
1123         L3_sGEMM_C_mn = loadFloatArray();
1124         L3_sGEMM_o_NN = loadFloatArray();
1125         L3_sGEMM_A_km = loadFloatArray();
1126         L3_sGEMM_B_nk = loadFloatArray();
1127         L3_sGEMM_o_TT = loadFloatArray();
1128         L3_sGEMM_o_HH = loadFloatArray();
1129 
1130         L3_dGEMM_A_mk = loadDoubleArray();
1131         L3_dGEMM_B_kn = loadDoubleArray();
1132         L3_dGEMM_C_mn = loadDoubleArray();
1133         L3_dGEMM_o_NN = loadDoubleArray();
1134         L3_dGEMM_A_km = loadDoubleArray();
1135         L3_dGEMM_B_nk = loadDoubleArray();
1136         L3_dGEMM_o_TT = loadDoubleArray();
1137         L3_dGEMM_o_HH = loadDoubleArray();
1138 
1139         L3_cGEMM_A_mk = loadFloatArray();
1140         L3_cGEMM_B_kn = loadFloatArray();
1141         L3_cGEMM_C_mn = loadFloatArray();
1142         L3_cGEMM_o_NN = loadFloatArray();
1143         L3_cGEMM_A_km = loadFloatArray();
1144         L3_cGEMM_B_nk = loadFloatArray();
1145         L3_cGEMM_o_TT = loadFloatArray();
1146         L3_cGEMM_o_HH = loadFloatArray();
1147 
1148         L3_zGEMM_A_mk = loadDoubleArray();
1149         L3_zGEMM_B_kn = loadDoubleArray();
1150         L3_zGEMM_C_mn = loadDoubleArray();
1151         L3_zGEMM_o_NN = loadDoubleArray();
1152         L3_zGEMM_A_km = loadDoubleArray();
1153         L3_zGEMM_B_nk = loadDoubleArray();
1154         L3_zGEMM_o_TT = loadDoubleArray();
1155         L3_zGEMM_o_HH = loadDoubleArray();
1156     }
1157 
loadSYMMData()1158     private void loadSYMMData() throws Exception {
1159         L3_sSYMM_A_mm = loadFloatArray();
1160         L3_sSYMM_B_mn = loadFloatArray();
1161         L3_sSYMM_C_mn = loadFloatArray();
1162         L3_sSYMM_o_L = loadFloatArray();
1163         L3_sSYMM_A_nn = loadFloatArray();
1164         L3_sSYMM_o_R = loadFloatArray();
1165 
1166         L3_dSYMM_A_mm = loadDoubleArray();
1167         L3_dSYMM_B_mn = loadDoubleArray();
1168         L3_dSYMM_C_mn = loadDoubleArray();
1169         L3_dSYMM_o_L = loadDoubleArray();
1170         L3_dSYMM_A_nn = loadDoubleArray();
1171         L3_dSYMM_o_R = loadDoubleArray();
1172 
1173         L3_cSYMM_A_mm = loadFloatArray();
1174         L3_cSYMM_B_mn = loadFloatArray();
1175         L3_cSYMM_C_mn = loadFloatArray();
1176         L3_cSYMM_o_L = loadFloatArray();
1177         L3_cSYMM_A_nn = loadFloatArray();
1178         L3_cSYMM_o_R = loadFloatArray();
1179 
1180         L3_zSYMM_A_mm = loadDoubleArray();
1181         L3_zSYMM_B_mn = loadDoubleArray();
1182         L3_zSYMM_C_mn = loadDoubleArray();
1183         L3_zSYMM_o_L = loadDoubleArray();
1184         L3_zSYMM_A_nn = loadDoubleArray();
1185         L3_zSYMM_o_R = loadDoubleArray();
1186     }
1187 
loadHEMMData()1188     private void loadHEMMData() throws Exception {
1189         L3_cHEMM_A_mm = loadFloatArray();
1190         L3_cHEMM_B_mn = loadFloatArray();
1191         L3_cHEMM_C_mn = loadFloatArray();
1192         L3_cHEMM_o_L = loadFloatArray();
1193         L3_cHEMM_A_nn = loadFloatArray();
1194         L3_cHEMM_o_R = loadFloatArray();
1195 
1196         L3_zHEMM_A_mm = loadDoubleArray();
1197         L3_zHEMM_B_mn = loadDoubleArray();
1198         L3_zHEMM_C_mn = loadDoubleArray();
1199         L3_zHEMM_o_L = loadDoubleArray();
1200         L3_zHEMM_A_nn = loadDoubleArray();
1201         L3_zHEMM_o_R = loadDoubleArray();
1202     }
1203 
loadSYRKData()1204     private void loadSYRKData() throws Exception {
1205         L3_sSYRK_A_nk = loadFloatArray();
1206         L3_sSYRK_C_nn = loadFloatArray();
1207         L3_sSYRK_o_N = loadFloatArray();
1208         L3_sSYRK_A_kn = loadFloatArray();
1209         L3_sSYRK_o_T = loadFloatArray();
1210 
1211         L3_dSYRK_A_nk = loadDoubleArray();
1212         L3_dSYRK_C_nn = loadDoubleArray();
1213         L3_dSYRK_o_N = loadDoubleArray();
1214         L3_dSYRK_A_kn = loadDoubleArray();
1215         L3_dSYRK_o_T = loadDoubleArray();
1216 
1217         L3_cSYRK_A_nk = loadFloatArray();
1218         L3_cSYRK_C_nn = loadFloatArray();
1219         L3_cSYRK_o_N = loadFloatArray();
1220         L3_cSYRK_A_kn = loadFloatArray();
1221         L3_cSYRK_o_T = loadFloatArray();
1222 
1223         L3_zSYRK_A_nk = loadDoubleArray();
1224         L3_zSYRK_C_nn = loadDoubleArray();
1225         L3_zSYRK_o_N = loadDoubleArray();
1226         L3_zSYRK_A_kn = loadDoubleArray();
1227         L3_zSYRK_o_T = loadDoubleArray();
1228     }
1229 
loadHERKData()1230     private void loadHERKData() throws Exception {
1231         L3_cHERK_A_nk = loadFloatArray();
1232         L3_cHERK_C_nn = loadFloatArray();
1233         L3_cHERK_o_N = loadFloatArray();
1234         L3_cHERK_A_kn = loadFloatArray();
1235         L3_cHERK_o_H = loadFloatArray();
1236 
1237         L3_zHERK_A_nk = loadDoubleArray();
1238         L3_zHERK_C_nn = loadDoubleArray();
1239         L3_zHERK_o_N = loadDoubleArray();
1240         L3_zHERK_A_kn = loadDoubleArray();
1241         L3_zHERK_o_H = loadDoubleArray();
1242     }
1243 
loadSYR2KData()1244     private void loadSYR2KData() throws Exception {
1245         L3_sSYR2K_A_nk = loadFloatArray();
1246         L3_sSYR2K_B_nk = loadFloatArray();
1247         L3_sSYR2K_C_nn = loadFloatArray();
1248         L3_sSYR2K_o_N = loadFloatArray();
1249         L3_sSYR2K_A_kn = loadFloatArray();
1250         L3_sSYR2K_B_kn = loadFloatArray();
1251         L3_sSYR2K_o_T = loadFloatArray();
1252 
1253         L3_dSYR2K_A_nk = loadDoubleArray();
1254         L3_dSYR2K_B_nk = loadDoubleArray();
1255         L3_dSYR2K_C_nn = loadDoubleArray();
1256         L3_dSYR2K_o_N = loadDoubleArray();
1257         L3_dSYR2K_A_kn = loadDoubleArray();
1258         L3_dSYR2K_B_kn = loadDoubleArray();
1259         L3_dSYR2K_o_T = loadDoubleArray();
1260 
1261         L3_cSYR2K_A_nk = loadFloatArray();
1262         L3_cSYR2K_B_nk = loadFloatArray();
1263         L3_cSYR2K_C_nn = loadFloatArray();
1264         L3_cSYR2K_o_N = loadFloatArray();
1265         L3_cSYR2K_A_kn = loadFloatArray();
1266         L3_cSYR2K_B_kn = loadFloatArray();
1267         L3_cSYR2K_o_T = loadFloatArray();
1268 
1269         L3_zSYR2K_A_nk = loadDoubleArray();
1270         L3_zSYR2K_B_nk = loadDoubleArray();
1271         L3_zSYR2K_C_nn = loadDoubleArray();
1272         L3_zSYR2K_o_N = loadDoubleArray();
1273         L3_zSYR2K_A_kn = loadDoubleArray();
1274         L3_zSYR2K_B_kn = loadDoubleArray();
1275         L3_zSYR2K_o_T = loadDoubleArray();
1276     }
1277 
loadHER2KData()1278     private void loadHER2KData() throws Exception {
1279         L3_cHER2K_A_nk = loadFloatArray();
1280         L3_cHER2K_B_nk = loadFloatArray();
1281         L3_cHER2K_C_nn = loadFloatArray();
1282         L3_cHER2K_o_N = loadFloatArray();
1283         L3_cHER2K_A_kn = loadFloatArray();
1284         L3_cHER2K_B_kn = loadFloatArray();
1285         L3_cHER2K_o_H = loadFloatArray();
1286 
1287         L3_zHER2K_A_nk = loadDoubleArray();
1288         L3_zHER2K_B_nk = loadDoubleArray();
1289         L3_zHER2K_C_nn = loadDoubleArray();
1290         L3_zHER2K_o_N = loadDoubleArray();
1291         L3_zHER2K_A_kn = loadDoubleArray();
1292         L3_zHER2K_B_kn = loadDoubleArray();
1293         L3_zHER2K_o_H = loadDoubleArray();
1294     }
1295 
loadTRMMData()1296     private void loadTRMMData() throws Exception {
1297         L3_sTRMM_A_mm = loadFloatArray();
1298         L3_sTRMM_B_mn = loadFloatArray();
1299         L3_sTRMM_o_LUN = loadFloatArray();
1300         L3_sTRMM_A_nn = loadFloatArray();
1301         L3_sTRMM_o_RLT = loadFloatArray();
1302 
1303         L3_dTRMM_A_mm = loadDoubleArray();
1304         L3_dTRMM_B_mn = loadDoubleArray();
1305         L3_dTRMM_o_LUN = loadDoubleArray();
1306         L3_dTRMM_A_nn = loadDoubleArray();
1307         L3_dTRMM_o_RLT = loadDoubleArray();
1308 
1309         L3_cTRMM_A_mm = loadFloatArray();
1310         L3_cTRMM_B_mn = loadFloatArray();
1311         L3_cTRMM_o_LUN = loadFloatArray();
1312         L3_cTRMM_A_nn = loadFloatArray();
1313         L3_cTRMM_o_RLT = loadFloatArray();
1314 
1315         L3_zTRMM_A_mm = loadDoubleArray();
1316         L3_zTRMM_B_mn = loadDoubleArray();
1317         L3_zTRMM_o_LUN = loadDoubleArray();
1318         L3_zTRMM_A_nn = loadDoubleArray();
1319         L3_zTRMM_o_RLT = loadDoubleArray();
1320     }
1321 
loadTRSMData()1322     private void loadTRSMData() throws Exception {
1323         L3_sTRSM_A_mm = loadFloatArray();
1324         L3_sTRSM_B_mn = loadFloatArray();
1325         L3_sTRSM_o_LUN = loadFloatArray();
1326         L3_sTRSM_A_nn = loadFloatArray();
1327         L3_sTRSM_o_RLT = loadFloatArray();
1328 
1329         L3_dTRSM_A_mm = loadDoubleArray();
1330         L3_dTRSM_B_mn = loadDoubleArray();
1331         L3_dTRSM_o_LUN = loadDoubleArray();
1332         L3_dTRSM_A_nn = loadDoubleArray();
1333         L3_dTRSM_o_RLT = loadDoubleArray();
1334 
1335         L3_cTRSM_A_mm = loadFloatArray();
1336         L3_cTRSM_B_mn = loadFloatArray();
1337         L3_cTRSM_o_LUN = loadFloatArray();
1338         L3_cTRSM_A_nn = loadFloatArray();
1339         L3_cTRSM_o_RLT = loadFloatArray();
1340 
1341         L3_zTRSM_A_mm = loadDoubleArray();
1342         L3_zTRSM_B_mn = loadDoubleArray();
1343         L3_zTRSM_o_LUN = loadDoubleArray();
1344         L3_zTRSM_A_nn = loadDoubleArray();
1345         L3_zTRSM_o_RLT = loadDoubleArray();
1346     }
1347 
loadData(Context ctx)1348     void loadData(Context ctx) throws Exception {
1349         InputStream is = ctx.getAssets().open("BLASData.txt");
1350         mBufReader = new BufferedReader(new InputStreamReader(is));
1351 
1352         //Load data sequentially
1353         loadMNK();
1354         loadGEMVData();
1355         loadGBMVData();
1356         loadHEMVData();
1357         loadHBMVData();
1358         loadSYMVData();
1359         loadSBMVData();
1360         loadTRMVData();
1361         loadTBMVData();
1362         loadTRSVData();
1363         loadTBSVData();
1364         loadGERData();
1365         loadGERUData();
1366         loadGERCData();
1367         loadHERData();
1368         loadHER2Data();
1369         loadSYRData();
1370         loadSYR2Data();
1371         loadGEMMData();
1372         loadSYMMData();
1373         loadHEMMData();
1374         loadSYRKData();
1375         loadHERKData();
1376         loadSYR2KData();
1377         loadHER2KData();
1378         loadTRMMData();
1379         loadTRSMData();
1380     }
1381 
1382 }
1383