1group Root {
2    class = Root
3
4    group DSP Benchmarks {
5        class = DSPBenchmarks
6        folder = DSP
7
8        group Statistics Benchmarks {
9           class = Stats
10           folder = Stats
11
12           suite Statistics Benchmarks F32 {
13              class = StatsF32
14              folder = StatsF32
15
16              ParamList {
17                  NB
18                  Summary NB
19                  Names "NB Samples"
20                  Formula "NB"
21              }
22
23              Pattern INPUT1_F32_ID : InputBench1_f32.txt
24              Pattern INPUT2_F32_ID : InputBench2_f32.txt
25
26              Output  OUT_F32_ID : Output
27              Output  OUT_S16_ID : Index
28              Output  TMP_F32_ID : Temp
29
30              Params PARAM1_ID = {
31                  A = [16,32,64,128,256]
32              }
33
34              Functions {
35                Vector maximum:test_max_f32
36                Vector average:test_mean_f32
37                Vector minimum:test_min_f32
38                Vector energy:test_power_f32
39                Vector root mean square:test_rms_f32
40                Vector standard deviation:test_std_f32
41                Vector variance:test_var_f32
42                Entropy:test_entropy_f32
43                Vector logsumexp:test_logsumexp_f32
44                Kullback Leibler divergence:test_kullback_leibler_f32
45                Vector logsumexp dot product:test_logsumexp_dot_prod_f32
46                Vector max with no index:test_max_no_idx_f32
47                Vector absolute maximum:test_absmax_f32
48                Vector absolute minimum:test_absmin_f32
49              } -> PARAM1_ID
50
51           }
52
53           suite Statistics Benchmarks F64 {
54              class = StatsF64
55              folder = StatsF64
56
57              ParamList {
58                  NB
59                  Summary NB
60                  Names "NB Samples"
61                  Formula "NB"
62              }
63
64              Pattern INPUT1_F64_ID : InputBench1_f64.txt
65              Pattern INPUT2_F64_ID : InputBench2_f64.txt
66
67              Output  OUT_F64_ID : Output
68              Output  OUT_S16_ID : Index
69              Output  TMP_F64_ID : Temp
70
71              Params PARAM1_ID = {
72                  A = [16,32,64,128,256]
73              }
74
75              Functions {
76                Entropy:test_entropy_f64
77                Kullback Leibler divergence:test_kullback_leibler_f64
78              } -> PARAM1_ID
79
80           }
81
82           suite Statistics Benchmarks Q31 {
83              class = StatsQ31
84              folder = StatsQ31
85
86              ParamList {
87                  NB
88                  Summary NB
89                  Names "NB Samples"
90                  Formula "NB"
91              }
92
93              Pattern INPUT1_Q31_ID : InputBench1_q31.txt
94              Pattern INPUT2_Q31_ID : InputBench2_q31.txt
95
96              Output  OUT_Q31_ID : Output
97              Output  OUT_Q63_ID : Output
98              Output  OUT_S16_ID : Index
99              Output  TMP_Q31_ID : Temp
100
101              Params PARAM1_ID = {
102                  A = [16,32,64,128,256]
103              }
104
105              Functions {
106                Vector maximum:test_max_q31
107                Vector average:test_mean_q31
108                Vector minimum:test_min_q31
109                Vector energy:test_power_q31
110                Vector root mean square:test_rms_q31
111                Vector standard deviation:test_std_q31
112                Vector variance:test_var_q31
113                Vector absolute maximum:test_absmax_q31
114                Vector absolute minimum:test_absmin_q31
115              } -> PARAM1_ID
116
117           }
118
119           suite Statistics Benchmarks Q15 {
120              class = StatsQ15
121              folder = StatsQ15
122
123              ParamList {
124                  NB
125                  Summary NB
126                  Names "NB Samples"
127                  Formula "NB"
128              }
129
130              Pattern INPUT1_Q15_ID : InputBench1_q15.txt
131              Pattern INPUT2_Q15_ID : InputBench2_q15.txt
132
133
134              Output  OUT_Q15_ID : Output
135              Output  OUT_Q63_ID : Output
136              Output  OUT_S16_ID : Index
137              Output  TMP_Q15_ID : Temp
138
139              Params PARAM1_ID = {
140                  A = [16,32,64,128,256]
141              }
142
143              Functions {
144                Vector maximum:test_max_q15
145                Vector average:test_mean_q15
146                Vector minimum:test_min_q15
147                Vector energy:test_power_q15
148                Vector root mean square:test_rms_q15
149                Vector standard deviation:test_std_q15
150                Vector variance:test_var_q15
151                Vector absolute maximum:test_absmax_q15
152                Vector absolute minimum:test_absmin_q15
153              } -> PARAM1_ID
154
155           }
156
157           suite Statistics Benchmarks Q7 {
158              class = StatsQ7
159              folder = StatsQ7
160
161              ParamList {
162                  NB
163                  Summary NB
164                  Names "NB Samples"
165                  Formula "NB"
166              }
167
168              Pattern INPUT1_Q7_ID : InputBench1_q7.txt
169              Pattern INPUT2_Q7_ID : InputBench2_q7.txt
170
171
172              Output  OUT_Q7_ID : Output
173              Output  OUT_Q31_ID : Output
174              Output  OUT_S16_ID : Index
175              Output  TMP_Q7_ID : Temp
176
177              Params PARAM1_ID = {
178                  A = [16,32,64,128,256]
179              }
180
181              Functions {
182                Vector maximum:test_max_q7
183                Vector average:test_mean_q7
184                Vector minimum:test_min_q7
185                Vector energy:test_power_q7
186                Vector absolute maximum:test_absmax_q7
187                Vector absolute minimum:test_absmin_q7
188              } -> PARAM1_ID
189
190           }
191        }
192
193        group Basic Maths {
194           class = BasicBenchmarks
195           folder = BasicMaths
196
197           suite Basic Maths Benchmarks F32 {
198              class = BasicMathsBenchmarksF32
199              folder = BasicMathsF32
200
201              ParamList {
202                  NB
203                  Summary NB
204                  Names "NB Samples"
205                  Formula "NB"
206              }
207
208              Pattern INPUT1_F32_ID : Input1_f32.txt
209              Pattern INPUT2_F32_ID : Input2_f32.txt
210              Output  OUT_SAMPLES_F32_ID : Output
211              Params PARAM1_ID = {
212                  A = [16,32,64,128,256]
213              }
214
215              Functions {
216                 Elementwise multiplication:vec_mult_f32
217                 Vector addition:vec_add_f32
218                 Vector substraction:vec_sub_f32
219                 Elementwise absolute value:vec_abs_f32
220                 Elementwise negation:vec_negate_f32
221                 Elementwise offset:vec_offset_f32
222                 Vector scaling:vec_scale_f32
223                 Dot product:vec_dot_f32
224              } -> PARAM1_ID
225           }
226
227           suite Basic Maths Benchmarks Q31 {
228              class = BasicMathsBenchmarksQ31
229              folder = BasicMathsQ31
230
231              ParamList {
232                  NB
233                  Summary NB
234                  Names "NB Samples"
235                  Formula "NB"
236              }
237
238              Pattern INPUT1_Q31_ID : Input1_q31.txt
239              Pattern INPUT2_Q31_ID : Input2_q31.txt
240              Output  OUT_SAMPLES_Q31_ID : Output
241              Params PARAM1_ID = {
242                  A = [16,32,64,128,256]
243              }
244
245              Functions {
246                 Elementwise multiplication:vec_mult_q31
247                 Vector addition:vec_add_q31
248                 Vector substraction:vec_sub_q31
249                 Elementwise absolute value:vec_abs_q31
250                 Elementwise negation:vec_negate_q31
251                 Elementwise offset:vec_offset_q31
252                 Vector scaling:vec_scale_q31
253                 Dot product:vec_dot_q31
254              } -> PARAM1_ID
255           }
256
257           suite Basic Maths Benchmarks Q15 {
258              class = BasicMathsBenchmarksQ15
259              folder = BasicMathsQ15
260
261              ParamList {
262                  NB
263                  Summary NB
264                  Names "NB Samples"
265                  Formula "NB"
266              }
267
268              Pattern INPUT1_Q15_ID : Input1_q15.txt
269              Pattern INPUT2_Q15_ID : Input2_q15.txt
270              Output  OUT_SAMPLES_Q15_ID : Output
271              Params PARAM1_ID = {
272                  A = [16,32,64,128,256]
273              }
274
275              Functions {
276                 Elementwise multiplication:vec_mult_q15
277                 Vector addition:vec_add_q15
278                 Vector substraction:vec_sub_q15
279                 Elementwise absolute value:vec_abs_q15
280                 Elementwise negation:vec_negate_q15
281                 Elementwise offset:vec_offset_q15
282                 Vector scaling:vec_scale_q15
283                 Dot product:vec_dot_q15
284              } -> PARAM1_ID
285           }
286
287           suite Basic Maths Benchmarks Q7 {
288              class = BasicMathsBenchmarksQ7
289              folder = BasicMathsQ7
290
291              ParamList {
292                  NB
293                  Summary NB
294                  Names "NB Samples"
295                  Formula "NB"
296              }
297
298              Pattern INPUT1_Q7_ID : Input1_q7.txt
299              Pattern INPUT2_Q7_ID : Input2_q7.txt
300              Output  OUT_SAMPLES_Q7_ID : Output
301              Params PARAM1_ID = {
302                  A = [16,32,64,128,256]
303              }
304
305              Functions {
306                 Elementwise multiplication:vec_mult_q7
307                 Vector addition:vec_add_q7
308                 Vector substraction:vec_sub_q7
309                 Elementwise absolute value:vec_abs_q7
310                 Elementwise negation:vec_negate_q7
311                 Elementwise offset:vec_offset_q7
312                 Vector scaling:vec_scale_q7
313                 Dot product:vec_dot_q7
314              } -> PARAM1_ID
315           }
316        }
317
318        group Complex Maths {
319           class = ComplexBenchmarks
320           folder = ComplexMaths
321
322           suite ComplexMaths Benchmarks F32 {
323              class = ComplexMathsBenchmarksF32
324              folder = ComplexMathsF32
325
326              ParamList {
327                  NB
328                  Summary NB
329                  Names "NB Samples"
330                  Formula "NB"
331              }
332
333              Pattern INPUT1_F32_ID : Input1_f32.txt
334              Pattern INPUT2_F32_ID : Input2_f32.txt
335              Pattern INPUT3_F32_ID : Input3_f32.txt
336              Output  OUT_SAMPLES_F32_ID : Output
337              Params PARAM1_ID = {
338                  A = [16,32,64,128,256]
339              }
340
341              Functions {
342                 Elementwise conjugate:vec_conj_f32
343                 Complex dot product:vec_dot_prod_f32
344                 Elementwise modulus:vec_mag_f32
345                 Elementwise modulus squared:vec_mag_squared_f32
346                 Elementwise complex multiplication:vec_mult_cmplx_f32
347                 Vector scaling by real number:vec_mult_real_f32
348              } -> PARAM1_ID
349           }
350
351           suite ComplexMaths Benchmarks Q31 {
352              class = ComplexMathsBenchmarksQ31
353              folder = ComplexMathsQ31
354
355              ParamList {
356                  NB
357                  Summary NB
358                  Names "NB Samples"
359                  Formula "NB"
360              }
361
362              Pattern INPUT1_Q31_ID : Input1_q31.txt
363              Pattern INPUT2_Q31_ID : Input2_q31.txt
364              Pattern INPUT3_Q31_ID : Input3_q31.txt
365              Output  OUT_SAMPLES_Q31_ID : Output
366              Params PARAM1_ID = {
367                  A = [16,32,64,128,256]
368              }
369
370              Functions {
371                 Elementwise conjugate:vec_conj_q31
372                 Complex dot product:vec_dot_prod_q31
373                 Elementwise modulus:vec_mag_q31
374                 Elementwise modulus squared:vec_mag_squared_q31
375                 Elementwise complex multiplication:vec_mult_cmplx_q31
376                 Vector scaling by real number:vec_mult_real_q31
377              } -> PARAM1_ID
378           }
379
380           suite ComplexMaths Benchmarks Q15 {
381              class = ComplexMathsBenchmarksQ15
382              folder = ComplexMathsQ15
383
384              ParamList {
385                  NB
386                  Summary NB
387                  Names "NB Samples"
388                  Formula "NB"
389              }
390
391              Pattern INPUT1_Q15_ID : Input1_q15.txt
392              Pattern INPUT2_Q15_ID : Input2_q15.txt
393              Pattern INPUT3_Q15_ID : Input3_q15.txt
394              Output  OUT_SAMPLES_Q15_ID : Output
395              Params PARAM1_ID = {
396                  A = [16,32,64,128,256]
397              }
398
399              Functions {
400                 Elementwise conjugate:vec_conj_q15
401                 Complex dot product:vec_dot_prod_q15
402                 Elementwise modulus:vec_mag_q15
403                 Elementwise modulus squared:vec_mag_squared_q15
404                 Elementwise complex multiplication:vec_mult_cmplx_q15
405                 Vector scaling by real number:vec_mult_real_q15
406              } -> PARAM1_ID
407           }
408        }
409
410        group Quaternion Maths {
411           class = QuaternionBenchmarks
412           folder = QuaternionMaths
413
414           suite Quaternion Maths Benchmarks F32 {
415              class = QuaternionMathsBenchmarksF32
416              folder = QuaternionMathsF32
417
418              ParamList {
419                  NB
420                  Summary NB
421                  Names "NB Samples"
422                  Formula "NB"
423              }
424
425              Pattern INPUT1_F32_ID : Input1_f32.txt
426              Pattern INPUT2_F32_ID : Input2_f32.txt
427              Pattern INPUT_ROT_F32_ID : Input7_f32.txt
428
429              Output  OUT_SAMPLES_F32_ID : Output
430              Params PARAM1_ID = {
431                  A = [16,32,64,128]
432              }
433
434              Functions {
435                Quaternion Norm:test_quaternion_norm_f32
436                Quaternion inverse:test_quaternion_inverse_f32
437                Quaternion conjugate:test_quaternion_conjugate_f32
438                Quaternion normalization:test_quaternion_normalize_f32
439                Quaternion product:test_quaternion_prod_single_f32
440                Quaternion Elementwise product:test_quaternion_product_f32
441                Quaternion to rotation:test_quaternion2rotation_f32
442                Rotation to quaternion:test_rotation2quaternion_f32
443              } -> PARAM1_ID
444           }
445        }
446
447        group Filtering {
448           class = DSPFiltering
449           folder = Filtering
450
451           group FIR {
452             class = FIR
453             folder = FIR
454
455             suite FIR F32 {
456                class = FIRF32
457                folder = FIRF32
458
459                ParamList {
460                  NumTaps, NB
461                  Summary NumTaps, NB
462                  Names "Number of taps","Number of samples"
463                  Formula "NumTaps * NB"
464                }
465
466                Pattern SAMPLES1_F32_ID : Samples1_f32.txt
467                Pattern REFS1_F32_ID : Refs1_f32.txt
468                Pattern COEFS1_F32_ID : Coefs1_f32.txt
469
470                Output  OUT_SAMPLES_F32_ID : Output
471                Output  STATE_F32_ID : State
472                Output  ERR_F32_ID : Err
473
474                Params PARAM1_ID = {
475                  NumTaps = [16,32,64]
476                  NB = [64,128,256]
477                }
478
479                Functions {
480                   FIR Filter:test_fir_f32
481                   LMS Filter:test_lms_f32
482                   Normalized LMS Filter:test_lms_norm_f32
483                } -> PARAM1_ID
484             }
485
486             suite FIR Q31 {
487                class = FIRQ31
488                folder = FIRQ31
489
490                ParamList {
491                  NumTaps, NB
492                  Summary NumTaps, NB
493                  Names "Number of taps","Number of samples"
494                  Formula "NumTaps * NB"
495                }
496
497                Pattern SAMPLES1_Q31_ID : Samples1_q31.txt
498                Pattern REFS1_Q31_ID : Refs1_q31.txt
499                Pattern COEFS1_Q31_ID : Coefs1_q31.txt
500
501                Output  OUT_SAMPLES_Q31_ID : Output
502                Output  STATE_Q31_ID : State
503                Output  ERR_Q31_ID : Err
504
505                Params PARAM1_ID = {
506                  NumTaps = [16,32,64]
507                  NB = [64,128,256]
508                }
509
510                Functions {
511                   FIR Filter:test_fir_q31
512                   LMS Filter:test_lms_q31
513                   Normalized LMS Filter:test_lms_norm_q31
514                } -> PARAM1_ID
515             }
516
517             suite FIR Q15 {
518                class = FIRQ15
519                folder = FIRQ15
520
521                ParamList {
522                  NumTaps, NB
523                  Summary NumTaps, NB
524                  Names "Number of taps","Number of samples"
525                  Formula "NumTaps * NB"
526                }
527
528                Pattern SAMPLES1_Q15_ID : Samples1_q15.txt
529                Pattern REFS1_Q15_ID : Refs1_q15.txt
530                Pattern COEFS1_Q15_ID : Coefs1_q15.txt
531
532                Output  OUT_SAMPLES_Q15_ID : Output
533                Output  STATE_Q15_ID : State
534                Output  ERR_Q15_ID : Err
535
536                Params PARAM1_ID = {
537                  NumTaps = [16,32,64]
538                  NB = [64,128,256]
539                }
540
541                Functions {
542                   FIR Filter:test_fir_q15
543                   LMS Filter:test_lms_q15
544                   Normalized LMS Filter:test_lms_norm_q15
545                } -> PARAM1_ID
546             }
547
548             suite FIR Q7 {
549                class = FIRQ7
550                folder = FIRQ7
551
552                ParamList {
553                  NumTaps, NB
554                  Summary NumTaps, NB
555                  Names "Number of taps","Number of samples"
556                  Formula "NumTaps * NB"
557                }
558
559                Pattern SAMPLES1_Q7_ID : Samples1_q7.txt
560                Pattern REFS1_Q7_ID : Refs1_q7.txt
561                Pattern COEFS1_Q7_ID : Coefs1_q7.txt
562
563                Output  OUT_SAMPLES_Q7_ID : Output
564                Output  STATE_Q7_ID : State
565                Output  ERR_Q7_ID : Err
566
567                Params PARAM1_ID = {
568                  NumTaps = [16,32,64]
569                  NB = [64,128,256]
570                }
571
572                Functions {
573                   FIR Filter:test_fir_q7
574                } -> PARAM1_ID
575             }
576           }
577
578           group Convolutions / Correlations {
579             class = MISC
580             folder = MISC
581
582             suite Convolutions / Correlations F32 {
583                class = MISCF32
584                folder = MISCF32
585
586                ParamList {
587                  NBA, NBB
588                  Summary NBA, NBB
589                  Names "Number of samples A,Number of samples B"
590                  Formula "NBA * NBB"
591                }
592
593                Pattern INPUTSA1_F32_ID : InputsA1_f32.txt
594                Pattern INPUTSB1_F32_ID : InputsB1_f32.txt
595
596                Output  OUT_SAMPLES_F32_ID : Output
597
598                Params PARAM1_ID = {
599                  NBA = [9,16,64]
600                  NBB = [9,16,128]
601                }
602
603                Functions {
604                   Convolution:test_conv_f32
605                   Correlation:test_correlate_f32
606                } -> PARAM1_ID
607              }
608
609             suite Convolutions / Correlations Q31 {
610                class = MISCQ31
611                folder = MISCQ31
612
613                ParamList {
614                  NBA, NBB
615                  Summary NBA, NBB
616                  Names "Number of samples A,Number of samples B"
617                  Formula "NBA * NBB"
618                }
619
620                Pattern INPUTSA1_Q31_ID : InputsA1_q31.txt
621                Pattern INPUTSB1_Q31_ID : InputsB1_q31.txt
622
623                Output  OUT_SAMPLES_Q31_ID : Output
624
625                Params PARAM1_ID = {
626                  NBA = [9,16,64]
627                  NBB = [9,16,128]
628                }
629
630                Functions {
631                   Convolution:test_conv_q31
632                   Correlation:test_correlate_q31
633                } -> PARAM1_ID
634              }
635
636             suite Convolutions / Correlations Q15 {
637                class = MISCQ15
638                folder = MISCQ15
639
640                ParamList {
641                  NBA, NBB
642                  Summary NBA, NBB
643                  Names "Number of samples A,Number of samples B"
644                  Formula "NBA * NBB"
645                }
646
647                Pattern INPUTSA1_Q15_ID : InputsA1_q15.txt
648                Pattern INPUTSB1_Q15_ID : InputsB1_q15.txt
649
650                Output  OUT_SAMPLES_Q15_ID : Output
651
652                Params PARAM1_ID = {
653                  NBA = [9,16,64]
654                  NBB = [9,16,128]
655                }
656
657                Functions {
658                   Convolution:test_conv_q15
659                   Correlation:test_correlate_q15
660                } -> PARAM1_ID
661              }
662
663             suite Convolutions / Correlations Q7 {
664                class = MISCQ7
665                folder = MISCQ7
666
667                ParamList {
668                  NBA, NBB
669                  Summary NBA, NBB
670                  Names "Number of samples A,Number of samples B"
671                  Formula "NBA * NBB"
672                }
673
674                Pattern INPUTSA1_Q7_ID : InputsA1_q7.txt
675                Pattern INPUTSB1_Q7_ID : InputsB1_q7.txt
676
677                Output  OUT_SAMPLES_Q7_ID : Output
678
679                Params PARAM1_ID = {
680                  NBA = [9,16,64]
681                  NBB = [9,16,128]
682                }
683
684                Functions {
685                   Convolution:test_conv_q7
686                   Correlation:test_correlate_q7
687                } -> PARAM1_ID
688              }
689           }
690
691           group Decimations / Interpolations {
692             class = DECIM
693             folder = DECIM
694
695             suite Decimations / Interpolations F32 {
696                class = DECIMF32
697                folder = DECIMF32
698
699                ParamList {
700                  NumTaps, NB, Factor
701                  Summary NumTaps, NB, Factor
702                  Names "Number of taps","Number of samples","Decimation or Interpolation factor"
703                  Formula "NumTaps * NB * Factor"
704                }
705
706                Pattern SAMPLES1_F32_ID : Samples1_f32.txt
707                Pattern COEFS1_F32_ID : Coefs1_f32.txt
708
709                Output  OUT_SAMPLES_F32_ID : Output
710                Output  STATE_F32_ID : State
711
712                Params PARAM_DECIM_ID : Params1.txt
713                Params PARAM_INTERPOL_ID : Params2.txt
714
715                Functions {
716                   Decimation:test_fir_decimate_f32 -> PARAM_DECIM_ID
717                   Interpolation:test_fir_interpolate_f32 -> PARAM_INTERPOL_ID
718                }
719              }
720
721             suite Decimations / Interpolations Q31 {
722                class = DECIMQ31
723                folder = DECIMQ31
724
725                ParamList {
726                  NumTaps, NB, Factor
727                  Summary NumTaps, NB, Factor
728                  Names "Number of taps","Number of samples","Decimation or Interpolation factor"
729                  Formula "NumTaps * NB * Factor"
730                }
731
732                Pattern SAMPLES1_Q31_ID : Samples1_q31.txt
733                Pattern COEFS1_Q31_ID : Coefs1_q31.txt
734
735                Output  OUT_SAMPLES_Q31_ID : Output
736                Output  STATE_Q31_ID : State
737
738                Params PARAM_DECIM_ID : Params1.txt
739                Params PARAM_INTERPOL_ID : Params2.txt
740
741                Functions {
742                   Decimation:test_fir_decimate_q31 -> PARAM_DECIM_ID
743                   Interpolation:test_fir_interpolate_q31 -> PARAM_INTERPOL_ID
744                }
745              }
746
747             suite Decimations / Interpolations Q15 {
748                class = DECIMQ15
749                folder = DECIMQ15
750
751                ParamList {
752                  NumTaps, NB, Factor
753                  Summary NumTaps, NB, Factor
754                  Names "Number of taps","Number of samples","Decimation or Interpolation factor"
755                  Formula "NumTaps * NB * Factor"
756                }
757
758                Pattern SAMPLES1_Q15_ID : Samples1_q15.txt
759                Pattern COEFS1_Q15_ID : Coefs1_q15.txt
760
761                Output  OUT_SAMPLES_Q15_ID : Output
762                Output  STATE_Q15_ID : State
763
764                Params PARAM_DECIM_ID : Params1.txt
765                Params PARAM_INTERPOL_ID : Params2.txt
766
767                Functions {
768                   Decimation:test_fir_decimate_q15 -> PARAM_DECIM_ID
769                   Interpolation:test_fir_interpolate_q15 -> PARAM_INTERPOL_ID
770                }
771              }
772           }
773
774           group BiQuads {
775             class = BIQUAD
776             folder = BIQUAD
777
778             suite BiQuads F32 {
779                class = BIQUADF32
780                folder = BIQUADF32
781
782                ParamList {
783                  NumStages, NB
784                  Summary NumStages, NB
785                  Names "Number of stages","Number of samples"
786                  Formula "NumStages * NB"
787                }
788
789                Pattern SAMPLES1_F32_ID : Samples1_f32.txt
790                Pattern COEFS1_F32_ID : Coefs1_f32.txt
791
792                Output  OUT_SAMPLES_F32_ID : Output
793                Output  STATE_F32_ID : State
794                Output  NEON_COEFS_F32_ID : NeonCoefs
795
796                Params PARAM1_ID = {
797                  NumStages = [1,2,4]
798                  NB = [16,128,256]
799                }
800
801                Functions {
802                   Cascaded BiQuad Filter DF1:test_biquad_cascade_df1_f32
803                   Cascaded BiQuad Filter DF2T:test_biquad_cascade_df2T_f32
804                   Cascaded BiQuad Filter Stereo DF2T:test_biquad_cascade_stereo_df2T_f32
805                } -> PARAM1_ID
806              }
807
808             suite BiQuads F64 {
809                class = BIQUADF64
810                folder = BIQUADF64
811
812                ParamList {
813                  NumStages, NB
814                  Summary NumStages, NB
815                  Names "Number of stages","Number of samples"
816                  Formula "NumStages * NB"
817                }
818
819                Pattern SAMPLES1_F64_ID : Samples1_f64.txt
820                Pattern COEFS1_F64_ID : Coefs1_f64.txt
821
822                Output  OUT_SAMPLES_F64_ID : Output
823                Output  STATE_F64_ID : State
824
825                Params PARAM1_ID = {
826                  NumStages = [1,2,4]
827                  NB = [16,128,256]
828                }
829
830                Functions {
831                   Cascaded BiQuad Filter DF2T:test_biquad_cascade_df2T_f64
832                } -> PARAM1_ID
833              }
834           }
835        }
836
837        group Controller {
838           class = Controller
839           folder = Controller
840
841           suite Controller F32 {
842                class = ControllerF32
843                folder = ControllerF32
844
845                ParamList {
846                  NB
847                  Summary NB
848                  Names "Number of samples"
849                  Formula "NB"
850                }
851
852                Pattern SAMPLES_F32_ID : Samples1_f32.txt
853                Output  OUT_SAMPLES_F32_ID : Output
854
855                Params PARAM1_ID = {
856                  NB = [64,128,256]
857                }
858
859                Functions {
860                   PID:test_pid_f32
861                   Clarke Transform:test_clarke_f32
862                   Inverse Clarke Transform:test_inv_clarke_f32
863                   Park Transform:test_park_f32
864                   Inverse Park Transform:test_inv_park_f32
865                   Sin Cos:test_sin_cos_f32
866                } -> PARAM1_ID
867             }
868
869           suite Controller Q31 {
870                class = ControllerQ31
871                folder = ControllerQ31
872
873                ParamList {
874                  NB
875                  Summary NB
876                  Names "Number of samples"
877                  Formula "NB"
878                }
879
880                Pattern SAMPLES_Q31_ID : Samples1_q31.txt
881                Output  OUT_SAMPLES_Q31_ID : Output
882
883                Params PARAM1_ID = {
884                  NB = [64,128,256]
885                }
886
887                Functions {
888                   PID:test_pid_q31
889                   Clarke Transform:test_clarke_q31
890                   Inverse Clarke Transform:test_inv_clarke_q31
891                   Park Transform:test_park_q31
892                   Inverse Park Transform:test_inv_park_q31
893                   Sin Cos:test_sin_cos_q31
894                } -> PARAM1_ID
895             }
896
897           suite Controller Q15 {
898                class = ControllerQ15
899                folder = ControllerQ15
900
901                ParamList {
902                  NB
903                  Summary NB
904                  Names "Number of samples"
905                  Formula "NB"
906                }
907
908                Pattern SAMPLES_Q15_ID : Samples1_q15.txt
909                Output  OUT_SAMPLES_Q15_ID : Output
910
911                Params PARAM1_ID = {
912                  NB = [64,128,256]
913                }
914
915                Functions {
916                   PID:test_pid_q15
917                } -> PARAM1_ID
918             }
919        }
920
921        group Fast Maths {
922           class = FastMath
923           folder = FastMath
924
925           suite Fast Maths F32 {
926                class = FastMathF32
927                folder = FastMathF32
928
929                ParamList {
930                  NB
931                  Summary NB
932                  Names "Number of samples"
933                  Formula "NB"
934                }
935
936                Pattern SAMPLES_F32_ID : Samples1_f32.txt
937                Output  OUT_SAMPLES_F32_ID : Output
938
939                Params PARAM1_ID = {
940                  NB = [64,128,256]
941                }
942
943                Functions {
944                   Cosine:test_cos_f32
945                   Sine:test_sin_f32
946                   Square Root:test_sqrt_f32
947                } -> PARAM1_ID
948             }
949
950           suite Fast Maths Q31 {
951                class = FastMathQ31
952                folder = FastMathQ31
953
954                ParamList {
955                  NB
956                  Summary NB
957                  Names "Number of samples"
958                  Formula "NB"
959                }
960
961                Pattern SAMPLES_Q31_ID : Samples1_q31.txt
962                Output  OUT_SAMPLES_Q31_ID : Output
963
964                Params PARAM1_ID = {
965                  NB = [64,128,256]
966                }
967
968                Functions {
969                   Cosine:test_cos_q31
970                   Sine:test_sin_q31
971                   Square Root:test_sqrt_q31
972                } -> PARAM1_ID
973             }
974
975           suite Fast Maths Q15 {
976                class = FastMathQ15
977                folder = FastMathQ15
978
979                ParamList {
980                  NB
981                  Summary NB
982                  Names "Number of samples"
983                  Formula "NB"
984                }
985
986                Pattern SAMPLES_Q15_ID : Samples1_q15.txt
987                Output  OUT_SAMPLES_Q15_ID : Output
988
989                Params PARAM1_ID = {
990                  NB = [64,128,256]
991                }
992
993                Functions {
994                   Cosine:test_cos_q15
995                   Sine:test_sin_q15
996                   Square Root:test_sqrt_q15
997                } -> PARAM1_ID
998             }
999        }
1000
1001        group Bayes{
1002           class = Bayes
1003           folder = Bayes
1004
1005           suite Bayes F32 {
1006              class = BayesF32
1007              folder = BayesF32
1008
1009              ParamList {
1010                  VECDIM,NBCLASSES
1011                  Summary VECDIM,NBCLASSES
1012                  Names "Vector dimension","Number of classes"
1013                  Formula "VECDIM*NBCLASSES"
1014                }
1015
1016              Pattern DIMS2_S16_ID : DimsBench2_s16.txt
1017              Pattern INPUTS2_F32_ID : Inputs2_f32.txt
1018              Pattern PARAMS2_F32_ID : Params2_f32.txt
1019              Pattern PREDICTS2_S16_ID : Predicts2_s16.txt
1020
1021              Output  OUT_PROBA_F32_ID : Probas
1022              Output  OUT_PREDICT_S16_ID : Predicts
1023
1024              // Must be consistent with the Python script
1025              Params PARAM1_ID = {
1026                  VECDIM = [12,14,20]
1027                  NBCLASSES = [3,5,4]
1028                }
1029
1030              Functions {
1031                 Naive Gaussian Bayes Predictor:test_gaussian_naive_bayes_predict_f32
1032              } -> PARAM1_ID
1033           }
1034        }
1035
1036        group Distance  {
1037           class = Distance
1038           folder = Distance
1039
1040           suite Distance F32 {
1041              class = DistanceF32
1042              folder = DistanceF32
1043
1044              ParamList {
1045                  NB
1046                  Summary NB
1047                  Names "NB Samples"
1048                  Formula "NB"
1049              }
1050
1051              Pattern INPUTA_F32_ID : InputBenchA1_f32.txt
1052              Pattern INPUTB_F32_ID : InputBenchB1_f32.txt
1053
1054              Pattern INPUTA_PROBA_F32_ID : InputBenchProbaA1_f32.txt
1055              Pattern INPUTB_PROBA_F32_ID : InputBenchProbaB1_f32.txt
1056
1057              Output  TMPA_F32_ID : TmpA
1058              Output  TMPB_F32_ID : TmpB
1059
1060              Params PARAM1_ID = {
1061                  NB = [16,32,64,128,256]
1062              }
1063
1064              Functions {
1065                 Bray Curtis distance:test_braycurtis_distance_f32
1066                 Canberra distance:test_canberra_distance_f32
1067                 Chebyshev distance:test_chebyshev_distance_f32
1068                 Cityblock distance:test_cityblock_distance_f32
1069                 Correlation distance:test_correlation_distance_f32
1070                 Cosine distance:test_cosine_distance_f32
1071                 Euclidean distance:test_euclidean_distance_f32
1072                 Jensen Shannon distance:test_jensenshannon_distance_f32
1073                 Minkowski distance:test_minkowski_distance_f32
1074              } -> PARAM1_ID
1075           }
1076
1077           suite Distance  U32 {
1078              class = DistanceU32
1079              folder = DistanceU32
1080
1081              ParamList {
1082                  NB
1083                  Summary NB
1084                  Names "NB Bits"
1085                  Formula "NB"
1086              }
1087
1088              Pattern INPUTA_U32_ID : InputBenchA1_u32.txt
1089              Pattern INPUTB_U32_ID : InputBenchB1_u32.txt
1090
1091
1092              Params PARAM1_ID = {
1093                  NB = [512, 1024, 2048, 4096, 8192]
1094              }
1095
1096
1097              Functions {
1098                 Dice distance:test_dice_distance_u32
1099                 Hamming distance:test_hamming_distance_u32
1100                 Jaccard distance:test_jaccard_distance_u32
1101                 Kulsinski distance:test_kulsinski_distance_u32
1102                 Roger Stanimoto distance:test_rogerstanimoto_distance_u32
1103                 Russell Rao distance:test_russellrao_distance_u32
1104                 Sokal Michener distance:test_sokalmichener_distance_u32
1105                 Sokal Sneath distance:test_sokalsneath_distance_u32
1106                 Yule distance:test_yule_distance_u32
1107              } -> PARAM1_ID
1108           }
1109        }
1110
1111        group SVM  {
1112           class = SVM
1113           folder = SVM
1114
1115           suite SVM F32 {
1116              class = SVMF32
1117              folder = SVMF32
1118
1119              ParamList {
1120                  VECDIM,NBVECS
1121                  Summary VECDIM,NBVECS
1122                  Names "Vector dimension","Number of suppot vectors"
1123                  Formula "VECDIM*NBVECS"
1124              }
1125
1126              Pattern INPUT_F32_ID : InputsBench6_f32.txt
1127
1128              Pattern DIMS_LINEAR_S16_ID : DimsLinear6_s16.txt
1129              Pattern PARAMS_LINEAR_F32_ID : ParamsLinear6_f32.txt
1130
1131              Pattern DIMS_POLY_S16_ID : DimsPoly6_s16.txt
1132              Pattern PARAMS_POLY_F32_ID : ParamsPoly6_f32.txt
1133
1134              Pattern DIMS_RBF_S16_ID : DimsRBF6_s16.txt
1135              Pattern PARAMS_RBF_F32_ID : ParamsRBF6_f32.txt
1136
1137              Pattern DIMS_SIGMOID_S16_ID : DimsSigmoid6_s16.txt
1138              Pattern PARAMS_SIGMOID_F32_ID : ParamsSigmoid6_f32.txt
1139
1140              Output  OUT_S32_ID : Output
1141
1142              // Must be consistent with the Python script
1143              Params PARAM1_ID = {
1144                  VECDIM = [16,32,64]
1145                  NBVECS = [8,16,32]
1146                }
1147
1148              Functions {
1149                 Linear SVM:test_svm_linear_predict_f32
1150                 Polynomial SVM:test_svm_polynomial_predict_f32
1151                 RBF SVM:test_svm_rbf_predict_f32
1152                 Sigmoid SVM:test_svm_sigmoid_predict_f32
1153              } -> PARAM1_ID
1154           }
1155        }
1156
1157        group Barycenter {
1158           class = Barycenter
1159
1160           suite Barycenter {
1161                class = SupportBarF32
1162                folder = SupportBarF32
1163
1164                ParamList {
1165                  NB,VECDIM
1166                  Summary NB,VECDIM
1167                  Names "Number of samples","Vector dimension"
1168                  Formula "NB*VECDIM"
1169                }
1170
1171                Pattern SAMPLES_F32_ID : Samples1_f32.txt
1172                Pattern COEFS_F32_ID : Coefs1_f32.txt
1173                Output  OUT_SAMPLES_F32_ID : Output
1174
1175                Params PARAM1_ID = {
1176                  NB = [16,64,128]
1177                  VECDIM = [5,10,15]
1178                }
1179
1180                Functions {
1181                   Barycenter:test_barycenter_f32
1182                } -> PARAM1_ID
1183
1184           }
1185
1186        }
1187
1188        group Support Functions {
1189           class = Support
1190           folder = Support
1191
1192           suite Support Functions F32 {
1193                class = SupportF32
1194                folder = SupportF32
1195
1196                ParamList {
1197                  NB
1198                  Summary NB
1199                  Names "Number of samples"
1200                  Formula "NB"
1201                }
1202
1203                Pattern SAMPLES_F32_ID : Samples1_f32.txt
1204                Pattern SAMPLES_Q15_ID : Samples3_q15.txt
1205                Pattern SAMPLES_Q31_ID : Samples4_q31.txt
1206                Pattern SAMPLES_Q7_ID : Samples5_q7.txt
1207
1208                Pattern INPUTS6_F32_ID : Inputs6_f32.txt
1209                Pattern WEIGHTS6_F32_ID : Weights6_f32.txt
1210                Pattern REF6_F32_ID : Ref6_f32.txt
1211
1212                Output  OUT_SAMPLES_F32_ID : Output
1213
1214                Params PARAM1_ID = {
1215                  NB = [64,128,256]
1216                }
1217
1218                Functions {
1219                   Vector Copy:test_copy_f32
1220                   Vector Filling:test_fill_f32
1221                   Elementwise q15 to f32:test_q15_to_f32
1222                   Elementwise q31 to f32:test_q31_to_f32
1223                   Elementwise q7 to f32:test_q7_to_f32
1224                   Weighted sum:test_weighted_sum_f32
1225                } -> PARAM1_ID
1226             }
1227
1228           suite Support Functions Q31 {
1229                class = SupportQ31
1230                folder = SupportQ31
1231
1232                ParamList {
1233                  NB
1234                  Summary NB
1235                  Names "Number of samples"
1236                  Formula "NB"
1237                }
1238
1239                Pattern SAMPLES_Q31_ID : Samples4_q31.txt
1240                Pattern SAMPLES_Q15_ID : Samples3_q15.txt
1241                Pattern SAMPLES_Q7_ID : Samples5_q7.txt
1242                Output  OUT_SAMPLES_Q31_ID : Output
1243
1244                Params PARAM1_ID = {
1245                  NB = [64,128,256]
1246                }
1247
1248                Functions {
1249                   Vector Copy:test_copy_q31
1250                   Vector Filling:test_fill_q31
1251                   Elementwise q15 to q31:test_q15_to_q31
1252                   Elementwise q7 to q31:test_q7_to_q31
1253                } -> PARAM1_ID
1254             }
1255
1256           suite Support Functions Q15 {
1257                class = SupportQ15
1258                folder = SupportQ15
1259
1260                ParamList {
1261                  NB
1262                  Summary NB
1263                  Names "Number of samples"
1264                  Formula "NB"
1265                }
1266
1267                Pattern SAMPLES_Q15_ID : Samples3_q15.txt
1268                Pattern SAMPLES_Q31_ID : Samples4_q31.txt
1269                Pattern SAMPLES_Q7_ID : Samples5_q7.txt
1270                Output  OUT_SAMPLES_Q15_ID : Output
1271
1272                Params PARAM1_ID = {
1273                  NB = [64,128,256]
1274                }
1275
1276                Functions {
1277                   Vector Copy:test_copy_q15
1278                   Vector Filling:test_fill_q15
1279                   Elementwise q31 to q15:test_q31_to_q15
1280                   Elementwise q7 to q15:test_q7_to_q15
1281                } -> PARAM1_ID
1282             }
1283
1284           suite Support Functions Q7 {
1285                class = SupportQ7
1286                folder = SupportQ7
1287
1288                ParamList {
1289                  NB
1290                  Summary NB
1291                  Names "Number of samples"
1292                  Formula "NB"
1293                }
1294
1295                Pattern SAMPLES_Q7_ID : Samples5_q7.txt
1296                Pattern SAMPLES_Q31_ID : Samples4_q31.txt
1297                Pattern SAMPLES_Q15_ID : Samples3_q15.txt
1298                Output  OUT_SAMPLES_Q7_ID : Output
1299
1300                Params PARAM1_ID = {
1301                  NB = [64,128,256]
1302                }
1303
1304                Functions {
1305                   Vector Copy:test_copy_q7
1306                   Vector Filling:test_fill_q7
1307                   Elementwise q31 to q7:test_q31_to_q7
1308                   Elementwise q15 to q7:test_q15_to_q7
1309                } -> PARAM1_ID
1310             }
1311        }
1312
1313        group Matrix {
1314           class = Matrix
1315           folder = Matrix
1316
1317           group Matrix Operators with one matrix size {
1318              class = Unary
1319              folder = Unary
1320
1321              suite Unary Matrix Operators F32 {
1322                class = UnaryF32
1323                folder = UnaryF32
1324
1325                ParamList {
1326                  NBR,NBC
1327                  Summary NBR,NBC
1328                  Names "Number of rows","Number of columns"
1329                  Formula "NBR*NBC"
1330                }
1331
1332                Pattern INPUTA_F32_ID : InputA1_f32.txt
1333                Pattern INPUTAC_F32_ID : InputAC1_f32.txt
1334                Pattern INPUTVEC1_F32_ID : InputVec1_f32.txt
1335
1336                Pattern DIMSCHOLESKY1_DPO_S16_ID : DimsCholeskyDPO1_s16.txt
1337                Pattern DIMSCHOLESKY1_SDPO_S16_ID : DimsCholeskySDPO1_s16.txt
1338                Pattern INPUTSCHOLESKY1_DPO_F32_ID : InputCholeskyDPO1_f32.txt
1339                Pattern INPUTSCHOLESKY1_SDPO_F32_ID : InputCholeskySDPO1_f32.txt
1340
1341                Pattern REFCHOLESKY1_DPO_F32_ID : RefCholeskyDPO1_f32.txt
1342
1343                Pattern REFLDLT_D_DPO1_F32_ID : RefLDLT_D_DPO1_f32.txt
1344                Pattern REFLDLT_LL_DPO1_F32_ID : RefLDLT_LL_DPO1_f32.txt
1345                Pattern REFLDLT_PERM_DPO1_F32_ID : RefLDLT_PERM_DPO1_s16.txt
1346
1347                Pattern REFLDLT_D_SDPO1_F32_ID : RefLDLT_D_SDPO1_f32.txt
1348                Pattern REFLDLT_LL_SDPO1_F32_ID : RefLDLT_LL_SDPO1_f32.txt
1349                Pattern REFLDLT_PERM_SDPO1_F32_ID : RefLDLT_PERM_SDPO1_s16.txt
1350
1351                Pattern INPUT_UT_DPO_F32_ID : InputUTDPO1_f32.txt
1352                Pattern INPUT_LT_DPO_F32_ID : InputLTDPO1_f32.txt
1353                Pattern INPUT_RNDA_DPO_F32_ID : InputRNDA1_f32.txt
1354
1355                Pattern REF_UTINV_DPO_F32_ID : Ref_UTINV_DPO1_f32.txt
1356                Pattern REF_LTINV_DPO_F32_ID : Ref_LTINV_DPO1_f32.txt
1357                Pattern REF_CHOLINV_DPO_F32_ID : Ref_CHOLINV_DPO1_f32.txt
1358
1359                Output  D_F32_ID : Output
1360                Output  LL_F32_ID : Output
1361                Output  PERM_S16_ID : Output
1362
1363                Output  TMPA_F32_ID : TempA
1364                Output  TMPB_F32_ID : TempB
1365                Output  OUT_F32_ID : Output
1366
1367                Params PARAM1_ID = {
1368                  NBR = [5,10,40]
1369                  NBC = [5,10,40]
1370                }
1371
1372                Params PARAM_CHOLESKY_ID : ParamsCholesky1.txt
1373
1374                Functions {
1375                   Matrix Scaling:test_mat_scale_f32
1376                   Matrix Inversion:test_mat_inverse_f32
1377                   Matrix Transpose:test_mat_trans_f32
1378                   Matrix Addition:test_mat_add_f32
1379                   Matrix Substraction:test_mat_sub_f32
1380                   Matrix Vector Multiplication:test_mat_vec_mult_f32
1381                   Matrix Complex Transpose:test_mat_cmplx_trans_f32
1382                   Cholesky decomposition:test_mat_cholesky_dpo_f32 -> PARAM_CHOLESKY_ID
1383                   Backward substitution:test_solve_upper_triangular_f32 -> PARAM_CHOLESKY_ID
1384                   Foward substitution:test_solve_lower_triangular_f32 -> PARAM_CHOLESKY_ID
1385                   LDLT decomposition:test_ldlt_decomposition_f32 -> PARAM_CHOLESKY_ID
1386                } -> PARAM1_ID
1387              }
1388
1389              suite Unary Matrix Operators Q31 {
1390                class = UnaryQ31
1391                folder = UnaryQ31
1392
1393                ParamList {
1394                  NBR,NBC
1395                  Summary NBR,NBC
1396                  Names "Number of rows","Number of columns"
1397                  Formula "NBR*NBC"
1398                }
1399
1400                Pattern INPUTA_Q31_ID : InputA1_q31.txt
1401                Pattern INPUTAC_Q31_ID : InputAC1_q31.txt
1402                Pattern INPUTVEC1_Q31_ID : InputVec1_q31.txt
1403
1404                Output  OUT_Q31_ID : Output
1405
1406                Params PARAM1_ID = {
1407                  NBR = [5,10,40]
1408                  NBC = [5,10,40]
1409                }
1410
1411                Functions {
1412                   Matrix Scaling:test_mat_scale_q31
1413                   Matrix Transpose:test_mat_trans_q31
1414                   Matrix Addition:test_mat_add_q31
1415                   Matrix Substraction:test_mat_sub_q31
1416                   Matrix Vector Multiplication:test_mat_vec_mult_q31
1417                   Matrix Complex Transpose:test_mat_cmplx_trans_q31
1418                } -> PARAM1_ID
1419              }
1420
1421              suite Unary Matrix Operators Q15 {
1422                class = UnaryQ15
1423                folder = UnaryQ15
1424
1425                ParamList {
1426                  NBR,NBC
1427                  Summary NBR,NBC
1428                  Names "Number of rows","Number of columns"
1429                  Formula "NBR*NBC"
1430                }
1431
1432                Pattern INPUTA_Q15_ID : InputA1_q15.txt
1433                Pattern INPUTAC_Q15_ID : InputAC1_q15.txt
1434                Pattern INPUTVEC1_Q15_ID : InputVec1_q15.txt
1435                Output  OUT_Q15_ID : Output
1436
1437                Params PARAM1_ID = {
1438                  NBR = [5,10,40]
1439                  NBC = [5,10,40]
1440                }
1441
1442                Functions {
1443                   Matrix Scaling:test_mat_scale_q15
1444                   Matrix Transpose:test_mat_trans_q15
1445                   Matrix Addition:test_mat_add_q15
1446                   Matrix Substraction:test_mat_sub_q15
1447                   Matrix Vector Multiplication:test_mat_vec_mult_q15
1448                   Matrix Complex Transpose:test_mat_cmplx_trans_q15
1449                } -> PARAM1_ID
1450              }
1451
1452              suite Unary Matrix Operators Q7 {
1453                class = UnaryQ7
1454                folder = UnaryQ7
1455
1456                ParamList {
1457                  NBR,NBC
1458                  Summary NBR,NBC
1459                  Names "Number of rows","Number of columns"
1460                  Formula "NBR*NBC"
1461                }
1462
1463                Pattern INPUTA_Q7_ID : InputA1_q7.txt
1464                Pattern INPUTVEC1_Q7_ID : InputVec1_q7.txt
1465                Output  OUT_Q7_ID : Output
1466
1467                Params PARAM1_ID = {
1468                  NBR = [5,10,40]
1469                  NBC = [5,10,40]
1470                }
1471
1472                Functions {
1473                   Matrix Transpose:test_mat_trans_q7
1474                   Matrix Vector Multiplication:test_mat_vec_mult_q7
1475                } -> PARAM1_ID
1476              }
1477
1478
1479              suite Unary Matrix Operators F64 {
1480                class = UnaryF64
1481                folder = UnaryF64
1482
1483                ParamList {
1484                  NBR,NBC
1485                  Summary NBR,NBC
1486                  Names "Number of rows","Number of columns"
1487                  Formula "NBR*NBC"
1488                }
1489
1490                Pattern INPUTA_F64_ID : InputA1_f64.txt
1491
1492                Pattern DIMSCHOLESKY1_DPO_S16_ID : DimsCholeskyDPO1_s16.txt
1493                Pattern DIMSCHOLESKY1_SDPO_S16_ID : DimsCholeskySDPO1_s16.txt
1494                Pattern INPUTSCHOLESKY1_DPO_F64_ID : InputCholeskyDPO1_f64.txt
1495                Pattern INPUTSCHOLESKY1_SDPO_F64_ID : InputCholeskySDPO1_f64.txt
1496
1497                Pattern REFCHOLESKY1_DPO_F64_ID : RefCholeskyDPO1_f64.txt
1498
1499                Pattern REFLDLT_D_DPO1_F64_ID : RefLDLT_D_DPO1_f64.txt
1500                Pattern REFLDLT_LL_DPO1_F64_ID : RefLDLT_LL_DPO1_f64.txt
1501                Pattern REFLDLT_PERM_DPO1_F64_ID : RefLDLT_PERM_DPO1_s16.txt
1502
1503                Pattern REFLDLT_D_SDPO1_F64_ID : RefLDLT_D_SDPO1_f64.txt
1504                Pattern REFLDLT_LL_SDPO1_F64_ID : RefLDLT_LL_SDPO1_f64.txt
1505                Pattern REFLDLT_PERM_SDPO1_F64_ID : RefLDLT_PERM_SDPO1_s16.txt
1506
1507                Pattern INPUT_UT_DPO_F64_ID : InputUTDPO1_f64.txt
1508                Pattern INPUT_LT_DPO_F64_ID : InputLTDPO1_f64.txt
1509                Pattern INPUT_RNDA_DPO_F64_ID : InputRNDA1_f64.txt
1510
1511                Pattern REF_UTINV_DPO_F64_ID : Ref_UTINV_DPO1_f64.txt
1512                Pattern REF_LTINV_DPO_F64_ID : Ref_LTINV_DPO1_f64.txt
1513                Pattern REF_CHOLINV_DPO_F64_ID : Ref_CHOLINV_DPO1_f64.txt
1514
1515                Output  TMPA_F64_ID : TempA
1516                Output  TMPB_F64_ID : TempB
1517                Output  OUT_F64_ID : Output
1518
1519                Params PARAM1_ID = {
1520                  NBR = [5,10,40]
1521                  NBC = [5,10,40]
1522                }
1523
1524                Params PARAM_CHOLESKY_ID : ParamsCholesky1.txt
1525
1526                Functions {
1527                   Matrix Inversion:test_mat_inverse_f64
1528                   Cholesky decomposition:test_mat_cholesky_dpo_f64 -> PARAM_CHOLESKY_ID
1529                   Backward substitution:test_solve_upper_triangular_f64 -> PARAM_CHOLESKY_ID
1530                   Foward substitution:test_solve_lower_triangular_f64 -> PARAM_CHOLESKY_ID
1531                } -> PARAM1_ID
1532              }
1533           }
1534
1535           group Matrix Operators with two matrix sizes {
1536              class = Binary
1537              folder = Binary
1538
1539             suite Binary Matrix Operators F32 {
1540                class = BinaryF32
1541                folder = BinaryF32
1542
1543                ParamList {
1544                  NBR,NBI,NBC
1545                  Summary NBR,NBI,NBC
1546                  Names "Number of rows","Inner dimensions","Number of columns"
1547                  Formula "NBR*NBI*NBC"
1548                }
1549
1550                Pattern INPUTA_F32_ID : InputA1_f32.txt
1551                Pattern INPUTB_F32_ID : InputB1_f32.txt
1552
1553                Pattern INPUTAC_F32_ID : InputAC1_f32.txt
1554                Pattern INPUTBC_F32_ID : InputBC1_f32.txt
1555                Output  OUT_F32_ID : Output
1556
1557                Params PARAM1_ID = {
1558                  NBR = [5,10,40]
1559                  NBI = [5,10,40]
1560                  NBC = [5,10,40]
1561                }
1562
1563
1564                Functions {
1565                   Matrix Multiplication:test_mat_mult_f32
1566                   Complex Matrix Multiplication:test_mat_cmplx_mult_f32
1567                } -> PARAM1_ID
1568             }
1569
1570             suite Binary Matrix Operators Q31 {
1571                class = BinaryQ31
1572                folder = BinaryQ31
1573
1574                ParamList {
1575                  NBR,NBI,NBC
1576                  Summary NBR,NBI,NBC
1577                  Names "Number of rows","Inner dimensions","Number of columns"
1578                  Formula "NBR*NBI*NBC"
1579                }
1580
1581                Pattern INPUTA_Q31_ID : InputA1_q31.txt
1582                Pattern INPUTB_Q31_ID : InputB1_q31.txt
1583                Pattern INPUTAC_Q31_ID : InputAC1_q31.txt
1584                Pattern INPUTBC_Q31_ID : InputBC1_q31.txt
1585                Output  OUT_Q31_ID : Output
1586                Output  TMP_Q31_ID : Temp
1587
1588                Params PARAM1_ID = {
1589                  NBR = [5,10,40]
1590                  NBI = [5,10,40]
1591                  NBC = [5,10,40]
1592                }
1593
1594
1595                Functions {
1596                   Matrix Multiplication:test_mat_mult_q31
1597                   Complex Matrix Multiplication:test_mat_cmplx_mult_q31
1598                   Fast Matrix Multiplication:test_mat_mult_fast_q31
1599                   Opt Matrix Multiplication:test_mat_mult_opt_q31
1600                } -> PARAM1_ID
1601             }
1602
1603             suite Binary Matrix Operators Q15 {
1604                class = BinaryQ15
1605                folder = BinaryQ15
1606
1607                ParamList {
1608                  NBR,NBI,NBC
1609                  Summary NBR,NBI,NBC
1610                  Names "Number of rows","Inner dimensions","Number of columns"
1611                  Formula "NBR*NBI*NBC"
1612                }
1613
1614                Pattern INPUTA_Q15_ID : InputA1_q15.txt
1615                Pattern INPUTB_Q15_ID : InputB1_q15.txt
1616                Pattern INPUTAC_Q15_ID : InputAC1_q15.txt
1617                Pattern INPUTBC_Q15_ID : InputBC1_q15.txt
1618                Output  OUT_Q15_ID : Output
1619                Output  TMP_Q15_ID : Temp
1620
1621                Params PARAM1_ID = {
1622                  NBR = [5,10,40]
1623                  NBI = [5,10,40]
1624                  NBC = [5,10,40]
1625                }
1626
1627                Functions {
1628                   Matrix Multiplication:test_mat_mult_q15
1629                   Complex Matrix Multiplication:test_mat_cmplx_mult_q15
1630                   Fast Matrix Multiplication:test_mat_mult_fast_q15
1631                } -> PARAM1_ID
1632             }
1633
1634             suite Binary Matrix Operators Q7 {
1635                class = BinaryQ7
1636                folder = BinaryQ7
1637
1638                ParamList {
1639                  NBR,NBI,NBC
1640                  Summary NBR,NBI,NBC
1641                  Names "Number of rows","Inner dimensions","Number of columns"
1642                  Formula "NBR*NBI*NBC"
1643                }
1644
1645                Pattern INPUTA_Q7_ID : InputA1_q7.txt
1646                Pattern INPUTB_Q7_ID : InputB1_q7.txt
1647                Pattern INPUTAC_Q7_ID : InputAC1_q7.txt
1648                Pattern INPUTBC_Q7_ID : InputBC1_q7.txt
1649                Output  OUT_Q7_ID : Output
1650
1651                Params PARAM1_ID = {
1652                  NBR = [5,10,40]
1653                  NBI = [5,10,40]
1654                  NBC = [5,10,40]
1655                }
1656
1657
1658                Functions {
1659                   Matrix Multiplication:test_mat_mult_q7
1660                } -> PARAM1_ID
1661             }
1662           }
1663        }
1664
1665        group Spectral Transformations {
1666           class = Transform
1667           folder = Transform
1668
1669           suite Spectral Transformations F32 {
1670                class = TransformF32
1671                folder = TransformF32
1672
1673                ParamList {
1674                  NB,IFFT,BITREV
1675                  Summary NB
1676                  Names "Number of samples,Inverse FFT, Bit Reversal"
1677                  Formula "I(NB*log2(NB))"
1678                }
1679
1680                Pattern INPUTR_F32_ID : RealInputSamples19_f32.txt
1681                Pattern INPUTC_F32_ID : ComplexInputSamples_Noisy_512_6_f32.txt
1682
1683                Output  TMP_F32_ID : Temp
1684                Output  OUT_F32_ID : Output
1685                Output  STATE_F32_ID : Output
1686
1687
1688                Params CFFT_PARAM_ID = {
1689                  NB = [64,128,256]
1690                  IFFT = [0,1]
1691                  REV = [0,1]
1692                }
1693
1694                Params CFFT4_PARAM_ID = {
1695                  NB = [16,64,256]
1696                  IFFT = [0,1]
1697                  REV = [0,1]
1698                }
1699
1700                Params RFFT_PARAM_ID = {
1701                  NB = [64,128,256]
1702                  IFFT = [0,1]
1703                  REV = [1]
1704                }
1705
1706                Params DCT_PARAM_ID = {
1707                  NB = [128,512,2048]
1708                  IFFT = [0]
1709                  REV = [1]
1710                }
1711
1712                Functions {
1713                   Complex FFT:test_cfft_f32 -> CFFT_PARAM_ID
1714                   Real FFT:test_rfft_f32 -> RFFT_PARAM_ID
1715                   DCT4:test_dct4_f32 -> DCT_PARAM_ID
1716                   Scalar Radix 4 Complex FFT:test_cfft_radix4_f32 -> CFFT4_PARAM_ID
1717                   Scalar Radix 2 Complex FFT:test_cfft_radix2_f32 -> CFFT_PARAM_ID
1718                }
1719           }
1720
1721           suite Spectral Transformations Q31 {
1722                class = TransformQ31
1723                folder = TransformQ31
1724
1725                ParamList {
1726                  NB,IFFT,BITREV
1727                  Summary NB
1728                  Names "Number of samples,Inverse FFT, Bit Reversal"
1729                  Formula "I(NB*log2(NB))"
1730                }
1731
1732                Pattern INPUTR_Q31_ID : RealInputSamples19_q31.txt
1733                Pattern INPUTC_Q31_ID : ComplexInputSamples_Noisy_512_6_q31.txt
1734                Output  OUT_Q31_ID : Output
1735                Output  STATE_Q31_ID : Output
1736
1737
1738                Params CFFT_PARAM_ID = {
1739                  NB = [64,128,256]
1740                  IFFT = [0,1]
1741                  REV = [0,1]
1742                }
1743
1744                Params CFFT4_PARAM_ID = {
1745                  NB = [16,64,256]
1746                  IFFT = [0,1]
1747                  REV = [0,1]
1748                }
1749
1750                Params RFFT_PARAM_ID = {
1751                  NB = [64,128,256]
1752                  IFFT = [0,1]
1753                  REV = [1]
1754                }
1755
1756                Params DCT_PARAM_ID = {
1757                  NB = [128,512,2048]
1758                  IFFT = [0]
1759                  REV = [1]
1760                }
1761
1762                Functions {
1763                   Complex FFT:test_cfft_q31 -> CFFT_PARAM_ID
1764                   Real FFT:test_rfft_q31 -> RFFT_PARAM_ID
1765                   DCT4:test_dct4_q31 -> DCT_PARAM_ID
1766                   Scalar Radix 4 Complex FFT:test_cfft_radix4_q31 -> CFFT4_PARAM_ID
1767                   Scalar Radix 2 Complex FFT:test_cfft_radix2_q31 -> CFFT_PARAM_ID
1768                }
1769           }
1770
1771           suite Spectral Transformations Q15 {
1772                class = TransformQ15
1773                folder = TransformQ15
1774
1775                ParamList {
1776                  NB,IFFT,BITREV
1777                  Summary NB
1778                  Names "Number of samples,Inverse FFT, Bit Reversal"
1779                  Formula "I(NB*log2(NB))"
1780                }
1781
1782                Pattern INPUTR_Q15_ID : RealInputSamples19_q15.txt
1783                Pattern INPUTC_Q15_ID : ComplexInputSamples_Noisy_512_6_q15.txt
1784                Output  OUT_Q15_ID : Output
1785                Output  STATE_Q15_ID : Output
1786
1787
1788                Params CFFT_PARAM_ID = {
1789                  NB = [64,128,256]
1790                  IFFT = [0,1]
1791                  REV = [0,1]
1792                }
1793
1794                Params CFFT4_PARAM_ID = {
1795                  NB = [16,64,256]
1796                  IFFT = [0,1]
1797                  REV = [0,1]
1798                }
1799
1800                Params RFFT_PARAM_ID = {
1801                  NB = [64,128,256]
1802                  IFFT = [0,1]
1803                  REV = [1]
1804                }
1805
1806                Params DCT_PARAM_ID = {
1807                  NB = [128,512,2048]
1808                  IFFT = [0]
1809                  REV = [1]
1810                }
1811
1812                Functions {
1813                   Complex FFT:test_cfft_q15 -> CFFT_PARAM_ID
1814                   Real FFT:test_rfft_q15 -> RFFT_PARAM_ID
1815                   DCT4:test_dct4_q15 -> DCT_PARAM_ID
1816                   Scalar Radix 4 Complex FFT:test_cfft_radix4_q15 -> CFFT4_PARAM_ID
1817                   Scalar Radix 2 Complex FFT:test_cfft_radix2_q15 -> CFFT_PARAM_ID
1818                }
1819           }
1820        }
1821
1822    }
1823
1824    group NN Benchmarks
1825    {
1826       class = NNBenchmarks
1827       folder = NN
1828
1829       suite Fully Connected Benchmarks {
1830         class = FullyConnectedBench
1831         folder = FullyConnected
1832
1833         ParamList {
1834                NB
1835                Summary NB
1836                Names "Repetition"
1837                Formula "NB"
1838            }
1839
1840         Pattern INPUT13_S8_ID : TestCase_8_8_5_input_13.txt
1841         Pattern BIAS13_S8_ID : TestCase_8_8_5_bias_13.txt
1842         Pattern WEIGHT13_S8_ID : TestCase_8_8_5_weights_13.txt
1843         Pattern REF13_S8_ID : TestCase_8_8_5_output_13.txt
1844
1845         Output  OUTPUT_S8_ID : Output
1846         Output  TEMP_S16_ID : Temp
1847
1848         Params PARAM1_ID = {
1849                NB = [10,20,40,50]
1850            }
1851
1852         Functions {
1853            arm_fully_connected_tflite_s8:test_fully_connected_tflite_s8  -> PARAM1_ID
1854         }
1855       }
1856
1857       suite Pooling Benchmarks {
1858         class = PoolingBench
1859         folder = Pooling
1860
1861         ParamList {
1862                NB
1863                Summary NB
1864                Names "Repetition"
1865                Formula "NB"
1866          }
1867
1868         Pattern INPUT1_S8_ID : Input1.txt
1869         Pattern REF1_S8_ID : Ref1.txt
1870
1871         Output  OUTPUT_S8_ID : Output
1872         Output  TEMP_S8_ID : Temp
1873         Output  TEMPINPUT_S8_ID : TempInput
1874
1875         Params PARAM1_ID = {
1876                NB = [1]
1877            }
1878
1879         Functions {
1880            arm_avgpool_s8 Test 1:test_avgpool_s8  -> PARAM1_ID
1881         }
1882       }
1883    }
1884
1885    group Compiler Benchmarks {
1886      class = CompilerBenchmarks
1887      folder = DSP
1888
1889      group Micro Benchmarks {
1890        class = MicroBenchmarks
1891        folder = BasicMaths
1892
1893        suite MicroBenchmarksF32 {
1894          class = MicroBenchmarksF32
1895          folder = BasicMathsF32
1896
1897          ParamList {
1898                    NB
1899                    Summary NB
1900                    Names "NB Samples"
1901                    Formula "NB"
1902          }
1903
1904          Pattern INPUT1_F32_ID : Input1_f32.txt
1905          Pattern INPUT2_F32_ID : Input2_f32.txt
1906          Output  OUT_SAMPLES_F32_ID : Output
1907
1908          Params PARAM1_ID = {
1909                    A = [16,32,64,128,256]
1910          }
1911
1912          Functions {
1913                  While loop:test_while_f32
1914                  For loop:test_for_f32
1915                  For loop and array:test_array_f32
1916          } -> PARAM1_ID
1917        }
1918
1919        suite MicroBenchmarksQ31 {
1920          class = MicroBenchmarksQ31
1921          folder = BasicMathsQ31
1922
1923          ParamList {
1924                    NB
1925                    Summary NB
1926                    Names "NB Samples"
1927                    Formula "NB"
1928          }
1929
1930          Pattern INPUT1_Q31_ID : Input1_q31.txt
1931          Pattern INPUT2_Q31_ID : Input2_q31.txt
1932          Output  OUT_SAMPLES_Q31_ID : Output
1933
1934          Params PARAM1_ID = {
1935                    A = [16,32,64,128,256]
1936          }
1937
1938          Functions {
1939                  While loop:test_while_q31
1940                  For loop:test_for_q31
1941                  For loop and array:test_array_q31
1942          } -> PARAM1_ID
1943        }
1944
1945        suite MicroBenchmarksQ15 {
1946          class = MicroBenchmarksQ15
1947          folder = BasicMathsQ15
1948
1949          ParamList {
1950                    NB
1951                    Summary NB
1952                    Names "NB Samples"
1953                    Formula "NB"
1954          }
1955
1956          Pattern INPUT1_Q15_ID : Input1_q15.txt
1957          Pattern INPUT2_Q15_ID : Input2_q15.txt
1958          Output  OUT_SAMPLES_Q15_ID : Output
1959
1960          Params PARAM1_ID = {
1961                    A = [16,32,64,128,256]
1962          }
1963
1964          Functions {
1965                  While loop:test_while_q15
1966                  For loop:test_for_q15
1967                  For loop and array:test_array_q15
1968          } -> PARAM1_ID
1969        }
1970
1971        suite MicroBenchmarksQ7 {
1972          class = MicroBenchmarksQ7
1973          folder = BasicMathsQ7
1974
1975          ParamList {
1976                    NB
1977                    Summary NB
1978                    Names "NB Samples"
1979                    Formula "NB"
1980          }
1981
1982          Pattern INPUT1_Q7_ID : Input1_q7.txt
1983          Pattern INPUT2_Q7_ID : Input2_q7.txt
1984          Output  OUT_SAMPLES_Q7_ID : Output
1985
1986          Params PARAM1_ID = {
1987                    A = [16,32,64,128,256]
1988          }
1989
1990          Functions {
1991                  While loop:test_while_q7
1992                  For loop:test_for_q7
1993                  For loop and array:test_array_q7
1994          } -> PARAM1_ID
1995        }
1996      }
1997    }
1998}
1999