From c992c2609b9f3f59cd1500ff5d2301bf073a7b29 Mon Sep 17 00:00:00 2001 From: github-actions Date: Wed, 6 Mar 2024 06:37:02 +0000 Subject: [PATCH] Update documentation for branch main --- main/DSP_2basic_8hpp.html | 150 + main/DSP_2matrix__multiply_8hpp.html | 150 + main/DSP_2num__features_8hpp.html | 152 + main/DSP_2q15_8hpp.html | 178 + main/DSP_2q7_8hpp.html | 158 + main/Helium_2basic_8hpp.html | 191 + main/Helium_2float_8hpp.html | 302 + main/Helium_2half_8hpp.html | 202 + main/Helium_2matrix__multiply_8hpp.html | 153 + .../Helium_2matrix__multiply__fixed_8hpp.html | 150 + main/Helium_2num__features_8hpp.html | 155 + main/Helium_2q15_8hpp.html | 182 + main/Helium_2q31_8hpp.html | 158 + main/Helium_2q7_8hpp.html | 158 + main/Scalar_2basic_8hpp.html | 180 + main/Scalar_2matrix__multiply_8hpp.html | 166 + .../Scalar_2matrix__multiply__fixed_8hpp.html | 160 + main/algorithms_8hpp.html | 186 + main/annotated.html | 277 +- main/annotated_dup.js | 94 +- main/arch_8hpp.html | 173 + main/classes.html | 41 +- main/common_8hpp.html | 193 + .../dir_1afd0fa4bc3a56d6a22edef9c6cdb5d9.html | 168 + .../dir_2557f24e2d31d3253d343dc4d67826e8.html | 176 + .../dir_4cc4ba402bf03b1070304fd50839dd1a.html | 162 + .../dir_a1c02bd85bba95bfc9a4acc6f5e01018.html | 150 + .../dir_c11b7767e24616f54a92559a6dd7f65d.html | 166 + .../dir_d455d9d201b8ce82bb93e6872a2a7aaf.html | 150 + .../dir_e30d455166c31a1269859f837a0bcd4a.html | 199 + .../dir_e35a6ada74331f73bed51bd8fbc7f186.html | 156 + main/double_8hpp.html | 184 + main/dsppp_building.html | 163 + main/dsppp_code_size.html | 156 + main/dsppp_fusion.html | 163 + main/dsppp_guidelines.html | 151 + main/dsppp_intro.html | 191 + main/dsppp_main.html | 165 + main/dsppp_main.js | 48 + main/dsppp_matrix.html | 237 + main/dsppp_memory_allocator.html | 197 + main/dsppp_memory_static_dynamic.html | 171 + main/dsppp_template.html | 186 + main/dsppp_vector.html | 207 + main/dsppp_vector_example.html | 209 + main/files.html | 204 + main/fixed__point_8hpp.html | 367 + main/footer.js | 4 +- main/forward_8hpp.html | 158 + main/functions.html | 7 +- main/functions_a.html | 157 + main/functions_b.html | 1 + main/functions_c.html | 7 + main/functions_d.html | 3 + main/functions_e.html | 2 + main/functions_f.html | 4 + main/functions_func.html | 151 + main/functions_func_a.html | 152 + main/functions_func_b.html | 151 + main/functions_func_c.html | 156 + main/functions_func_d.html | 153 + main/functions_func_e.html | 151 + main/functions_func_f.html | 153 + main/functions_func_g.html | 151 + main/functions_func_i.html | 151 + main/functions_func_l.html | 152 + main/functions_func_m.html | 159 + main/functions_func_o.html | 164 + main/functions_func_p.html | 151 + main/functions_func_q.html | 152 + main/functions_func_r.html | 155 + main/functions_func_s.html | 154 + main/functions_func_t.html | 152 + main/functions_func_v.html | 157 + main/functions_func_z.html | 151 + main/functions_func_~.html | 151 + main/functions_g.html | 1 + main/functions_h.html | 152 + main/functions_i.html | 4 + main/functions_l.html | 2 + main/functions_m.html | 12 + main/functions_n.html | 2 + main/functions_o.html | 15 + main/functions_p.html | 2 + main/functions_q.html | 152 + main/functions_r.html | 6 + main/functions_rela.html | 149 + main/functions_s.html | 8 + main/functions_t.html | 5 +- main/functions_type.html | 201 + main/functions_v.html | 12 + main/functions_vars_f.html | 1 + main/functions_vars_h.html | 152 + main/functions_vars_i.html | 3 + main/functions_vars_m.html | 3 + main/functions_vars_n.html | 1 + main/functions_vars_s.html | 2 + main/functions_vars_v.html | 2 + main/functions_w.html | 1 + main/functions_z.html | 151 + main/functions_~.html | 151 + main/fusion_8hpp.html | 220 + main/fusion__ops_8hpp.html | 177 + main/globals.html | 158 + main/globals_func.html | 158 + main/group_8hpp.html | 220 + main/group__ALGO.html | 461 + main/group__ALGO.js | 9 + main/group__ARCH.html | 242 + main/group__ARCH.js | 8 + main/group__ARCHALG.html | 162 + main/group__ARCHALG.js | 6 + main/group__COMMON.html | 176 + main/group__COMMON.js | 7 + main/group__DEBUG.html | 187 + main/group__DEBUG.js | 4 + main/group__DSPALG.html | 150 + main/group__DSPNumber.html | 166 + main/group__DSPNumber.js | 6 + main/group__DSPPP.html | 181 + main/group__DSPPP.js | 15 + main/group__DSPQ15Number.html | 408 + main/group__DSPQ15Number.js | 16 + .../group__DSPQ15Number_structQ15DSPVector.js | 6 + ..._1enable__if_3_01true_01_4_1_1type_01_4.js | 8 + main/group__DSPQ7Number.html | 158 + main/group__DSPQ7Number.js | 4 + main/group__FIXED.html | 6691 ++++++++++++ main/group__FIXED.js | 210 + ...M_00_01F_00_01false_00_01uint16__t_01_4.js | 16 + ...M_00_01F_00_01false_00_01uint32__t_01_4.js | 15 + ...M_00_01F_00_01false_00_01uint64__t_01_4.js | 15 + ...1M_00_01F_00_01false_00_01uint8__t_01_4.js | 16 + ...01M_00_01F_00_01true_00_01int16__t_01_4.js | 18 + ...01M_00_01F_00_01true_00_01int32__t_01_4.js | 18 + ...01M_00_01F_00_01true_00_01int64__t_01_4.js | 18 + ..._01M_00_01F_00_01true_00_01int8__t_01_4.js | 18 + ...alse_00_01test16_07M_00_01F_00_010_08_4.js | 6 + ...alse_00_01test32_07M_00_01F_00_010_08_4.js | 6 + ...alse_00_01test64_07M_00_01F_00_010_08_4.js | 6 + ...false_00_01test8_07M_00_01F_00_010_08_4.js | 6 + ...true_00_01test16_07M_00_01F_00_011_08_4.js | 6 + ...true_00_01test32_07M_00_01F_00_011_08_4.js | 6 + ...true_00_01test64_07M_00_01F_00_011_08_4.js | 6 + ...1true_00_01test8_07M_00_01F_00_011_08_4.js | 6 + main/group__FUSION.html | 1393 +++ main/group__FUSION.js | 36 + ..._FUSION_structarm__cmsis__dsp_1_1__Expr.js | 14 + main/group__GenericDoubleNumber.html | 387 + main/group__GenericDoubleNumber.js | 15 + ...er_structnumber__traits_3_01double_01_4.js | 5 + ...its_3_01double_00_01arch_00_01void_01_4.js | 8 + main/group__GenericFloatNumber.html | 299 + main/group__GenericFloatNumber.js | 15 + ...ber_structnumber__traits_3_01float_01_4.js | 5 + ...base__o90f4a252693d6998222af60019971d09.js | 8 + main/group__GenericHalfNumber.html | 292 + main/group__GenericHalfNumber.js | 15 + ...tructnumber__traits_3_01float16__t_01_4.js | 5 + ...tructvector__traits_3_01float16__t_01_4.js | 8 + main/group__GenericNumber.html | 176 + main/group__GenericNumber.js | 11 + main/group__GenericQ15Number.html | 299 + main/group__GenericQ15Number.js | 15 + ...umber_structnumber__traits_3_01Q15_01_4.js | 5 + ...se__of_736401966ad6c7e96bbc91e818be4c30.js | 8 + main/group__GenericQ31Number.html | 299 + main/group__GenericQ31Number.js | 15 + ...umber_structnumber__traits_3_01Q31_01_4.js | 5 + ...se__of_ed6a72ce773710148e7beb817362a08f.js | 8 + main/group__GenericQ7Number.html | 299 + main/group__GenericQ7Number.js | 15 + ...Number_structnumber__traits_3_01Q7_01_4.js | 5 + ...e__of_33bee4f23fe32f74c815c9681e55bcba5.js | 8 + main/group__GenericTUPLENumber.html | 342 + main/group__GenericTUPLENumber.js | 14 + ..._3_01std_1_1tuple_3_01E_8_8_8_01_4_01_4.js | 5 + ..._1tuple_3_01E_8_8_8_01_4_00_01arch_01_4.js | 7 + main/group__HELIUMALG.html | 675 ++ main/group__HELIUMALG.js | 11 + main/group__HeliumFloatNumber.html | 1012 ++ main/group__HeliumFloatNumber.js | 20 + ..._base__ba5ab38020bf229f10c8cb296601cd2a.js | 8 + main/group__HeliumHalfNumber.html | 395 + main/group__HeliumHalfNumber.js | 12 + ..._1is__bbf0c88ec3dcce04bc63f988798dbaaac.js | 8 + main/group__HeliumNumber.html | 915 ++ main/group__HeliumNumber.js | 19 + main/group__HeliumQ15Number.html | 334 + main/group__HeliumQ15Number.js | 11 + ...ase__of8f632c1300f8f47d48a293f567e4c1db.js | 8 + main/group__HeliumQ31Number.html | 158 + main/group__HeliumQ31Number.js | 4 + main/group__HeliumQ7Number.html | 158 + main/group__HeliumQ7Number.js | 4 + main/group__MEMBUF.html | 443 + main/group__MEMBUF.js | 7 + main/group__MEMORY.html | 658 ++ main/group__MEMORY.js | 17 + ...MORY_classarm__cmsis__dsp_1_1MemoryPool.js | 8 + main/group__MEMTOOL.html | 320 + main/group__MEMTOOL.js | 11 + main/group__MEMVEC.html | 293 + main/group__MEMVEC.js | 4 + main/group__Matrix.html | 9610 +++++++++++++++++ main/group__Matrix.js | 215 + ..._Matrix_structarm__cmsis__dsp_1_1Matrix.js | 38 + ...rix_structarm__cmsis__dsp_1_1MatrixView.js | 40 + ...ew_3_01T_00_01CONSTRAINED__DYNAMIC_01_4.js | 38 + ...p_1_1MatrixView_3_01T_00_01DYNAMIC_01_4.js | 40 + ...YNAMIC_00_01DYNAMIC_00_01Allocator_01_4.js | 42 + ...__Matrix_structarm__cmsis__dsp_1_1Slice.js | 6 + ...Matrix_structarm__cmsis__dsp_1_1__Outer.js | 14 + main/group__NUMBER.html | 279 + main/group__NUMBER.js | 12 + ...structarm__cmsis__dsp_1_1vector__traits.js | 5 + main/group__SCALARALG.html | 850 ++ main/group__SCALARALG.js | 13 + main/group__UNROLLING.html | 150 + main/group__VECTOR.html | 5594 ++++++++++ main/group__VECTOR.js | 138 + ..._VECTOR_structarm__cmsis__dsp_1_1Vector.js | 22 + ...TOR_structarm__cmsis__dsp_1_1VectorView.js | 34 + ...p_1_1VectorView_3_01T_00_01DYNAMIC_01_4.js | 36 + ..._3_01P_00_01DYNAMIC_00_01Allocator_01_4.js | 22 + ...R_structarm__cmsis__dsp_1_1Vector__Base.js | 19 + main/hierarchy.html | 346 + main/index.html | 20 +- main/index.js | 7 +- main/matrix_8hpp.html | 188 + main/matrix__impl_8hpp.html | 184 + main/matrix__multiply__f16_8hpp.html | 150 + main/matrix__multiply__f32_8hpp.html | 150 + main/matrix__multiply__float_8hpp.html | 160 + main/matrix__view_8hpp.html | 185 + main/memory_8hpp.html | 158 + main/memory__pool_8hpp.html | 191 + main/modules.html | 38 +- main/modules.js | 3 +- main/namespacearm__cmsis__dsp.html | 573 + main/namespaceinner.html | 3748 +++++++ main/namespacemembers.html | 273 + main/namespacemembers_func.html | 261 + main/namespacemembers_type.html | 154 + main/namespacemembers_vars.html | 150 + main/navtreedata.js | 16 +- main/navtreeindex0.js | 500 +- main/navtreeindex1.js | 500 +- main/navtreeindex2.js | 500 +- main/navtreeindex3.js | 500 +- main/navtreeindex4.js | 500 +- main/navtreeindex5.js | 500 +- main/navtreeindex6.js | 368 +- main/navtreeindex7.js | 253 + main/navtreeindex8.js | 253 + main/navtreeindex9.js | 195 + main/num__features_2float_8hpp.html | 184 + main/num__features_2half_8hpp.html | 184 + main/num__features_2q15_8hpp.html | 178 + main/num__features_2q31_8hpp.html | 178 + main/num__features_2q7_8hpp.html | 178 + main/number_8hpp.html | 181 + main/pages.html | 18 +- main/search/all_0.js | 881 +- main/search/all_1.js | 885 +- main/search/all_10.js | 65 +- main/search/all_11.js | 73 +- main/search/all_12.js | 48 +- main/search/all_13.js | 93 +- main/search/all_14.js | 88 +- main/search/all_15.js | 10 +- main/search/all_16.js | 95 +- main/search/all_17.js | 10 +- main/search/all_18.js | 7 + main/search/all_19.js | 4 + main/search/all_1a.js | 4 + main/search/all_1b.js | 4 + main/search/all_2.js | 57 +- main/search/all_3.js | 67 +- main/search/all_4.js | 39 +- main/search/all_5.js | 41 +- main/search/all_6.js | 58 +- main/search/all_7.js | 18 +- main/search/all_8.js | 35 +- main/search/all_9.js | 15 +- main/search/all_a.js | 5 +- main/search/all_b.js | 11 +- main/search/all_c.js | 33 +- main/search/all_d.js | 79 +- main/search/all_e.js | 41 +- main/search/all_f.js | 48 +- main/search/classes_0.js | 114 +- main/search/classes_1.js | 98 + main/search/classes_2.js | 5 + main/search/classes_3.js | 16 + main/search/classes_4.js | 5 + main/search/classes_5.js | 4 + main/search/classes_6.js | 10 + main/search/classes_7.js | 12 + main/search/classes_8.js | 13 + main/search/classes_9.js | 5 + main/search/classes_a.js | 4 + main/search/classes_b.js | 33 + main/search/files_0.js | 5 + main/search/files_1.js | 4 + main/search/files_2.js | 9 + main/search/files_3.js | 7 + main/search/files_4.js | 4 + main/search/files_5.js | 12 + main/search/files_6.js | 11 + main/search/files_7.js | 9 + main/search/files_8.js | 6 + main/search/files_9.js | 4 + main/search/files_a.js | 6 + main/search/functions_0.js | 750 +- main/search/functions_1.js | 751 ++ main/search/functions_10.js | 11 + main/search/functions_11.js | 11 + main/search/functions_12.js | 24 + main/search/functions_13.js | 4 + main/search/functions_14.js | 4 + main/search/functions_2.js | 4 + main/search/functions_3.js | 10 + main/search/functions_4.js | 7 + main/search/functions_5.js | 7 + main/search/functions_6.js | 8 + main/search/functions_7.js | 4 + main/search/functions_8.js | 5 + main/search/functions_9.js | 6 + main/search/functions_a.js | 5 + main/search/functions_b.js | 18 + main/search/functions_c.js | 28 + main/search/functions_d.js | 6 + main/search/functions_e.js | 5 + main/search/functions_f.js | 8 + main/search/groups_0.js | 8 +- main/search/groups_11.js | 24 +- main/search/groups_12.js | 6 +- main/search/groups_13.js | 25 +- main/search/groups_14.js | 29 +- main/search/groups_15.js | 6 + main/search/groups_2.js | 72 +- main/search/groups_3.js | 5 +- main/search/groups_5.js | 10 +- main/search/groups_7.js | 27 +- main/search/groups_c.js | 24 +- main/search/groups_d.js | 15 +- main/search/groups_f.js | 21 +- main/search/namespaces_0.js | 4 + main/search/namespaces_1.js | 4 + main/search/pages_0.js | 2 +- main/search/pages_1.js | 2 +- main/search/pages_2.js | 3 +- main/search/pages_3.js | 4 + main/search/pages_4.js | 4 + main/search/pages_5.js | 4 + main/search/pages_6.js | 5 + main/search/pages_7.js | 4 + main/search/pages_8.js | 4 + main/search/pages_9.js | 4 + main/search/pages_a.js | 5 + main/search/pages_b.js | 4 + main/search/related_0.js | 4 + main/search/searchdata.js | 55 +- main/search/typedefs_0.js | 11 +- main/search/typedefs_1.js | 32 +- main/search/typedefs_2.js | 8 +- main/search/typedefs_3.js | 13 + main/search/typedefs_4.js | 4 + main/search/typedefs_5.js | 4 + main/search/typedefs_6.js | 4 + main/search/typedefs_7.js | 38 + main/search/typedefs_8.js | 4 + main/search/typedefs_9.js | 12 + main/search/typedefs_a.js | 5 + main/search/typedefs_b.js | 10 + main/search/typedefs_c.js | 4 + main/search/variables_10.js | 57 +- main/search/variables_11.js | 51 +- main/search/variables_12.js | 7 +- main/search/variables_13.js | 8 +- main/search/variables_14.js | 5 +- main/search/variables_15.js | 4 + main/search/variables_2.js | 3 +- main/search/variables_3.js | 5 +- main/search/variables_5.js | 9 +- main/search/variables_7.js | 5 +- main/search/variables_8.js | 9 +- main/search/variables_9.js | 4 +- main/search/variables_a.js | 4 +- main/search/variables_b.js | 19 +- main/search/variables_c.js | 15 +- main/search/variables_d.js | 18 +- main/search/variables_e.js | 24 +- main/search/variables_f.js | 12 +- main/unroll_8hpp.html | 167 + main/vec_8hpp.html | 213 + main/vector__impl_8hpp.html | 187 + main/vector__view_8hpp.html | 181 + version.js | 2 +- 400 files changed, 64430 insertions(+), 4125 deletions(-) create mode 100644 main/DSP_2basic_8hpp.html create mode 100644 main/DSP_2matrix__multiply_8hpp.html create mode 100644 main/DSP_2num__features_8hpp.html create mode 100644 main/DSP_2q15_8hpp.html create mode 100644 main/DSP_2q7_8hpp.html create mode 100644 main/Helium_2basic_8hpp.html create mode 100644 main/Helium_2float_8hpp.html create mode 100644 main/Helium_2half_8hpp.html create mode 100644 main/Helium_2matrix__multiply_8hpp.html create mode 100644 main/Helium_2matrix__multiply__fixed_8hpp.html create mode 100644 main/Helium_2num__features_8hpp.html create mode 100644 main/Helium_2q15_8hpp.html create mode 100644 main/Helium_2q31_8hpp.html create mode 100644 main/Helium_2q7_8hpp.html create mode 100644 main/Scalar_2basic_8hpp.html create mode 100644 main/Scalar_2matrix__multiply_8hpp.html create mode 100644 main/Scalar_2matrix__multiply__fixed_8hpp.html create mode 100644 main/algorithms_8hpp.html create mode 100644 main/arch_8hpp.html create mode 100644 main/common_8hpp.html create mode 100644 main/dir_1afd0fa4bc3a56d6a22edef9c6cdb5d9.html create mode 100644 main/dir_2557f24e2d31d3253d343dc4d67826e8.html create mode 100644 main/dir_4cc4ba402bf03b1070304fd50839dd1a.html create mode 100644 main/dir_a1c02bd85bba95bfc9a4acc6f5e01018.html create mode 100644 main/dir_c11b7767e24616f54a92559a6dd7f65d.html create mode 100644 main/dir_d455d9d201b8ce82bb93e6872a2a7aaf.html create mode 100644 main/dir_e30d455166c31a1269859f837a0bcd4a.html create mode 100644 main/dir_e35a6ada74331f73bed51bd8fbc7f186.html create mode 100644 main/double_8hpp.html create mode 100644 main/dsppp_building.html create mode 100644 main/dsppp_code_size.html create mode 100644 main/dsppp_fusion.html create mode 100644 main/dsppp_guidelines.html create mode 100644 main/dsppp_intro.html create mode 100644 main/dsppp_main.html create mode 100644 main/dsppp_main.js create mode 100644 main/dsppp_matrix.html create mode 100644 main/dsppp_memory_allocator.html create mode 100644 main/dsppp_memory_static_dynamic.html create mode 100644 main/dsppp_template.html create mode 100644 main/dsppp_vector.html create mode 100644 main/dsppp_vector_example.html create mode 100644 main/files.html create mode 100644 main/fixed__point_8hpp.html create mode 100644 main/forward_8hpp.html create mode 100644 main/functions_a.html create mode 100644 main/functions_func.html create mode 100644 main/functions_func_a.html create mode 100644 main/functions_func_b.html create mode 100644 main/functions_func_c.html create mode 100644 main/functions_func_d.html create mode 100644 main/functions_func_e.html create mode 100644 main/functions_func_f.html create mode 100644 main/functions_func_g.html create mode 100644 main/functions_func_i.html create mode 100644 main/functions_func_l.html create mode 100644 main/functions_func_m.html create mode 100644 main/functions_func_o.html create mode 100644 main/functions_func_p.html create mode 100644 main/functions_func_q.html create mode 100644 main/functions_func_r.html create mode 100644 main/functions_func_s.html create mode 100644 main/functions_func_t.html create mode 100644 main/functions_func_v.html create mode 100644 main/functions_func_z.html create mode 100644 main/functions_func_~.html create mode 100644 main/functions_h.html create mode 100644 main/functions_q.html create mode 100644 main/functions_rela.html create mode 100644 main/functions_type.html create mode 100644 main/functions_vars_h.html create mode 100644 main/functions_z.html create mode 100644 main/functions_~.html create mode 100644 main/fusion_8hpp.html create mode 100644 main/fusion__ops_8hpp.html create mode 100644 main/globals.html create mode 100644 main/globals_func.html create mode 100644 main/group_8hpp.html create mode 100644 main/group__ALGO.html create mode 100644 main/group__ALGO.js create mode 100644 main/group__ARCH.html create mode 100644 main/group__ARCH.js create mode 100644 main/group__ARCHALG.html create mode 100644 main/group__ARCHALG.js create mode 100644 main/group__COMMON.html create mode 100644 main/group__COMMON.js create mode 100644 main/group__DEBUG.html create mode 100644 main/group__DEBUG.js create mode 100644 main/group__DSPALG.html create mode 100644 main/group__DSPNumber.html create mode 100644 main/group__DSPNumber.js create mode 100644 main/group__DSPPP.html create mode 100644 main/group__DSPPP.js create mode 100644 main/group__DSPQ15Number.html create mode 100644 main/group__DSPQ15Number.js create mode 100644 main/group__DSPQ15Number_structQ15DSPVector.js create mode 100644 main/group__DSPQ15Number_structvector__traits_3_01Q15_00_01DSP_00_01typename_01std_1_1enable__if_3_01true_01_4_1_1type_01_4.js create mode 100644 main/group__DSPQ7Number.html create mode 100644 main/group__DSPQ7Number.js create mode 100644 main/group__FIXED.html create mode 100644 main/group__FIXED.js create mode 100644 main/group__FIXED_structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01false_00_01uint16__t_01_4.js create mode 100644 main/group__FIXED_structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01false_00_01uint32__t_01_4.js create mode 100644 main/group__FIXED_structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01false_00_01uint64__t_01_4.js create mode 100644 main/group__FIXED_structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01false_00_01uint8__t_01_4.js create mode 100644 main/group__FIXED_structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01true_00_01int16__t_01_4.js create mode 100644 main/group__FIXED_structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01true_00_01int32__t_01_4.js create mode 100644 main/group__FIXED_structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01true_00_01int64__t_01_4.js create mode 100644 main/group__FIXED_structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01true_00_01int8__t_01_4.js create mode 100644 main/group__FIXED_structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01false_00_01test16_07M_00_01F_00_010_08_4.js create mode 100644 main/group__FIXED_structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01false_00_01test32_07M_00_01F_00_010_08_4.js create mode 100644 main/group__FIXED_structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01false_00_01test64_07M_00_01F_00_010_08_4.js create mode 100644 main/group__FIXED_structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01false_00_01test8_07M_00_01F_00_010_08_4.js create mode 100644 main/group__FIXED_structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01true_00_01test16_07M_00_01F_00_011_08_4.js create mode 100644 main/group__FIXED_structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01true_00_01test32_07M_00_01F_00_011_08_4.js create mode 100644 main/group__FIXED_structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01true_00_01test64_07M_00_01F_00_011_08_4.js create mode 100644 main/group__FIXED_structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01true_00_01test8_07M_00_01F_00_011_08_4.js create mode 100644 main/group__FUSION.html create mode 100644 main/group__FUSION.js create mode 100644 main/group__FUSION_structarm__cmsis__dsp_1_1__Expr.js create mode 100644 main/group__GenericDoubleNumber.html create mode 100644 main/group__GenericDoubleNumber.js create mode 100644 main/group__GenericDoubleNumber_structnumber__traits_3_01double_01_4.js create mode 100644 main/group__GenericDoubleNumber_structvector__traits_3_01double_00_01arch_00_01void_01_4.js create mode 100644 main/group__GenericFloatNumber.html create mode 100644 main/group__GenericFloatNumber.js create mode 100644 main/group__GenericFloatNumber_structnumber__traits_3_01float_01_4.js create mode 100644 main/group__GenericFloatNumber_structvector__traits_3_01float_00_01arch_00_01typename_01std_1_1enable__if_3_9std_1_1is__base__o90f4a252693d6998222af60019971d09.js create mode 100644 main/group__GenericHalfNumber.html create mode 100644 main/group__GenericHalfNumber.js create mode 100644 main/group__GenericHalfNumber_structnumber__traits_3_01float16__t_01_4.js create mode 100644 main/group__GenericHalfNumber_structvector__traits_3_01float16__t_01_4.js create mode 100644 main/group__GenericNumber.html create mode 100644 main/group__GenericNumber.js create mode 100644 main/group__GenericQ15Number.html create mode 100644 main/group__GenericQ15Number.js create mode 100644 main/group__GenericQ15Number_structnumber__traits_3_01Q15_01_4.js create mode 100644 main/group__GenericQ15Number_structvector__traits_3_01Q15_00_01arch_00_01typename_01std_1_1enable__if_3_9std_1_1is__base__of_736401966ad6c7e96bbc91e818be4c30.js create mode 100644 main/group__GenericQ31Number.html create mode 100644 main/group__GenericQ31Number.js create mode 100644 main/group__GenericQ31Number_structnumber__traits_3_01Q31_01_4.js create mode 100644 main/group__GenericQ31Number_structvector__traits_3_01Q31_00_01arch_00_01typename_01std_1_1enable__if_3_9std_1_1is__base__of_ed6a72ce773710148e7beb817362a08f.js create mode 100644 main/group__GenericQ7Number.html create mode 100644 main/group__GenericQ7Number.js create mode 100644 main/group__GenericQ7Number_structnumber__traits_3_01Q7_01_4.js create mode 100644 main/group__GenericQ7Number_structvector__traits_3_01Q7_00_01arch_00_01typename_01std_1_1enable__if_3_9std_1_1is__base__of_33bee4f23fe32f74c815c9681e55bcba5.js create mode 100644 main/group__GenericTUPLENumber.html create mode 100644 main/group__GenericTUPLENumber.js create mode 100644 main/group__GenericTUPLENumber_structnumber__traits_3_01std_1_1tuple_3_01E_8_8_8_01_4_01_4.js create mode 100644 main/group__GenericTUPLENumber_structvector__traits_3_01std_1_1tuple_3_01E_8_8_8_01_4_00_01arch_01_4.js create mode 100644 main/group__HELIUMALG.html create mode 100644 main/group__HELIUMALG.js create mode 100644 main/group__HeliumFloatNumber.html create mode 100644 main/group__HeliumFloatNumber.js create mode 100644 main/group__HeliumFloatNumber_structvector__traits_3_01float_00_01arch_00_01typename_01std_1_1enable__if_3_01std_1_1is__base__ba5ab38020bf229f10c8cb296601cd2a.js create mode 100644 main/group__HeliumHalfNumber.html create mode 100644 main/group__HeliumHalfNumber.js create mode 100644 main/group__HeliumHalfNumber_structvector__traits_3_01float16__t_00_01arch_00_01typename_01std_1_1enable__if_3_01std_1_1is__bbf0c88ec3dcce04bc63f988798dbaaac.js create mode 100644 main/group__HeliumNumber.html create mode 100644 main/group__HeliumNumber.js create mode 100644 main/group__HeliumQ15Number.html create mode 100644 main/group__HeliumQ15Number.js create mode 100644 main/group__HeliumQ15Number_structvector__traits_3_01Q15_00_01arch_00_01typename_01std_1_1enable__if_3_01std_1_1is__base__of8f632c1300f8f47d48a293f567e4c1db.js create mode 100644 main/group__HeliumQ31Number.html create mode 100644 main/group__HeliumQ31Number.js create mode 100644 main/group__HeliumQ7Number.html create mode 100644 main/group__HeliumQ7Number.js create mode 100644 main/group__MEMBUF.html create mode 100644 main/group__MEMBUF.js create mode 100644 main/group__MEMORY.html create mode 100644 main/group__MEMORY.js create mode 100644 main/group__MEMORY_classarm__cmsis__dsp_1_1MemoryPool.js create mode 100644 main/group__MEMTOOL.html create mode 100644 main/group__MEMTOOL.js create mode 100644 main/group__MEMVEC.html create mode 100644 main/group__MEMVEC.js create mode 100644 main/group__Matrix.html create mode 100644 main/group__Matrix.js create mode 100644 main/group__Matrix_structarm__cmsis__dsp_1_1Matrix.js create mode 100644 main/group__Matrix_structarm__cmsis__dsp_1_1MatrixView.js create mode 100644 main/group__Matrix_structarm__cmsis__dsp_1_1MatrixView_3_01T_00_01CONSTRAINED__DYNAMIC_01_4.js create mode 100644 main/group__Matrix_structarm__cmsis__dsp_1_1MatrixView_3_01T_00_01DYNAMIC_01_4.js create mode 100644 main/group__Matrix_structarm__cmsis__dsp_1_1Matrix_3_01P_00_01DYNAMIC_00_01DYNAMIC_00_01Allocator_01_4.js create mode 100644 main/group__Matrix_structarm__cmsis__dsp_1_1Slice.js create mode 100644 main/group__Matrix_structarm__cmsis__dsp_1_1__Outer.js create mode 100644 main/group__NUMBER.html create mode 100644 main/group__NUMBER.js create mode 100644 main/group__NUMBER_structarm__cmsis__dsp_1_1vector__traits.js create mode 100644 main/group__SCALARALG.html create mode 100644 main/group__SCALARALG.js create mode 100644 main/group__UNROLLING.html create mode 100644 main/group__VECTOR.html create mode 100644 main/group__VECTOR.js create mode 100644 main/group__VECTOR_structarm__cmsis__dsp_1_1Vector.js create mode 100644 main/group__VECTOR_structarm__cmsis__dsp_1_1VectorView.js create mode 100644 main/group__VECTOR_structarm__cmsis__dsp_1_1VectorView_3_01T_00_01DYNAMIC_01_4.js create mode 100644 main/group__VECTOR_structarm__cmsis__dsp_1_1Vector_3_01P_00_01DYNAMIC_00_01Allocator_01_4.js create mode 100644 main/group__VECTOR_structarm__cmsis__dsp_1_1Vector__Base.js create mode 100644 main/hierarchy.html create mode 100644 main/matrix_8hpp.html create mode 100644 main/matrix__impl_8hpp.html create mode 100644 main/matrix__multiply__f16_8hpp.html create mode 100644 main/matrix__multiply__f32_8hpp.html create mode 100644 main/matrix__multiply__float_8hpp.html create mode 100644 main/matrix__view_8hpp.html create mode 100644 main/memory_8hpp.html create mode 100644 main/memory__pool_8hpp.html create mode 100644 main/namespacearm__cmsis__dsp.html create mode 100644 main/namespaceinner.html create mode 100644 main/namespacemembers.html create mode 100644 main/namespacemembers_func.html create mode 100644 main/namespacemembers_type.html create mode 100644 main/namespacemembers_vars.html create mode 100644 main/navtreeindex7.js create mode 100644 main/navtreeindex8.js create mode 100644 main/navtreeindex9.js create mode 100644 main/num__features_2float_8hpp.html create mode 100644 main/num__features_2half_8hpp.html create mode 100644 main/num__features_2q15_8hpp.html create mode 100644 main/num__features_2q31_8hpp.html create mode 100644 main/num__features_2q7_8hpp.html create mode 100644 main/number_8hpp.html create mode 100644 main/search/all_18.js create mode 100644 main/search/all_19.js create mode 100644 main/search/all_1a.js create mode 100644 main/search/all_1b.js create mode 100644 main/search/classes_1.js create mode 100644 main/search/classes_2.js create mode 100644 main/search/classes_3.js create mode 100644 main/search/classes_4.js create mode 100644 main/search/classes_5.js create mode 100644 main/search/classes_6.js create mode 100644 main/search/classes_7.js create mode 100644 main/search/classes_8.js create mode 100644 main/search/classes_9.js create mode 100644 main/search/classes_a.js create mode 100644 main/search/classes_b.js create mode 100644 main/search/files_0.js create mode 100644 main/search/files_1.js create mode 100644 main/search/files_2.js create mode 100644 main/search/files_3.js create mode 100644 main/search/files_4.js create mode 100644 main/search/files_5.js create mode 100644 main/search/files_6.js create mode 100644 main/search/files_7.js create mode 100644 main/search/files_8.js create mode 100644 main/search/files_9.js create mode 100644 main/search/files_a.js create mode 100644 main/search/functions_1.js create mode 100644 main/search/functions_10.js create mode 100644 main/search/functions_11.js create mode 100644 main/search/functions_12.js create mode 100644 main/search/functions_13.js create mode 100644 main/search/functions_14.js create mode 100644 main/search/functions_2.js create mode 100644 main/search/functions_3.js create mode 100644 main/search/functions_4.js create mode 100644 main/search/functions_5.js create mode 100644 main/search/functions_6.js create mode 100644 main/search/functions_7.js create mode 100644 main/search/functions_8.js create mode 100644 main/search/functions_9.js create mode 100644 main/search/functions_a.js create mode 100644 main/search/functions_b.js create mode 100644 main/search/functions_c.js create mode 100644 main/search/functions_d.js create mode 100644 main/search/functions_e.js create mode 100644 main/search/functions_f.js create mode 100644 main/search/groups_15.js create mode 100644 main/search/namespaces_0.js create mode 100644 main/search/namespaces_1.js create mode 100644 main/search/pages_3.js create mode 100644 main/search/pages_4.js create mode 100644 main/search/pages_5.js create mode 100644 main/search/pages_6.js create mode 100644 main/search/pages_7.js create mode 100644 main/search/pages_8.js create mode 100644 main/search/pages_9.js create mode 100644 main/search/pages_a.js create mode 100644 main/search/pages_b.js create mode 100644 main/search/related_0.js create mode 100644 main/search/typedefs_3.js create mode 100644 main/search/typedefs_4.js create mode 100644 main/search/typedefs_5.js create mode 100644 main/search/typedefs_6.js create mode 100644 main/search/typedefs_7.js create mode 100644 main/search/typedefs_8.js create mode 100644 main/search/typedefs_9.js create mode 100644 main/search/typedefs_a.js create mode 100644 main/search/typedefs_b.js create mode 100644 main/search/typedefs_c.js create mode 100644 main/search/variables_15.js create mode 100644 main/unroll_8hpp.html create mode 100644 main/vec_8hpp.html create mode 100644 main/vector__impl_8hpp.html create mode 100644 main/vector__view_8hpp.html diff --git a/main/DSP_2basic_8hpp.html b/main/DSP_2basic_8hpp.html new file mode 100644 index 000000000..424ec6226 --- /dev/null +++ b/main/DSP_2basic_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + +CMSIS-DSP: basic.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
DSP/basic.hpp File Reference
+
+
+
+
+ + + + diff --git a/main/DSP_2matrix__multiply_8hpp.html b/main/DSP_2matrix__multiply_8hpp.html new file mode 100644 index 000000000..acb79ca58 --- /dev/null +++ b/main/DSP_2matrix__multiply_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + +CMSIS-DSP: matrix_multiply.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
DSP/matrix_multiply.hpp File Reference
+
+
+
+
+ + + + diff --git a/main/DSP_2num__features_8hpp.html b/main/DSP_2num__features_8hpp.html new file mode 100644 index 000000000..de06213ba --- /dev/null +++ b/main/DSP_2num__features_8hpp.html @@ -0,0 +1,152 @@ + + + + + + + +CMSIS-DSP: num_features.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
DSP/num_features.hpp File Reference
+
+
+
#include "q7.hpp"
+#include "q15.hpp"
+
+
+ + + + diff --git a/main/DSP_2q15_8hpp.html b/main/DSP_2q15_8hpp.html new file mode 100644 index 000000000..28d6fc345 --- /dev/null +++ b/main/DSP_2q15_8hpp.html @@ -0,0 +1,178 @@ + + + + + + + +CMSIS-DSP: q15.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
DSP/q15.hpp File Reference
+
+
+ + + + + + + + +

+Data Structures

struct  Q15DSPVector
 Representation of a vector when DSP extension supported. More...
 
struct  vector_traits< Q15, DSP, typename std::enable_if< true >::type >
 Vector description for Q15 with DSP extensions. More...
 
+ + + +

+Namespaces

namespace  inner
 
+ + + + + + + +

+Functions

Q15DSPVector vconst (Q15 val)
 Vector const.
 
Q< 33, 30 > vreduce (const Q< 33, 30 > sum)
 Reduce accumulation value.
 
+
+
+ + + + diff --git a/main/DSP_2q7_8hpp.html b/main/DSP_2q7_8hpp.html new file mode 100644 index 000000000..2a2cb6da3 --- /dev/null +++ b/main/DSP_2q7_8hpp.html @@ -0,0 +1,158 @@ + + + + + + + +CMSIS-DSP: q7.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
DSP/q7.hpp File Reference
+
+
+ + + + +

+Namespaces

namespace  inner
 
+
+
+ + + + diff --git a/main/Helium_2basic_8hpp.html b/main/Helium_2basic_8hpp.html new file mode 100644 index 000000000..0e258acdf --- /dev/null +++ b/main/Helium_2basic_8hpp.html @@ -0,0 +1,191 @@ + + + + + + + +CMSIS-DSP: basic.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Helium/basic.hpp File Reference
+
+
+
#include <dsppp/arch.hpp>
+#include <type_traits>
+#include <dsppp/number.hpp>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , typename DST , typename std::enable_if< has_vector_inst< DST >() &&IsVector< DST >::value &&SameElementType< DST, T >::value, bool >::type = true>
void _Fill (DST &v, const T val, const vector_length_t l, const Helium *=nullptr)
 Fill evaluator for Helium.
 
template<typename T , typename DST , typename std::enable_if< has_vector_inst< DST >() &&must_use_matrix_idx< DST >() &&SameElementType< DST, T >::value, bool >::type = true>
void _Fill2D (DST &v, const T val, const vector_length_t rows, const vector_length_t cols, const Helium *=nullptr)
 Fill2D evaluator for Helium.
 
template<typename DA , typename DB , typename std::enable_if< has_vector_inst< DA >() &&vector_idx_pair< DA, DB >(), bool >::type = true>
void eval (DA &v, const DB &other, const vector_length_t l, const Helium *=nullptr)
 Eval function for Helium.
 
template<typename DA , typename DB , typename std::enable_if< has_vector_inst< DA >() &&must_use_matrix_idx_pair< DA, DB >(), bool >::type = true>
void eval2D (DA &v, const DB &other, const vector_length_t rows, const vector_length_t cols, const Helium *=nullptr)
 Eval2D function for Helium.
 
template<class TupType , size_t... I>
void printt (const TupType &_tup, std::index_sequence< I... >)
 Print tuple for debug.
 
template<class... T>
void printt (const std::tuple< T... > &_tup)
 Print tuple.
 
template<typename DA , typename DB , typename std::enable_if< has_vector_inst< DA >() &&vector_idx_pair< DA, DB >(), bool >::type = true>
DotResult< DA > _dot (const DA &a, const DB &b, const vector_length_t l, const Helium *=nullptr)
 Dor product for Helium.
 
template<typename DA , typename DB , typename std::enable_if< has_vector_inst< DA >() &&vector_idx_pair< DA, DB >(), bool >::type = true>
void _swap (DA &&a, DB &&b, const vector_length_t l, const Helium *=nullptr)
 Swap operator for Helium.
 
+
+
+ + + + diff --git a/main/Helium_2float_8hpp.html b/main/Helium_2float_8hpp.html new file mode 100644 index 000000000..bd7e4fd29 --- /dev/null +++ b/main/Helium_2float_8hpp.html @@ -0,0 +1,302 @@ + + + + + + + +CMSIS-DSP: float.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Helium/float.hpp File Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Structures

struct  vector_traits< float, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type >
 Vector datatype for Helium. More...
 
struct  vctpq< float >
 vctpq for this datatype More...
 
struct  vload1_gen_stride< S >
 Load with generalized stride (gather load) More...
 
struct  vload1_gen_stride< 0, 1, 2, 3 >
 Load with generalized stride specialized for <0,1,2,3> More...
 
struct  vload1_gen_stride_z< S >
 Load with generalized stride (gather load) and tail predicate. More...
 
struct  vload1_gen_stride_z< 0, 1, 2, 3 >
 Load with generalized stride (gather load) and tail predicate specialized for <0,1,2,3> More...
 
struct  vstore1_gen_stride< S >
 Generalized store with strides. More...
 
struct  vstore1_gen_stride< 0, 1, 2, 3 >
 Generalized store with stride (Specialized for <0,1,2,3>) More...
 
struct  vstore1_gen_stride_z< S >
 Store with generalized strides and tail predicate. More...
 
struct  vstore1_gen_stride_z< 0, 1, 2, 3 >
 Scatter store with tail predicate (specialized for <0,1,2,3>) More...
 
+ + + +

+Namespaces

namespace  inner
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

float32x4_t vconst (const float v)
 Vector constant.
 
float32x4_t vconst_tail (const float v, const mve_pred16_t p0)
 Vector constant with tail.
 
float32x4_t vneg (const float32x4_t a)
 Vector negate.
 
float32x4_t vneg (const float32x4_t a, const mve_pred16_t p0)
 Vector negate with tail.
 
float32x4_t vadd (const float32x4_t a, const float32x4_t b)
 Vector + Vector.
 
float32x4_t vadd (const float32x4_t a, const float b)
 Vector + Scalar.
 
float32x4_t vadd (const float a, const float32x4_t b)
 Scalar + Vector.
 
float32x4_t vadd (const float32x4_t a, const float32x4_t b, const mve_pred16_t p0)
 Vector + Vector with tail.
 
float32x4_t vadd (const float32x4_t a, const float b, const mve_pred16_t p0)
 Vector + scalar with tail.
 
float32x4_t vadd (const float a, const float32x4_t b, const mve_pred16_t p0)
 Scalar + vector with tail predicate.
 
float32x4_t vsub (const float32x4_t a, const float32x4_t b)
 Vector - Vector.
 
float32x4_t vsub (const float32x4_t a, const float b)
 Vector - Scalar.
 
float32x4_t vsub (const float a, const float32x4_t b)
 Scalar - Vector.
 
float32x4_t vsub (const float32x4_t a, const float32x4_t b, const mve_pred16_t p0)
 Vector - Vector with predicate.
 
float32x4_t vsub (const float32x4_t a, const float b, const mve_pred16_t p0)
 Vector - Scalar with predicate.
 
float32x4_t vsub (const float a, const float32x4_t b, const mve_pred16_t p0)
 Scalar - Vector with predicate.
 
float32x4_t vmul (const float32x4_t a, const float32x4_t b)
 Vector * Vector.
 
float32x4_t vmul (const float32x4_t a, const float b)
 Vector * Scalar.
 
float32x4_t vmul (const float a, const float32x4_t b)
 Scalar * Vector.
 
float32x4_t vmul (const float32x4_t a, const float32x4_t b, const mve_pred16_t p0)
 Vector * Vector with predicate.
 
float32x4_t vmul (const float32x4_t a, const float b, const mve_pred16_t p0)
 Vector * Scalar with predicate.
 
float32x4_t vmul (const float a, const float32x4_t b, const mve_pred16_t p0)
 Scalar * Vector with predicate.
 
float32x4_t vmacc (const float32x4_t acc, const float32x4_t a, const float32x4_t b)
 Multiply accumulate (Vector * Vector)
 
float32x4_t vmacc (const float32x4_t acc, const float32x4_t a, const float_t b)
 Multiply accumulate (Vector * Scalar)
 
float32x4_t vmacc (const float32x4_t acc, const float32x4_t a, const float32x4_t b, const mve_pred16_t p0)
 Multiply accumulate with predicate (Vector * Vector)
 
float vreduce (const float32x4_t in)
 Vector reduce.
 
template<int S, typename std::enable_if< S==1, bool >::type = true>
float32x4_t vload1 (const float32_t *p)
 Vector load with stride.
 
float32x4_t vload1 (const float32_t *p, const index_t stride)
 Vector load with dynamic stride.
 
template<int S, typename std::enable_if< S==1, bool >::type = true>
float32x4_t vload1_z (const float32_t *p, const std::size_t nb, const mve_pred16_t p0)
 Vector load with stride and predicate.
 
float32x4_t vload1_z (const float32_t *p, const index_t stride, const std::size_t nb, const mve_pred16_t p0)
 Vector load with dynamic stride and loop predication.
 
template<int S, typename std::enable_if< S==1, bool >::type = true>
void vstore1 (float32_t *p, const float32x4_t val)
 Store with stride.
 
void vstore1 (float32_t *p, const index_t stride, const float32x4_t val)
 Store with dynamic stride.
 
template<int S, typename std::enable_if< S==1, bool >::type = true>
void vstore1_z (float32_t *p, const float32x4_t val, const std::size_t nb, const mve_pred16_t p0)
 Store with stride and tail predicate.
 
void vstore1_z (float32_t *p, const index_t stride, const float32x4_t val, const std::size_t nb, const mve_pred16_t p0)
 Store with dynamic stride.
 
+
+
+ + + + diff --git a/main/Helium_2half_8hpp.html b/main/Helium_2half_8hpp.html new file mode 100644 index 000000000..aead80e92 --- /dev/null +++ b/main/Helium_2half_8hpp.html @@ -0,0 +1,202 @@ + + + + + + + +CMSIS-DSP: half.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Helium/half.hpp File Reference
+
+
+ + + + + + + + +

+Data Structures

struct  vector_traits< float16_t, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type >
 Vector features for f16 on Helium. More...
 
struct  vctpq< float16_t >
 vctpq for Helium and f16 More...
 
+ + + +

+Namespaces

namespace  inner
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

float16x8_t vconst (float16_t v)
 Vector const.
 
float16x8_t vconst_tail (const float16_t v, const mve_pred16_t p0)
 Vector of const with tail predicate.
 
float16x8_t vneg (const float16x8_t a)
 Vector negate.
 
float16x8_t vneg (const float16x8_t a, const mve_pred16_t p0)
 Vector negate with tail predicate.
 
float16x8_t vadd (const float16x8_t a, const float16x8_t b)
 Vector + Vector.
 
float16x8_t vadd (const float16x8_t a, const float16_t b)
 Vector + Scalar.
 
float16x8_t vadd (const float16_t a, const float16x8_t b)
 Scalar + Vector.
 
float16x8_t vadd (const float16x8_t a, const float16x8_t b, const mve_pred16_t p0)
 Vector + Vector with tail predicate.
 
float16x8_t vadd (const float16x8_t a, const float16_t b, const mve_pred16_t p0)
 Vector + Scalar with tail predicate.
 
float16x8_t vadd (const float16_t a, const float16x8_t b, const mve_pred16_t p0)
 Scalar + Vector with tail predicate.
 
+
+
+ + + + diff --git a/main/Helium_2matrix__multiply_8hpp.html b/main/Helium_2matrix__multiply_8hpp.html new file mode 100644 index 000000000..edfdc9e20 --- /dev/null +++ b/main/Helium_2matrix__multiply_8hpp.html @@ -0,0 +1,153 @@ + + + + + + + +CMSIS-DSP: matrix_multiply.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Helium/matrix_multiply.hpp File Reference
+
+ +
+ + + + diff --git a/main/Helium_2matrix__multiply__fixed_8hpp.html b/main/Helium_2matrix__multiply__fixed_8hpp.html new file mode 100644 index 000000000..eedb081b0 --- /dev/null +++ b/main/Helium_2matrix__multiply__fixed_8hpp.html @@ -0,0 +1,150 @@ + + + + + + + +CMSIS-DSP: matrix_multiply_fixed.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Helium/matrix_multiply_fixed.hpp File Reference
+
+
+
+
+ + + + diff --git a/main/Helium_2num__features_8hpp.html b/main/Helium_2num__features_8hpp.html new file mode 100644 index 000000000..932427a0f --- /dev/null +++ b/main/Helium_2num__features_8hpp.html @@ -0,0 +1,155 @@ + + + + + + + +CMSIS-DSP: num_features.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Helium/num_features.hpp File Reference
+
+
+
#include "float.hpp"
+#include "half.hpp"
+#include "q31.hpp"
+#include "q15.hpp"
+#include "q7.hpp"
+
+
+ + + + diff --git a/main/Helium_2q15_8hpp.html b/main/Helium_2q15_8hpp.html new file mode 100644 index 000000000..f3a301de8 --- /dev/null +++ b/main/Helium_2q15_8hpp.html @@ -0,0 +1,182 @@ + + + + + + + +CMSIS-DSP: q15.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Helium/q15.hpp File Reference
+
+
+ + + + + +

+Data Structures

struct  vector_traits< Q15, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type >
 Vector features for Q15 on Helium. More...
 
+ + + +

+Namespaces

namespace  inner
 
+ + + + + + + + + + + + + + +

+Functions

Q15DSPVector vconst (Q15 val)
 Vector const.
 
template<int S, typename std::enable_if< S==1, bool >::type = true>
int16x8_t vload1 (const Q15 *p)
 Vector load with stride.
 
Q< 33, 30 > vmacc (const Q< 33, 30 > sum, const int16x8_t vala, const int16x8_t valb)
 Vector accumulate into scalar.
 
Q< 33, 30 > vreduce (const Q< 33, 30 > sum)
 Reduce accumulation value.
 
+
+
+ + + + diff --git a/main/Helium_2q31_8hpp.html b/main/Helium_2q31_8hpp.html new file mode 100644 index 000000000..91d5bcb72 --- /dev/null +++ b/main/Helium_2q31_8hpp.html @@ -0,0 +1,158 @@ + + + + + + + +CMSIS-DSP: q31.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Helium/q31.hpp File Reference
+
+
+ + + + +

+Namespaces

namespace  inner
 
+
+
+ + + + diff --git a/main/Helium_2q7_8hpp.html b/main/Helium_2q7_8hpp.html new file mode 100644 index 000000000..76229b42b --- /dev/null +++ b/main/Helium_2q7_8hpp.html @@ -0,0 +1,158 @@ + + + + + + + +CMSIS-DSP: q7.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Helium/q7.hpp File Reference
+
+
+ + + + +

+Namespaces

namespace  inner
 
+
+
+ + + + diff --git a/main/Scalar_2basic_8hpp.html b/main/Scalar_2basic_8hpp.html new file mode 100644 index 000000000..253513ea2 --- /dev/null +++ b/main/Scalar_2basic_8hpp.html @@ -0,0 +1,180 @@ + + + + + + + +CMSIS-DSP: basic.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Scalar/basic.hpp File Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename T , typename DST , typename std::enable_if< IsVector< DST >::value &&SameElementType< DST, T >::value, bool >::type = true>
void _Fill (DST &v, const T val, vector_length_t l, const Scalar *=nullptr)
 Fill evaluator for scalar architecture.
 
template<typename T , typename DST , typename std::enable_if< must_use_matrix_idx< DST >() &&SameElementType< DST, T >::value, bool >::type = true>
void _Fill2D (DST &v, const T val, const vector_length_t rows, const vector_length_t cols, const Scalar *=nullptr)
 Fill2D evaluator for scalar architecture.
 
template<typename DA , typename DB , typename std::enable_if< vector_idx_pair< DA, DB >(), bool >::type = true>
void eval (DA &v, const DB &other, const vector_length_t l, const Scalar *=nullptr)
 Expression evaluator for vector in scalar mode.
 
template<typename DA , typename DB , typename std::enable_if< must_use_matrix_idx_pair< DA, DB >(), bool >::type = true>
void eval2D (DA &v, const DB &other, const vector_length_t rows, const vector_length_t cols, const Scalar *=nullptr)
 2D expression evaluator for scalar archiecture
 
template<typename DA , typename DB , typename std::enable_if< vector_idx_pair< DA, DB >(), bool >::type = true>
DotResult< DA > _dot (const DA &a, const DB &b, const vector_length_t l, const Scalar *=nullptr)
 Dot product evaluator for scalar architectuire.
 
template<typename DA , typename DB , typename std::enable_if< vector_idx_pair< DA, DB >(), bool >::type = true>
void _swap (DA &&a, DB &&b, const vector_length_t l, const Scalar *=nullptr)
 Swap evaluator for scalar architecture.
 
+
+
+ + + + diff --git a/main/Scalar_2matrix__multiply_8hpp.html b/main/Scalar_2matrix__multiply_8hpp.html new file mode 100644 index 000000000..f254cc23d --- /dev/null +++ b/main/Scalar_2matrix__multiply_8hpp.html @@ -0,0 +1,166 @@ + + + + + + + +CMSIS-DSP: matrix_multiply.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Scalar/matrix_multiply.hpp File Reference
+
+
+ + + + + + + + + + +

+Functions

template<typename MA , typename MB >
__STATIC_INLINE void _arm_mat_trans (const MA &src, MB &dst, const Scalar *=nullptr)
 Transposition for scalar architecture.
 
template<typename M , typename V , typename RES >
void _dot_m_v (RES &res, const M &m, const V &v, const Scalar *=nullptr)
 Matrix times vector for scalar architecture.
 
+
+
+ + + + diff --git a/main/Scalar_2matrix__multiply__fixed_8hpp.html b/main/Scalar_2matrix__multiply__fixed_8hpp.html new file mode 100644 index 000000000..27d142f14 --- /dev/null +++ b/main/Scalar_2matrix__multiply__fixed_8hpp.html @@ -0,0 +1,160 @@ + + + + + + + +CMSIS-DSP: matrix_multiply_fixed.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Scalar/matrix_multiply_fixed.hpp File Reference
+
+
+ + + + + + +

+Functions

template<typename MA , typename MB , typename RES , typename TMP , typename std::enable_if< number_traits< typename traits< MA >::Scalar >::is_fixed, bool >::type = true>
__STATIC_INLINE void _dot_m_m (const MA &pSrcA, const MB &pSrcB, RES &&pDst, const TMP &BT, const Scalar *=nullptr)
 Matrix times matrix for scalar architecture and fixed point.
 
+
+
+ + + + diff --git a/main/algorithms_8hpp.html b/main/algorithms_8hpp.html new file mode 100644 index 000000000..1dc6ffbbe --- /dev/null +++ b/main/algorithms_8hpp.html @@ -0,0 +1,186 @@ + + + + + + + +CMSIS-DSP: algorithms.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
algorithms.hpp File Reference
+
+
+ + + + +

+Namespaces

namespace  arm_cmsis_dsp
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

template<typename MA , typename MB , typename std::enable_if< HasMatrixIndexing< MA >::value &&HasMatrixIndexing< MB >::value, bool >::type = true>
void transposeTo (MA &dst, const MB &src)
 Transpose a matrix.
 
template<typename M , typename V , typename std::enable_if< CompatibleStaticMatVecProduct< M, V >::value, bool >::type = true>
OutputVector< M, V >::type dot (const M &m, const V &v)
 Matrix x Vector product.
 
template<typename MA , typename MB , typename std::enable_if< CompatibleStaticMatMatProduct< MA, MB >::value &&number_traits< typename traits< MA >::Scalar >::is_fixed, bool >::type = true>
OutputMatrix< MA, MB >::type dot (const MA &ma, const MB &mb)
 Matrix x Matrix product.
 
template<typename MA , typename MB , typename RES , typename std::enable_if< CompatibleDynamicMatMatProduct< MA, MB >::value &&number_traits< typename traits< MA >::Scalar >::is_float, bool >::type = true>
void dot (RES &&res, const MA &ma, const MB &mb)
 Matrix x Matrix product.
 
template<typename P >
Matrix< P, DYNAMIC, DYNAMIC, TMP_ALLOC > mk_identity (const vector_length_t l)
 Create identity matrix.
 
template<typename P , int L>
Matrix< P, L, L, TMP_ALLOC > mk_identity ()
 Create identity matrix.
 
+
+
+ + + + diff --git a/main/annotated.html b/main/annotated.html index 5c91bd635..0d4744664 100644 --- a/main/annotated.html +++ b/main/annotated.html @@ -132,100 +132,189 @@
Here are the data structures with brief descriptions:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +
[detail level 123]
 Carm_bilinear_interp_instance_f16Instance structure for the floating-point bilinear interpolation function
 Carm_bilinear_interp_instance_f32Instance structure for the floating-point bilinear interpolation function
 Carm_bilinear_interp_instance_q15Instance structure for the Q15 bilinear interpolation function
 Carm_bilinear_interp_instance_q31Instance structure for the Q31 bilinear interpolation function
 Carm_bilinear_interp_instance_q7Instance structure for the Q15 bilinear interpolation function
 Carm_biquad_cas_df1_32x64_ins_q31Instance structure for the high precision Q31 Biquad cascade filter
 Carm_biquad_cascade_df2T_instance_f16Instance structure for the floating-point transposed direct form II Biquad cascade filter
 Carm_biquad_cascade_df2T_instance_f32Instance structure for the floating-point transposed direct form II Biquad cascade filter
 Carm_biquad_cascade_df2T_instance_f64Instance structure for the floating-point transposed direct form II Biquad cascade filter
 Carm_biquad_cascade_stereo_df2T_instance_f16Instance structure for the floating-point transposed direct form II Biquad cascade filter
 Carm_biquad_cascade_stereo_df2T_instance_f32Instance structure for the floating-point transposed direct form II Biquad cascade filter
 Carm_biquad_casd_df1_inst_f16Instance structure for the floating-point Biquad cascade filter
 Carm_biquad_casd_df1_inst_f32Instance structure for the floating-point Biquad cascade filter
 Carm_biquad_casd_df1_inst_q15Instance structure for the Q15 Biquad cascade filter
 Carm_biquad_casd_df1_inst_q31Instance structure for the Q31 Biquad cascade filter
 Carm_cfft_instance_f16Instance structure for the floating-point CFFT/CIFFT function
 Carm_cfft_instance_f32Instance structure for the floating-point CFFT/CIFFT function
 Carm_cfft_instance_f64Instance structure for the Double Precision Floating-point CFFT/CIFFT function
 Carm_cfft_instance_q15Instance structure for the fixed-point CFFT/CIFFT function
 Carm_cfft_instance_q31Instance structure for the fixed-point CFFT/CIFFT function
 Carm_cfft_radix2_instance_f16Instance structure for the floating-point CFFT/CIFFT function
 Carm_cfft_radix2_instance_f32Instance structure for the floating-point CFFT/CIFFT function
 Carm_cfft_radix2_instance_q15Instance structure for the Q15 CFFT/CIFFT function
 Carm_cfft_radix2_instance_q31Instance structure for the Radix-2 Q31 CFFT/CIFFT function
 Carm_cfft_radix4_instance_f16Instance structure for the floating-point CFFT/CIFFT function
 Carm_cfft_radix4_instance_f32Instance structure for the floating-point CFFT/CIFFT function
 Carm_cfft_radix4_instance_q15Instance structure for the Q15 CFFT/CIFFT function
 Carm_cfft_radix4_instance_q31Instance structure for the Q31 CFFT/CIFFT function
 Carm_dct4_instance_f32Instance structure for the floating-point DCT4/IDCT4 function
 Carm_dct4_instance_q15Instance structure for the Q15 DCT4/IDCT4 function
 Carm_dct4_instance_q31Instance structure for the Q31 DCT4/IDCT4 function
 Carm_fir_decimate_instance_f32Instance structure for floating-point FIR decimator
 Carm_fir_decimate_instance_q15Instance structure for the Q15 FIR decimator
 Carm_fir_decimate_instance_q31Instance structure for the Q31 FIR decimator
 Carm_fir_instance_f16Instance structure for the floating-point FIR filter
 Carm_fir_instance_f32Instance structure for the floating-point FIR filter
 Carm_fir_instance_f64Instance structure for the floating-point FIR filter
 Carm_fir_instance_q15Instance structure for the Q15 FIR filter
 Carm_fir_instance_q31Instance structure for the Q31 FIR filter
 Carm_fir_instance_q7Instance structure for the Q7 FIR filter
 Carm_fir_interpolate_instance_f32Instance structure for the floating-point FIR interpolator
 Carm_fir_interpolate_instance_q15Instance structure for the Q15 FIR interpolator
 Carm_fir_interpolate_instance_q31Instance structure for the Q31 FIR interpolator
 Carm_fir_lattice_instance_f32Instance structure for the floating-point FIR lattice filter
 Carm_fir_lattice_instance_q15Instance structure for the Q15 FIR lattice filter
 Carm_fir_lattice_instance_q31Instance structure for the Q31 FIR lattice filter
 Carm_fir_sparse_instance_f32Instance structure for the floating-point sparse FIR filter
 Carm_fir_sparse_instance_q15Instance structure for the Q15 sparse FIR filter
 Carm_fir_sparse_instance_q31Instance structure for the Q31 sparse FIR filter
 Carm_fir_sparse_instance_q7Instance structure for the Q7 sparse FIR filter
 Carm_gaussian_naive_bayes_instance_f16Instance structure for Naive Gaussian Bayesian estimator
 Carm_gaussian_naive_bayes_instance_f32Instance structure for Naive Gaussian Bayesian estimator
 Carm_iir_lattice_instance_f32Instance structure for the floating-point IIR lattice filter
 Carm_iir_lattice_instance_q15Instance structure for the Q15 IIR lattice filter
 Carm_iir_lattice_instance_q31Instance structure for the Q31 IIR lattice filter
 Carm_linear_interp_instance_f16Instance structure for the half floating-point Linear Interpolate function
 Carm_linear_interp_instance_f32Instance structure for the floating-point Linear Interpolate function
 Carm_lms_instance_f32Instance structure for the floating-point LMS filter
 Carm_lms_instance_q15Instance structure for the Q15 LMS filter
 Carm_lms_instance_q31Instance structure for the Q31 LMS filter
 Carm_lms_norm_instance_f32Instance structure for the floating-point normalized LMS filter
 Carm_lms_norm_instance_q15Instance structure for the Q15 normalized LMS filter
 Carm_lms_norm_instance_q31Instance structure for the Q31 normalized LMS filter
 Carm_matrix_instance_f16Instance structure for the floating-point matrix structure
 Carm_matrix_instance_f32Instance structure for the floating-point matrix structure
 Carm_matrix_instance_f64Instance structure for the floating-point matrix structure
 Carm_matrix_instance_q15Instance structure for the Q15 matrix structure
 Carm_matrix_instance_q31Instance structure for the Q31 matrix structure
 Carm_matrix_instance_q7Instance structure for the Q7 matrix structure
 Carm_merge_sort_instance_f32Instance structure for the sorting algorithms
 Carm_mfcc_instance_f16Instance structure for the Floating-point MFCC function
 Carm_mfcc_instance_f32Instance structure for the Floating-point MFCC function
 Carm_mfcc_instance_q15Instance structure for the Q15 MFCC function
 Carm_mfcc_instance_q31Instance structure for the Q31 MFCC function
 Carm_pid_instance_f32Instance structure for the floating-point PID Control
 Carm_pid_instance_q15Instance structure for the Q15 PID Control
 Carm_pid_instance_q31Instance structure for the Q31 PID Control
 Carm_rfft_fast_instance_f16Instance structure for the floating-point RFFT/RIFFT function
 Carm_rfft_fast_instance_f32Instance structure for the floating-point RFFT/RIFFT function
 Carm_rfft_fast_instance_f64Instance structure for the Double Precision Floating-point RFFT/RIFFT function
 Carm_rfft_instance_f32Instance structure for the floating-point RFFT/RIFFT function
 Carm_rfft_instance_q15Instance structure for the Q15 RFFT/RIFFT function
 Carm_rfft_instance_q31Instance structure for the Q31 RFFT/RIFFT function
 Carm_sort_instance_f32Instance structure for the sorting algorithms
 Carm_spline_instance_f32Instance structure for the floating-point cubic spline interpolation
 Carm_svm_linear_instance_f16Instance structure for linear SVM prediction function
 Carm_svm_linear_instance_f32Instance structure for linear SVM prediction function
 Carm_svm_polynomial_instance_f16Instance structure for polynomial SVM prediction function
 Carm_svm_polynomial_instance_f32Instance structure for polynomial SVM prediction function
 Carm_svm_rbf_instance_f16Instance structure for rbf SVM prediction function
 Carm_svm_rbf_instance_f32Instance structure for rbf SVM prediction function
 Carm_svm_sigmoid_instance_f16Instance structure for sigmoid SVM prediction function
 Carm_svm_sigmoid_instance_f32Instance structure for sigmoid SVM prediction function
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 Narm_cmsis_dsp
 Ninner
 C_AddOpAdd operator
 C_BinaryOperatorUnary operator
 C_MulOpMul operator
 C_NegOpNeg operator
 C_NoOpNo operator
 C_SubOpSub operator
 C_UnaryOperatorUnary operator
 Carm_bilinear_interp_instance_f16Instance structure for the floating-point bilinear interpolation function
 Carm_bilinear_interp_instance_f32Instance structure for the floating-point bilinear interpolation function
 Carm_bilinear_interp_instance_q15Instance structure for the Q15 bilinear interpolation function
 Carm_bilinear_interp_instance_q31Instance structure for the Q31 bilinear interpolation function
 Carm_bilinear_interp_instance_q7Instance structure for the Q15 bilinear interpolation function
 Carm_biquad_cas_df1_32x64_ins_q31Instance structure for the high precision Q31 Biquad cascade filter
 Carm_biquad_cascade_df2T_instance_f16Instance structure for the floating-point transposed direct form II Biquad cascade filter
 Carm_biquad_cascade_df2T_instance_f32Instance structure for the floating-point transposed direct form II Biquad cascade filter
 Carm_biquad_cascade_df2T_instance_f64Instance structure for the floating-point transposed direct form II Biquad cascade filter
 Carm_biquad_cascade_stereo_df2T_instance_f16Instance structure for the floating-point transposed direct form II Biquad cascade filter
 Carm_biquad_cascade_stereo_df2T_instance_f32Instance structure for the floating-point transposed direct form II Biquad cascade filter
 Carm_biquad_casd_df1_inst_f16Instance structure for the floating-point Biquad cascade filter
 Carm_biquad_casd_df1_inst_f32Instance structure for the floating-point Biquad cascade filter
 Carm_biquad_casd_df1_inst_q15Instance structure for the Q15 Biquad cascade filter
 Carm_biquad_casd_df1_inst_q31Instance structure for the Q31 Biquad cascade filter
 Carm_cfft_instance_f16Instance structure for the floating-point CFFT/CIFFT function
 Carm_cfft_instance_f32Instance structure for the floating-point CFFT/CIFFT function
 Carm_cfft_instance_f64Instance structure for the Double Precision Floating-point CFFT/CIFFT function
 Carm_cfft_instance_q15Instance structure for the fixed-point CFFT/CIFFT function
 Carm_cfft_instance_q31Instance structure for the fixed-point CFFT/CIFFT function
 Carm_cfft_radix2_instance_f16Instance structure for the floating-point CFFT/CIFFT function
 Carm_cfft_radix2_instance_f32Instance structure for the floating-point CFFT/CIFFT function
 Carm_cfft_radix2_instance_q15Instance structure for the Q15 CFFT/CIFFT function
 Carm_cfft_radix2_instance_q31Instance structure for the Radix-2 Q31 CFFT/CIFFT function
 Carm_cfft_radix4_instance_f16Instance structure for the floating-point CFFT/CIFFT function
 Carm_cfft_radix4_instance_f32Instance structure for the floating-point CFFT/CIFFT function
 Carm_cfft_radix4_instance_q15Instance structure for the Q15 CFFT/CIFFT function
 Carm_cfft_radix4_instance_q31Instance structure for the Q31 CFFT/CIFFT function
 Carm_dct4_instance_f32Instance structure for the floating-point DCT4/IDCT4 function
 Carm_dct4_instance_q15Instance structure for the Q15 DCT4/IDCT4 function
 Carm_dct4_instance_q31Instance structure for the Q31 DCT4/IDCT4 function
 Carm_fir_decimate_instance_f32Instance structure for floating-point FIR decimator
 Carm_fir_decimate_instance_q15Instance structure for the Q15 FIR decimator
 Carm_fir_decimate_instance_q31Instance structure for the Q31 FIR decimator
 Carm_fir_instance_f16Instance structure for the floating-point FIR filter
 Carm_fir_instance_f32Instance structure for the floating-point FIR filter
 Carm_fir_instance_f64Instance structure for the floating-point FIR filter
 Carm_fir_instance_q15Instance structure for the Q15 FIR filter
 Carm_fir_instance_q31Instance structure for the Q31 FIR filter
 Carm_fir_instance_q7Instance structure for the Q7 FIR filter
 Carm_fir_interpolate_instance_f32Instance structure for the floating-point FIR interpolator
 Carm_fir_interpolate_instance_q15Instance structure for the Q15 FIR interpolator
 Carm_fir_interpolate_instance_q31Instance structure for the Q31 FIR interpolator
 Carm_fir_lattice_instance_f32Instance structure for the floating-point FIR lattice filter
 Carm_fir_lattice_instance_q15Instance structure for the Q15 FIR lattice filter
 Carm_fir_lattice_instance_q31Instance structure for the Q31 FIR lattice filter
 Carm_fir_sparse_instance_f32Instance structure for the floating-point sparse FIR filter
 Carm_fir_sparse_instance_q15Instance structure for the Q15 sparse FIR filter
 Carm_fir_sparse_instance_q31Instance structure for the Q31 sparse FIR filter
 Carm_fir_sparse_instance_q7Instance structure for the Q7 sparse FIR filter
 Carm_gaussian_naive_bayes_instance_f16Instance structure for Naive Gaussian Bayesian estimator
 Carm_gaussian_naive_bayes_instance_f32Instance structure for Naive Gaussian Bayesian estimator
 Carm_iir_lattice_instance_f32Instance structure for the floating-point IIR lattice filter
 Carm_iir_lattice_instance_q15Instance structure for the Q15 IIR lattice filter
 Carm_iir_lattice_instance_q31Instance structure for the Q31 IIR lattice filter
 Carm_linear_interp_instance_f16Instance structure for the half floating-point Linear Interpolate function
 Carm_linear_interp_instance_f32Instance structure for the floating-point Linear Interpolate function
 Carm_lms_instance_f32Instance structure for the floating-point LMS filter
 Carm_lms_instance_q15Instance structure for the Q15 LMS filter
 Carm_lms_instance_q31Instance structure for the Q31 LMS filter
 Carm_lms_norm_instance_f32Instance structure for the floating-point normalized LMS filter
 Carm_lms_norm_instance_q15Instance structure for the Q15 normalized LMS filter
 Carm_lms_norm_instance_q31Instance structure for the Q31 normalized LMS filter
 Carm_matrix_instance_f16Instance structure for the floating-point matrix structure
 Carm_matrix_instance_f32Instance structure for the floating-point matrix structure
 Carm_matrix_instance_f64Instance structure for the floating-point matrix structure
 Carm_matrix_instance_q15Instance structure for the Q15 matrix structure
 Carm_matrix_instance_q31Instance structure for the Q31 matrix structure
 Carm_matrix_instance_q7Instance structure for the Q7 matrix structure
 Carm_merge_sort_instance_f32Instance structure for the sorting algorithms
 Carm_mfcc_instance_f16Instance structure for the Floating-point MFCC function
 Carm_mfcc_instance_f32Instance structure for the Floating-point MFCC function
 Carm_mfcc_instance_q15Instance structure for the Q15 MFCC function
 Carm_mfcc_instance_q31Instance structure for the Q31 MFCC function
 Carm_pid_instance_f32Instance structure for the floating-point PID Control
 Carm_pid_instance_q15Instance structure for the Q15 PID Control
 Carm_pid_instance_q31Instance structure for the Q31 PID Control
 Carm_rfft_fast_instance_f16Instance structure for the floating-point RFFT/RIFFT function
 Carm_rfft_fast_instance_f32Instance structure for the floating-point RFFT/RIFFT function
 Carm_rfft_fast_instance_f64Instance structure for the Double Precision Floating-point RFFT/RIFFT function
 Carm_rfft_instance_f32Instance structure for the floating-point RFFT/RIFFT function
 Carm_rfft_instance_q15Instance structure for the Q15 RFFT/RIFFT function
 Carm_rfft_instance_q31Instance structure for the Q31 RFFT/RIFFT function
 Carm_sort_instance_f32Instance structure for the sorting algorithms
 Carm_spline_instance_f32Instance structure for the floating-point cubic spline interpolation
 Carm_svm_linear_instance_f16Instance structure for linear SVM prediction function
 Carm_svm_linear_instance_f32Instance structure for linear SVM prediction function
 Carm_svm_polynomial_instance_f16Instance structure for polynomial SVM prediction function
 Carm_svm_polynomial_instance_f32Instance structure for polynomial SVM prediction function
 Carm_svm_rbf_instance_f16Instance structure for rbf SVM prediction function
 Carm_svm_rbf_instance_f32Instance structure for rbf SVM prediction function
 Carm_svm_sigmoid_instance_f16Instance structure for sigmoid SVM prediction function
 Carm_svm_sigmoid_instance_f32Instance structure for sigmoid SVM prediction function
 Cnumber_traits< double >Features for double
 Cnumber_traits< float >Features for float
 Cnumber_traits< float16_t >Feature of float16 datatype
 Cnumber_traits< Q15 >Q15 features
 Cnumber_traits< Q31 >Features for Q31
 Cnumber_traits< Q7 >Q7 features
 Cnumber_traits< std::tuple< E... > >Number description for a tuple of numbers
 CQ15DSPVectorRepresentation of a vector when DSP extension supported
 Cvector_traits< double, arch, void >Default vector datatype description for this scalar datatype
 Cvector_traits< float, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type >Vector datatype for Helium
 Cvector_traits< float, arch, typename std::enable_if<!std::is_base_of< Helium, arch >::value &&!std::is_base_of< Neon, arch >::value >::type >Vector instructions for float when no Helium or Neon
 Cvector_traits< float16_t >Float16 vector descrition when no vector architecture
 Cvector_traits< float16_t, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type >Vector features for f16 on Helium
 Cvector_traits< Q15, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type >Vector features for Q15 on Helium
 Cvector_traits< Q15, arch, typename std::enable_if<!std::is_base_of< Helium, arch >::value &&!std::is_base_of< Neon, arch >::value &&!std::is_base_of< DSP, arch >::value >::type >Vector features for Q15 when no vector architecture
 Cvector_traits< Q15, DSP, typename std::enable_if< true >::type >Vector description for Q15 with DSP extensions
 Cvector_traits< Q31, arch, typename std::enable_if<!std::is_base_of< Helium, arch >::value &&!std::is_base_of< Neon, arch >::value >::type >Vector features for Q31 when no vector instructions
 Cvector_traits< Q7, arch, typename std::enable_if<!std::is_base_of< Helium, arch >::value &&!std::is_base_of< Neon, arch >::value &&!std::is_base_of< DSP, arch >::value >::type >Vector descrition when no vector architecture
 Cvector_traits< std::tuple< E... >, arch >Tuple of compatible vectors
diff --git a/main/annotated_dup.js b/main/annotated_dup.js index 72f9c93d3..8b3464e8e 100644 --- a/main/annotated_dup.js +++ b/main/annotated_dup.js @@ -1,5 +1,78 @@ var annotated_dup = [ + [ "arm_cmsis_dsp", "namespacearm__cmsis__dsp.html", [ + [ "inner", null, [ + [ "vctpq", "group__NUMBER.html#structarm__cmsis__dsp_1_1inner_1_1vctpq", null ] + ] ], + [ "_Binary", "group__FUSION.html#structarm__cmsis__dsp_1_1__Binary", null ], + [ "_Expr", "group__FUSION.html#structarm__cmsis__dsp_1_1__Expr", "group__FUSION_structarm__cmsis__dsp_1_1__Expr" ], + [ "_Outer", "group__Matrix.html#structarm__cmsis__dsp_1_1__Outer", "group__Matrix_structarm__cmsis__dsp_1_1__Outer" ], + [ "_Unary", "group__FUSION.html#structarm__cmsis__dsp_1_1__Unary", null ], + [ "Accumulate", "group__FIXED.html#structarm__cmsis__dsp_1_1Accumulate", null ], + [ "Accumulate< MD, MS, F, S, true >", "group__FIXED.html#structarm__cmsis__dsp_1_1Accumulate_3_01MD_00_01MS_00_01F_00_01S_00_01true_01_4", null ], + [ "default_user_allocator_malloc_free", "group__MEMORY.html#structarm__cmsis__dsp_1_1default__user__allocator__malloc__free", null ], + [ "DSP", "group__ARCH.html#classarm__cmsis__dsp_1_1DSP", null ], + [ "fixed_storage_type", "group__FIXED.html#structarm__cmsis__dsp_1_1fixed__storage__type", null ], + [ "fixed_storage_type< M, F, false, test16(M, F, 0)>", "group__FIXED.html#structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01false_00_01test16_07M_00_01F_00_010_08_4", "group__FIXED_structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01false_00_01test16_07M_00_01F_00_010_08_4" ], + [ "fixed_storage_type< M, F, false, test32(M, F, 0)>", "group__FIXED.html#structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01false_00_01test32_07M_00_01F_00_010_08_4", "group__FIXED_structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01false_00_01test32_07M_00_01F_00_010_08_4" ], + [ "fixed_storage_type< M, F, false, test64(M, F, 0)>", "group__FIXED.html#structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01false_00_01test64_07M_00_01F_00_010_08_4", "group__FIXED_structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01false_00_01test64_07M_00_01F_00_010_08_4" ], + [ "fixed_storage_type< M, F, false, test8(M, F, 0)>", "group__FIXED.html#structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01false_00_01test8_07M_00_01F_00_010_08_4", "group__FIXED_structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01false_00_01test8_07M_00_01F_00_010_08_4" ], + [ "fixed_storage_type< M, F, true, test16(M, F, 1)>", "group__FIXED.html#structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01true_00_01test16_07M_00_01F_00_011_08_4", "group__FIXED_structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01true_00_01test16_07M_00_01F_00_011_08_4" ], + [ "fixed_storage_type< M, F, true, test32(M, F, 1)>", "group__FIXED.html#structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01true_00_01test32_07M_00_01F_00_011_08_4", "group__FIXED_structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01true_00_01test32_07M_00_01F_00_011_08_4" ], + [ "fixed_storage_type< M, F, true, test64(M, F, 1)>", "group__FIXED.html#structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01true_00_01test64_07M_00_01F_00_011_08_4", "group__FIXED_structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01true_00_01test64_07M_00_01F_00_011_08_4" ], + [ "fixed_storage_type< M, F, true, test8(M, F, 1)>", "group__FIXED.html#structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01true_00_01test8_07M_00_01F_00_011_08_4", "group__FIXED_structarm__cmsis__dsp_1_1fixed__storage__type_3_01M_00_01F_00_01true_00_01test8_07M_00_01F_00_011_08_4" ], + [ "FixedCastShift< M, FD, FS, S,(FD >FS)>", "group__FIXED.html#structarm__cmsis__dsp_1_1FixedCastShift_3_01M_00_01FD_00_01FS_00_01S_00_07FD_01_4FS_08_4", null ], + [ "FixedCastShift< M, FD, FS, S,(FD< FS)>", "group__FIXED.html#structarm__cmsis__dsp_1_1FixedCastShift_3_01M_00_01FD_00_01FS_00_01S_00_07FD_3_01FS_08_4", null ], + [ "Helium", "group__ARCH.html#classarm__cmsis__dsp_1_1Helium", null ], + [ "Helium82", "group__ARCH.html#classarm__cmsis__dsp_1_1Helium82", null ], + [ "ListElem", "group__MEMORY.html#structarm__cmsis__dsp_1_1ListElem", null ], + [ "malloc_allocator", "group__MEMORY.html#structarm__cmsis__dsp_1_1malloc__allocator", null ], + [ "Matrix", "group__Matrix.html#structarm__cmsis__dsp_1_1Matrix", "group__Matrix_structarm__cmsis__dsp_1_1Matrix" ], + [ "Matrix< P, DYNAMIC, DYNAMIC, Allocator >", "group__Matrix.html#structarm__cmsis__dsp_1_1Matrix_3_01P_00_01DYNAMIC_00_01DYNAMIC_00_01Allocator_01_4", "group__Matrix_structarm__cmsis__dsp_1_1Matrix_3_01P_00_01DYNAMIC_00_01DYNAMIC_00_01Allocator_01_4" ], + [ "MatrixView", "group__Matrix.html#structarm__cmsis__dsp_1_1MatrixView", "group__Matrix_structarm__cmsis__dsp_1_1MatrixView" ], + [ "MatrixView< T, CONSTRAINED_DYNAMIC >", "group__Matrix.html#structarm__cmsis__dsp_1_1MatrixView_3_01T_00_01CONSTRAINED__DYNAMIC_01_4", "group__Matrix_structarm__cmsis__dsp_1_1MatrixView_3_01T_00_01CONSTRAINED__DYNAMIC_01_4" ], + [ "MatrixView< T, DYNAMIC >", "group__Matrix.html#structarm__cmsis__dsp_1_1MatrixView_3_01T_00_01DYNAMIC_01_4", "group__Matrix_structarm__cmsis__dsp_1_1MatrixView_3_01T_00_01DYNAMIC_01_4" ], + [ "MemoryPool", "group__MEMORY.html#classarm__cmsis__dsp_1_1MemoryPool", "group__MEMORY_classarm__cmsis__dsp_1_1MemoryPool" ], + [ "Neon", "group__ARCH.html#classarm__cmsis__dsp_1_1Neon", null ], + [ "number_traits", "group__NUMBER.html#structarm__cmsis__dsp_1_1number__traits", null ], + [ "Q", "group__FIXED.html#structarm__cmsis__dsp_1_1Q", null ], + [ "Q< M, F, false, uint16_t >", "group__FIXED.html#structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01false_00_01uint16__t_01_4", "group__FIXED_structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01false_00_01uint16__t_01_4" ], + [ "Q< M, F, false, uint32_t >", "group__FIXED.html#structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01false_00_01uint32__t_01_4", "group__FIXED_structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01false_00_01uint32__t_01_4" ], + [ "Q< M, F, false, uint64_t >", "group__FIXED.html#structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01false_00_01uint64__t_01_4", "group__FIXED_structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01false_00_01uint64__t_01_4" ], + [ "Q< M, F, false, uint8_t >", "group__FIXED.html#structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01false_00_01uint8__t_01_4", "group__FIXED_structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01false_00_01uint8__t_01_4" ], + [ "Q< M, F, true, int16_t >", "group__FIXED.html#structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01true_00_01int16__t_01_4", "group__FIXED_structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01true_00_01int16__t_01_4" ], + [ "Q< M, F, true, int32_t >", "group__FIXED.html#structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01true_00_01int32__t_01_4", "group__FIXED_structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01true_00_01int32__t_01_4" ], + [ "Q< M, F, true, int64_t >", "group__FIXED.html#structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01true_00_01int64__t_01_4", "group__FIXED_structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01true_00_01int64__t_01_4" ], + [ "Q< M, F, true, int8_t >", "group__FIXED.html#structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01true_00_01int8__t_01_4", "group__FIXED_structarm__cmsis__dsp_1_1Q_3_01M_00_01F_00_01true_00_01int8__t_01_4" ], + [ "Scalar", "group__ARCH.html#classarm__cmsis__dsp_1_1Scalar", null ], + [ "Slice", "group__Matrix.html#structarm__cmsis__dsp_1_1Slice", "group__Matrix_structarm__cmsis__dsp_1_1Slice" ], + [ "user_allocator_aligned_malloc", "group__MEMORY.html#structarm__cmsis__dsp_1_1user__allocator__aligned__malloc", null ], + [ "Vector", "group__VECTOR.html#structarm__cmsis__dsp_1_1Vector", "group__VECTOR_structarm__cmsis__dsp_1_1Vector" ], + [ "Vector< P, DYNAMIC, Allocator >", "group__VECTOR.html#structarm__cmsis__dsp_1_1Vector_3_01P_00_01DYNAMIC_00_01Allocator_01_4", "group__VECTOR_structarm__cmsis__dsp_1_1Vector_3_01P_00_01DYNAMIC_00_01Allocator_01_4" ], + [ "Vector_Base", "group__VECTOR.html#structarm__cmsis__dsp_1_1Vector__Base", "group__VECTOR_structarm__cmsis__dsp_1_1Vector__Base" ], + [ "vector_traits", "group__NUMBER.html#structarm__cmsis__dsp_1_1vector__traits", "group__NUMBER_structarm__cmsis__dsp_1_1vector__traits" ], + [ "VectorView", "group__VECTOR.html#structarm__cmsis__dsp_1_1VectorView", "group__VECTOR_structarm__cmsis__dsp_1_1VectorView" ], + [ "VectorView< T, DYNAMIC >", "group__VECTOR.html#structarm__cmsis__dsp_1_1VectorView_3_01T_00_01DYNAMIC_01_4", "group__VECTOR_structarm__cmsis__dsp_1_1VectorView_3_01T_00_01DYNAMIC_01_4" ] + ] ], + [ "inner", "namespaceinner.html", [ + [ "vctpq< float >", "group__HeliumFloatNumber.html#structinner_1_1vctpq_3_01float_01_4", null ], + [ "vctpq< float16_t >", "group__HeliumHalfNumber.html#structinner_1_1vctpq_3_01float16__t_01_4", null ], + [ "vload1_gen_stride", "group__HeliumFloatNumber.html#structinner_1_1vload1__gen__stride", null ], + [ "vload1_gen_stride< 0, 1, 2, 3 >", "group__HeliumFloatNumber.html#structinner_1_1vload1__gen__stride_3_010_00_011_00_012_00_013_01_4", null ], + [ "vload1_gen_stride_z", "group__HeliumFloatNumber.html#structinner_1_1vload1__gen__stride__z", null ], + [ "vload1_gen_stride_z< 0, 1, 2, 3 >", "group__HeliumFloatNumber.html#structinner_1_1vload1__gen__stride__z_3_010_00_011_00_012_00_013_01_4", null ], + [ "vstore1_gen_stride", "group__HeliumFloatNumber.html#structinner_1_1vstore1__gen__stride", null ], + [ "vstore1_gen_stride< 0, 1, 2, 3 >", "group__HeliumFloatNumber.html#structinner_1_1vstore1__gen__stride_3_010_00_011_00_012_00_013_01_4", null ], + [ "vstore1_gen_stride_z", "group__HeliumFloatNumber.html#structinner_1_1vstore1__gen__stride__z", null ], + [ "vstore1_gen_stride_z< 0, 1, 2, 3 >", "group__HeliumFloatNumber.html#structinner_1_1vstore1__gen__stride__z_3_010_00_011_00_012_00_013_01_4", null ] + ] ], + [ "_AddOp", "group__FUSION.html#struct__AddOp", null ], + [ "_BinaryOperator", "group__FUSION.html#struct__BinaryOperator", null ], + [ "_MulOp", "group__FUSION.html#struct__MulOp", null ], + [ "_NegOp", "group__FUSION.html#struct__NegOp", null ], + [ "_NoOp", "group__FUSION.html#struct__NoOp", null ], + [ "_SubOp", "group__FUSION.html#struct__SubOp", null ], + [ "_UnaryOperator", "group__FUSION.html#struct__UnaryOperator", null ], [ "arm_bilinear_interp_instance_f16", "structarm__bilinear__interp__instance__f16.html", "structarm__bilinear__interp__instance__f16" ], [ "arm_bilinear_interp_instance_f32", "structarm__bilinear__interp__instance__f32.html", "structarm__bilinear__interp__instance__f32" ], [ "arm_bilinear_interp_instance_q15", "structarm__bilinear__interp__instance__q15.html", "structarm__bilinear__interp__instance__q15" ], @@ -92,5 +165,24 @@ var annotated_dup = [ "arm_svm_rbf_instance_f16", "structarm__svm__rbf__instance__f16.html", "structarm__svm__rbf__instance__f16" ], [ "arm_svm_rbf_instance_f32", "structarm__svm__rbf__instance__f32.html", "structarm__svm__rbf__instance__f32" ], [ "arm_svm_sigmoid_instance_f16", "structarm__svm__sigmoid__instance__f16.html", "structarm__svm__sigmoid__instance__f16" ], - [ "arm_svm_sigmoid_instance_f32", "structarm__svm__sigmoid__instance__f32.html", "structarm__svm__sigmoid__instance__f32" ] + [ "arm_svm_sigmoid_instance_f32", "structarm__svm__sigmoid__instance__f32.html", "structarm__svm__sigmoid__instance__f32" ], + [ "number_traits< double >", "group__GenericDoubleNumber.html#structnumber__traits_3_01double_01_4", "group__GenericDoubleNumber_structnumber__traits_3_01double_01_4" ], + [ "number_traits< float >", "group__GenericFloatNumber.html#structnumber__traits_3_01float_01_4", "group__GenericFloatNumber_structnumber__traits_3_01float_01_4" ], + [ "number_traits< float16_t >", "group__GenericHalfNumber.html#structnumber__traits_3_01float16__t_01_4", "group__GenericHalfNumber_structnumber__traits_3_01float16__t_01_4" ], + [ "number_traits< Q15 >", "group__GenericQ15Number.html#structnumber__traits_3_01Q15_01_4", "group__GenericQ15Number_structnumber__traits_3_01Q15_01_4" ], + [ "number_traits< Q31 >", "group__GenericQ31Number.html#structnumber__traits_3_01Q31_01_4", "group__GenericQ31Number_structnumber__traits_3_01Q31_01_4" ], + [ "number_traits< Q7 >", "group__GenericQ7Number.html#structnumber__traits_3_01Q7_01_4", "group__GenericQ7Number_structnumber__traits_3_01Q7_01_4" ], + [ "number_traits< std::tuple< E... > >", "group__GenericTUPLENumber.html#structnumber__traits_3_01std_1_1tuple_3_01E_8_8_8_01_4_01_4", "group__GenericTUPLENumber_structnumber__traits_3_01std_1_1tuple_3_01E_8_8_8_01_4_01_4" ], + [ "Q15DSPVector", "group__DSPQ15Number.html#structQ15DSPVector", "group__DSPQ15Number_structQ15DSPVector" ], + [ "vector_traits< double, arch, void >", "group__GenericDoubleNumber.html#structvector__traits_3_01double_00_01arch_00_01void_01_4", "group__GenericDoubleNumber_structvector__traits_3_01double_00_01arch_00_01void_01_4" ], + [ "vector_traits< float, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type >", "group__HeliumFloatNumber.html#structvector__traits_3_01float_00_01arch_00_01typename_01std_1_1enable__if_3_01std_1_1is__base__ba5ab38020bf229f10c8cb296601cd2a", "group__HeliumFloatNumber_structvector__traits_3_01float_00_01arch_00_01typename_01std_1_1enable__if_3_01std_1_1is__base__ba5ab38020bf229f10c8cb296601cd2a" ], + [ "vector_traits< float, arch, typename std::enable_if::value &&!std::is_base_of< Neon, arch >::value >::type >", "group__GenericFloatNumber.html#structvector__traits_3_01float_00_01arch_00_01typename_01std_1_1enable__if_3_9std_1_1is__base__o90f4a252693d6998222af60019971d09", "group__GenericFloatNumber_structvector__traits_3_01float_00_01arch_00_01typename_01std_1_1enable__if_3_9std_1_1is__base__o90f4a252693d6998222af60019971d09" ], + [ "vector_traits< float16_t >", "group__GenericHalfNumber.html#structvector__traits_3_01float16__t_01_4", "group__GenericHalfNumber_structvector__traits_3_01float16__t_01_4" ], + [ "vector_traits< float16_t, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type >", "group__HeliumHalfNumber.html#structvector__traits_3_01float16__t_00_01arch_00_01typename_01std_1_1enable__if_3_01std_1_1is__bbf0c88ec3dcce04bc63f988798dbaaac", "group__HeliumHalfNumber_structvector__traits_3_01float16__t_00_01arch_00_01typename_01std_1_1enable__if_3_01std_1_1is__bbf0c88ec3dcce04bc63f988798dbaaac" ], + [ "vector_traits< Q15, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type >", "group__HeliumQ15Number.html#structvector__traits_3_01Q15_00_01arch_00_01typename_01std_1_1enable__if_3_01std_1_1is__base__of8f632c1300f8f47d48a293f567e4c1db", "group__HeliumQ15Number_structvector__traits_3_01Q15_00_01arch_00_01typename_01std_1_1enable__if_3_01std_1_1is__base__of8f632c1300f8f47d48a293f567e4c1db" ], + [ "vector_traits< Q15, arch, typename std::enable_if::value &&!std::is_base_of< Neon, arch >::value &&!std::is_base_of< DSP, arch >::value >::type >", "group__GenericQ15Number.html#structvector__traits_3_01Q15_00_01arch_00_01typename_01std_1_1enable__if_3_9std_1_1is__base__of_736401966ad6c7e96bbc91e818be4c30", "group__GenericQ15Number_structvector__traits_3_01Q15_00_01arch_00_01typename_01std_1_1enable__if_3_9std_1_1is__base__of_736401966ad6c7e96bbc91e818be4c30" ], + [ "vector_traits< Q15, DSP, typename std::enable_if< true >::type >", "group__DSPQ15Number.html#structvector__traits_3_01Q15_00_01DSP_00_01typename_01std_1_1enable__if_3_01true_01_4_1_1type_01_4", "group__DSPQ15Number_structvector__traits_3_01Q15_00_01DSP_00_01typename_01std_1_1enable__if_3_01true_01_4_1_1type_01_4" ], + [ "vector_traits< Q31, arch, typename std::enable_if::value &&!std::is_base_of< Neon, arch >::value >::type >", "group__GenericQ31Number.html#structvector__traits_3_01Q31_00_01arch_00_01typename_01std_1_1enable__if_3_9std_1_1is__base__of_ed6a72ce773710148e7beb817362a08f", "group__GenericQ31Number_structvector__traits_3_01Q31_00_01arch_00_01typename_01std_1_1enable__if_3_9std_1_1is__base__of_ed6a72ce773710148e7beb817362a08f" ], + [ "vector_traits< Q7, arch, typename std::enable_if::value &&!std::is_base_of< Neon, arch >::value &&!std::is_base_of< DSP, arch >::value >::type >", "group__GenericQ7Number.html#structvector__traits_3_01Q7_00_01arch_00_01typename_01std_1_1enable__if_3_9std_1_1is__base__of_33bee4f23fe32f74c815c9681e55bcba5", "group__GenericQ7Number_structvector__traits_3_01Q7_00_01arch_00_01typename_01std_1_1enable__if_3_9std_1_1is__base__of_33bee4f23fe32f74c815c9681e55bcba5" ], + [ "vector_traits< std::tuple< E... >, arch >", "group__GenericTUPLENumber.html#structvector__traits_3_01std_1_1tuple_3_01E_8_8_8_01_4_00_01arch_01_4", "group__GenericTUPLENumber_structvector__traits_3_01std_1_1tuple_3_01E_8_8_8_01_4_00_01arch_01_4" ] ]; \ No newline at end of file diff --git a/main/arch_8hpp.html b/main/arch_8hpp.html new file mode 100644 index 000000000..fb44981cf --- /dev/null +++ b/main/arch_8hpp.html @@ -0,0 +1,173 @@ + + + + + + + +CMSIS-DSP: arch.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arch.hpp File Reference
+
+
+
#include "arch_detection.hpp"
+
+ + + + + + + + + + + +

+Data Structures

class  Scalar
 
class  DSP
 
class  Helium
 
class  Helium82
 
class  Neon
 
+ + + +

+Namespaces

namespace  arm_cmsis_dsp
 
+
+
+ + + + diff --git a/main/classes.html b/main/classes.html index ddd7ac2d5..da7633e43 100644 --- a/main/classes.html +++ b/main/classes.html @@ -131,41 +131,62 @@
Data Structure Index
-
B | C | D | F | G | I | L | M | P | R | S
+
A | B | C | D | F | G | H | I | L | M | N | P | Q | R | S | U | V | _
+
A
+
Accumulate (arm_cmsis_dsp)
Accumulate< MD, MS, F, S, true > (arm_cmsis_dsp)
+
B
arm_bilinear_interp_instance_f16
arm_bilinear_interp_instance_f32
arm_bilinear_interp_instance_q15
arm_bilinear_interp_instance_q31
arm_bilinear_interp_instance_q7
arm_biquad_cas_df1_32x64_ins_q31
arm_biquad_cascade_df2T_instance_f16
arm_biquad_cascade_df2T_instance_f32
arm_biquad_cascade_df2T_instance_f64
arm_biquad_cascade_stereo_df2T_instance_f16
arm_biquad_cascade_stereo_df2T_instance_f32
arm_biquad_casd_df1_inst_f16
arm_biquad_casd_df1_inst_f32
arm_biquad_casd_df1_inst_q15
arm_biquad_casd_df1_inst_q31
-
+
C
arm_cfft_instance_f16
arm_cfft_instance_f32
arm_cfft_instance_f64
arm_cfft_instance_q15
arm_cfft_instance_q31
arm_cfft_radix2_instance_f16
arm_cfft_radix2_instance_f32
arm_cfft_radix2_instance_q15
arm_cfft_radix2_instance_q31
arm_cfft_radix4_instance_f16
arm_cfft_radix4_instance_f32
arm_cfft_radix4_instance_q15
arm_cfft_radix4_instance_q31
-
-
D
-
arm_dct4_instance_f32
arm_dct4_instance_q15
arm_dct4_instance_q31
-
F
-
arm_fir_decimate_instance_f32
arm_fir_decimate_instance_q15
arm_fir_decimate_instance_q31
arm_fir_instance_f16
arm_fir_instance_f32
arm_fir_instance_f64
arm_fir_instance_q15
arm_fir_instance_q31
arm_fir_instance_q7
arm_fir_interpolate_instance_f32
arm_fir_interpolate_instance_q15
arm_fir_interpolate_instance_q31
arm_fir_lattice_instance_f32
arm_fir_lattice_instance_q15
arm_fir_lattice_instance_q31
arm_fir_sparse_instance_f32
arm_fir_sparse_instance_q15
arm_fir_sparse_instance_q31
arm_fir_sparse_instance_q7
+
D
+
arm_dct4_instance_f32
arm_dct4_instance_q15
arm_dct4_instance_q31
default_user_allocator_malloc_free (arm_cmsis_dsp)
DSP (arm_cmsis_dsp)
+
F
+
arm_fir_decimate_instance_f32
arm_fir_decimate_instance_q15
arm_fir_decimate_instance_q31
arm_fir_instance_f16
arm_fir_instance_f32
arm_fir_instance_f64
arm_fir_instance_q15
arm_fir_instance_q31
arm_fir_instance_q7
arm_fir_interpolate_instance_f32
arm_fir_interpolate_instance_q15
arm_fir_interpolate_instance_q31
arm_fir_lattice_instance_f32
arm_fir_lattice_instance_q15
arm_fir_lattice_instance_q31
arm_fir_sparse_instance_f32
arm_fir_sparse_instance_q15
arm_fir_sparse_instance_q31
arm_fir_sparse_instance_q7
fixed_storage_type (arm_cmsis_dsp)
fixed_storage_type< M, F, false, test16(M, F, 0)> (arm_cmsis_dsp)
fixed_storage_type< M, F, false, test32(M, F, 0)> (arm_cmsis_dsp)
fixed_storage_type< M, F, false, test64(M, F, 0)> (arm_cmsis_dsp)
fixed_storage_type< M, F, false, test8(M, F, 0)> (arm_cmsis_dsp)
fixed_storage_type< M, F, true, test16(M, F, 1)> (arm_cmsis_dsp)
fixed_storage_type< M, F, true, test32(M, F, 1)> (arm_cmsis_dsp)
fixed_storage_type< M, F, true, test64(M, F, 1)> (arm_cmsis_dsp)
fixed_storage_type< M, F, true, test8(M, F, 1)> (arm_cmsis_dsp)
FixedCastShift< M, FD, FS, S,(FD >FS)> (arm_cmsis_dsp)
FixedCastShift< M, FD, FS, S,(FD< FS)> (arm_cmsis_dsp)
+
G
arm_gaussian_naive_bayes_instance_f16
arm_gaussian_naive_bayes_instance_f32
+
+
H
+
Helium (arm_cmsis_dsp)
Helium82 (arm_cmsis_dsp)
I
arm_iir_lattice_instance_f32
arm_iir_lattice_instance_q15
arm_iir_lattice_instance_q31
L
-
arm_linear_interp_instance_f16
arm_linear_interp_instance_f32
arm_lms_instance_f32
arm_lms_instance_q15
arm_lms_instance_q31
arm_lms_norm_instance_f32
arm_lms_norm_instance_q15
arm_lms_norm_instance_q31
+
arm_linear_interp_instance_f16
arm_linear_interp_instance_f32
ListElem (arm_cmsis_dsp)
arm_lms_instance_f32
arm_lms_instance_q15
arm_lms_instance_q31
arm_lms_norm_instance_f32
arm_lms_norm_instance_q15
arm_lms_norm_instance_q31
M
-
arm_matrix_instance_f16
arm_matrix_instance_f32
arm_matrix_instance_f64
arm_matrix_instance_q15
arm_matrix_instance_q31
arm_matrix_instance_q7
arm_merge_sort_instance_f32
arm_mfcc_instance_f16
arm_mfcc_instance_f32
arm_mfcc_instance_q15
arm_mfcc_instance_q31
+
malloc_allocator (arm_cmsis_dsp)
Matrix (arm_cmsis_dsp)
Matrix< P, DYNAMIC, DYNAMIC, Allocator > (arm_cmsis_dsp)
arm_matrix_instance_f16
arm_matrix_instance_f32
arm_matrix_instance_f64
arm_matrix_instance_q15
arm_matrix_instance_q31
arm_matrix_instance_q7
MatrixView (arm_cmsis_dsp)
MatrixView< T, CONSTRAINED_DYNAMIC > (arm_cmsis_dsp)
MatrixView< T, DYNAMIC > (arm_cmsis_dsp)
MemoryPool (arm_cmsis_dsp)
arm_merge_sort_instance_f32
arm_mfcc_instance_f16
arm_mfcc_instance_f32
arm_mfcc_instance_q15
arm_mfcc_instance_q31
+
N
+
Neon (arm_cmsis_dsp)
number_traits (arm_cmsis_dsp)
number_traits< double >
number_traits< float >
number_traits< float16_t >
number_traits< Q15 >
number_traits< Q31 >
number_traits< Q7 >
number_traits< std::tuple< E... > >
+
P
arm_pid_instance_f32
arm_pid_instance_q15
arm_pid_instance_q31
+
+
Q
+
Q (arm_cmsis_dsp)
Q15DSPVector
Q< M, F, false, uint16_t > (arm_cmsis_dsp)
Q< M, F, false, uint32_t > (arm_cmsis_dsp)
Q< M, F, false, uint64_t > (arm_cmsis_dsp)
Q< M, F, false, uint8_t > (arm_cmsis_dsp)
Q< M, F, true, int16_t > (arm_cmsis_dsp)
Q< M, F, true, int32_t > (arm_cmsis_dsp)
Q< M, F, true, int64_t > (arm_cmsis_dsp)
Q< M, F, true, int8_t > (arm_cmsis_dsp)
R
arm_rfft_fast_instance_f16
arm_rfft_fast_instance_f32
arm_rfft_fast_instance_f64
arm_rfft_instance_f32
arm_rfft_instance_q15
arm_rfft_instance_q31
S
-
arm_sort_instance_f32
arm_spline_instance_f32
arm_svm_linear_instance_f16
arm_svm_linear_instance_f32
arm_svm_polynomial_instance_f16
arm_svm_polynomial_instance_f32
arm_svm_rbf_instance_f16
arm_svm_rbf_instance_f32
arm_svm_sigmoid_instance_f16
arm_svm_sigmoid_instance_f32
+
Scalar (arm_cmsis_dsp)
Slice (arm_cmsis_dsp)
arm_sort_instance_f32
arm_spline_instance_f32
arm_svm_linear_instance_f16
arm_svm_linear_instance_f32
arm_svm_polynomial_instance_f16
arm_svm_polynomial_instance_f32
arm_svm_rbf_instance_f16
arm_svm_rbf_instance_f32
arm_svm_sigmoid_instance_f16
arm_svm_sigmoid_instance_f32
+
+
U
+
user_allocator_aligned_malloc (arm_cmsis_dsp)
+
+
V
+
vctpq (arm_cmsis_dsp::inner)
vctpq< float > (inner)
vctpq< float16_t > (inner)
Vector (arm_cmsis_dsp)
Vector< P, DYNAMIC, Allocator > (arm_cmsis_dsp)
Vector_Base (arm_cmsis_dsp)
vector_traits (arm_cmsis_dsp)
vector_traits< double, arch, void >
vector_traits< float, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type >
vector_traits< float, arch, typename std::enable_if<!std::is_base_of< Helium, arch >::value &&!std::is_base_of< Neon, arch >::value >::type >
vector_traits< float16_t >
vector_traits< float16_t, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type >
vector_traits< Q15, arch, typename std::enable_if< std::is_base_of< Helium, arch >::value >::type >
vector_traits< Q15, arch, typename std::enable_if<!std::is_base_of< Helium, arch >::value &&!std::is_base_of< Neon, arch >::value &&!std::is_base_of< DSP, arch >::value >::type >
vector_traits< Q15, DSP, typename std::enable_if< true >::type >
vector_traits< Q31, arch, typename std::enable_if<!std::is_base_of< Helium, arch >::value &&!std::is_base_of< Neon, arch >::value >::type >
vector_traits< Q7, arch, typename std::enable_if<!std::is_base_of< Helium, arch >::value &&!std::is_base_of< Neon, arch >::value &&!std::is_base_of< DSP, arch >::value >::type >
vector_traits< std::tuple< E... >, arch >
VectorView (arm_cmsis_dsp)
VectorView< T, DYNAMIC > (arm_cmsis_dsp)
vload1_gen_stride (inner)
vload1_gen_stride< 0, 1, 2, 3 > (inner)
vload1_gen_stride_z (inner)
vload1_gen_stride_z< 0, 1, 2, 3 > (inner)
vstore1_gen_stride (inner)
vstore1_gen_stride< 0, 1, 2, 3 > (inner)
vstore1_gen_stride_z (inner)
vstore1_gen_stride_z< 0, 1, 2, 3 > (inner)
+
+
_
+
_AddOp
_Binary (arm_cmsis_dsp)
_BinaryOperator
_Expr (arm_cmsis_dsp)
_MulOp
_NegOp
_NoOp
_Outer (arm_cmsis_dsp)
_SubOp
_Unary (arm_cmsis_dsp)
_UnaryOperator
diff --git a/main/common_8hpp.html b/main/common_8hpp.html new file mode 100644 index 000000000..39bfde8d9 --- /dev/null +++ b/main/common_8hpp.html @@ -0,0 +1,193 @@ + + + + + + + +CMSIS-DSP: common.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
common.hpp File Reference
+
+
+
#include <cstdint>
+#include <iostream>
+#include "arch.hpp"
+
+ + + +

+Namespaces

namespace  arm_cmsis_dsp
 
+ + + + + + + +

+Typedefs

+typedef int32_t index_t
 index datatype. It must be a signed datatype
 
+typedef int32_t vector_length_t
 Vector length datatype. Iy must be a signed datatype.
 
+ + + + + +

+Functions

template<typename T >
void PrintType (void)
 Prints a textual representation of a type.
 
+ + + + + + + +

+Variables

+constexpr int DYNAMIC = -1
 Dynamic objects (dimensions only known at runtime)
 
+constexpr int CONSTRAINED_DYNAMIC = -2
 Dynamic objects (dimensions only known at runtime) but with some constraints (like stride == nb_cols)
 
+
+
+ + + + diff --git a/main/dir_1afd0fa4bc3a56d6a22edef9c6cdb5d9.html b/main/dir_1afd0fa4bc3a56d6a22edef9c6cdb5d9.html new file mode 100644 index 000000000..89c07ddd7 --- /dev/null +++ b/main/dir_1afd0fa4bc3a56d6a22edef9c6cdb5d9.html @@ -0,0 +1,168 @@ + + + + + + + +CMSIS-DSP: num_features Directory Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
num_features Directory Reference
+
+
+ + + + + + + + + + + + + + + + +

+Files

file  double.hpp
 
file  num_features/float.hpp
 
file  group.hpp
 
file  num_features/half.hpp
 
file  num_features/q15.hpp
 
file  num_features/q31.hpp
 
file  num_features/q7.hpp
 
+
+
+ + + + diff --git a/main/dir_2557f24e2d31d3253d343dc4d67826e8.html b/main/dir_2557f24e2d31d3253d343dc4d67826e8.html new file mode 100644 index 000000000..f336af4a5 --- /dev/null +++ b/main/dir_2557f24e2d31d3253d343dc4d67826e8.html @@ -0,0 +1,176 @@ + + + + + + + +CMSIS-DSP: Helium Directory Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Helium Directory Reference
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  Helium/basic.hpp
 
file  Helium/float.hpp
 
file  Helium/half.hpp
 
file  Helium/matrix_multiply.hpp
 
file  matrix_multiply_f16.hpp
 
file  matrix_multiply_f32.hpp
 
file  Helium/matrix_multiply_fixed.hpp
 
file  Helium/num_features.hpp
 
file  Helium/q15.hpp
 
file  Helium/q31.hpp
 
file  Helium/q7.hpp
 
+
+
+ + + + diff --git a/main/dir_4cc4ba402bf03b1070304fd50839dd1a.html b/main/dir_4cc4ba402bf03b1070304fd50839dd1a.html new file mode 100644 index 000000000..7c1d8a01f --- /dev/null +++ b/main/dir_4cc4ba402bf03b1070304fd50839dd1a.html @@ -0,0 +1,162 @@ + + + + + + + +CMSIS-DSP: Scalar Directory Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Scalar Directory Reference
+
+
+ + + + + + + + + + +

+Files

file  Scalar/basic.hpp
 
file  Scalar/matrix_multiply.hpp
 
file  Scalar/matrix_multiply_fixed.hpp
 
file  matrix_multiply_float.hpp
 
+
+
+ + + + diff --git a/main/dir_a1c02bd85bba95bfc9a4acc6f5e01018.html b/main/dir_a1c02bd85bba95bfc9a4acc6f5e01018.html new file mode 100644 index 000000000..447f0d3a4 --- /dev/null +++ b/main/dir_a1c02bd85bba95bfc9a4acc6f5e01018.html @@ -0,0 +1,150 @@ + + + + + + + +CMSIS-DSP: dsppp Directory Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsppp Directory Reference
+
+
+
+
+ + + + diff --git a/main/dir_c11b7767e24616f54a92559a6dd7f65d.html b/main/dir_c11b7767e24616f54a92559a6dd7f65d.html new file mode 100644 index 000000000..5f3fbcc66 --- /dev/null +++ b/main/dir_c11b7767e24616f54a92559a6dd7f65d.html @@ -0,0 +1,166 @@ + + + + + + + +CMSIS-DSP: DSP Directory Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
DSP Directory Reference
+
+
+ + + + + + + + + + + + + + +

+Files

file  DSP/basic.hpp
 
file  DSP/matrix_multiply.hpp
 
file  memory.hpp
 
file  DSP/num_features.hpp
 
file  DSP/q15.hpp
 
file  DSP/q7.hpp
 
+
+
+ + + + diff --git a/main/dir_d455d9d201b8ce82bb93e6872a2a7aaf.html b/main/dir_d455d9d201b8ce82bb93e6872a2a7aaf.html new file mode 100644 index 000000000..36ea33ebd --- /dev/null +++ b/main/dir_d455d9d201b8ce82bb93e6872a2a7aaf.html @@ -0,0 +1,150 @@ + + + + + + + +CMSIS-DSP: Neon Directory Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Neon Directory Reference
+
+
+
+
+ + + + diff --git a/main/dir_e30d455166c31a1269859f837a0bcd4a.html b/main/dir_e30d455166c31a1269859f837a0bcd4a.html new file mode 100644 index 000000000..45a82b45f --- /dev/null +++ b/main/dir_e30d455166c31a1269859f837a0bcd4a.html @@ -0,0 +1,199 @@ + + + + + + + +CMSIS-DSP: dsppp Directory Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dsppp Directory Reference
+
+
+ + + + + + + + + + + + +

+Directories

directory  DSP
 
directory  Helium
 
directory  Neon
 
directory  num_features
 
directory  Scalar
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

file  algorithms.hpp
 
file  arch.hpp
 
file  common.hpp
 
file  fixed_point.hpp
 
file  forward.hpp
 
file  fusion.hpp
 
file  fusion_ops.hpp
 
file  matrix.hpp
 
file  matrix_impl.hpp
 
file  matrix_view.hpp
 
file  memory_pool.hpp
 
file  number.hpp
 
file  unroll.hpp
 
file  vec.hpp
 
file  vector_impl.hpp
 
file  vector_view.hpp
 
+
+
+ + + + diff --git a/main/dir_e35a6ada74331f73bed51bd8fbc7f186.html b/main/dir_e35a6ada74331f73bed51bd8fbc7f186.html new file mode 100644 index 000000000..7df4691fa --- /dev/null +++ b/main/dir_e35a6ada74331f73bed51bd8fbc7f186.html @@ -0,0 +1,156 @@ + + + + + + + +CMSIS-DSP: Include Directory Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Include Directory Reference
+
+
+ + + + +

+Directories

directory  dsppp
 
+
+
+ + + + diff --git a/main/double_8hpp.html b/main/double_8hpp.html new file mode 100644 index 000000000..f6bb9d76b --- /dev/null +++ b/main/double_8hpp.html @@ -0,0 +1,184 @@ + + + + + + + +CMSIS-DSP: double.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
double.hpp File Reference
+
+
+ + + + + + + + +

+Data Structures

struct  number_traits< double >
 Features for double. More...
 
struct  vector_traits< double, arch, void >
 Default vector datatype description for this scalar datatype. More...
 
+ + + +

+Namespaces

namespace  inner
 
+ + + + + + + + + + + + + +

+Functions

double from_accumulator (const double a)
 Convert from accumulator representation.
 
double mac (const double acc, const double a, const double b)
 Multiply and accumulate for this datatype.
 
void accumulate (double &a, const double &b)
 Accumulate.
 
double mult (double &a, const double &b)
 Multiply.
 
+
+
+ + + + diff --git a/main/dsppp_building.html b/main/dsppp_building.html new file mode 100644 index 000000000..abd2f3a1d --- /dev/null +++ b/main/dsppp_building.html @@ -0,0 +1,163 @@ + + + + + + + +CMSIS-DSP: Building and running examples + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Building and running examples
+
+
+

+

+To build

+

First time:

+
cbuild -O cprj test.csolution.yml --toolchain AC6 -c example.Release+VHT-Corstone-300 -p -r --update-rte
+

Other times:

+
cbuild -O cprj test.csolution.yml --toolchain AC6 -c example.Release+VHT-Corstone-300
+

If you want to select another test, edit the file example.cproject.yml and uncomment the test.

+

+To run

+

If the tools have been installed with vcpkg:

+
FVP_Corstone_SSE-300_Ethos-U55.exe -f fvp_configs/VHT-Corstone-300.txt -a cpu0=cprj\out\example\VHT-Corstone-300\Release\example.axf
+

Otherwise, you'll need to use the path to your FVP installation.

+
+
+
+ + + + diff --git a/main/dsppp_code_size.html b/main/dsppp_code_size.html new file mode 100644 index 000000000..d6cc29a5e --- /dev/null +++ b/main/dsppp_code_size.html @@ -0,0 +1,156 @@ + + + + + + + +CMSIS-DSP: Code size + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Code size
+
+
+

It was explained in previous sections that types Vector<T,NB1> and Vector<T,NB2> are considered as different types if NB1 and NB2 are differents.

+

A template algorithm is like a code generator that will generate different code for different values of the template arguments : the types.

+

If you use a template algorithm with different vector datatypes, it will generate different code for those two datatypes. The generated code will be specialized for the specific datatypes used and thus is likely to be more efficient.

+

But then it means you get different implementations so more code size.

+

If you have a lot of different sizes in your system, then you're likely to get too much code size and in that case it may be better to use dynamic objects instead of static ones.

+

dynamic objects are less efficient so it is a trade-off between code size / speed.

+
+
+
+ + + + diff --git a/main/dsppp_fusion.html b/main/dsppp_fusion.html new file mode 100644 index 000000000..7bd9f5a8b --- /dev/null +++ b/main/dsppp_fusion.html @@ -0,0 +1,163 @@ + + + + + + + +CMSIS-DSP: Fusion + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Fusion
+
+
+

Vector<float32_t,NB> d = a + b * c;
+

With this line of code, there is loop fusion : instead of having one loop per operator there is one loop for the whole computation.

+

It is important to have some ideas of how it works to avoid some mistake in the use of the library.

+

In above code, a + b * c is not computing anything ! a + b * c is creating a representation of the expression : an abstract syntax tree (AST) at build time.

+

When this AST is assigned to the variable d it is evaluated. The evaluation forces the inlining of the expression operators in one loop. The code generated thus contains only one loop with a fusion of all the operators : + and *.

+

The library is supporting virtual vectors. They are a view on an existing part of a vector. You can use a virtual vector for instance to read some samples with a stride. Or write some samples with a stride. A virtual vector does not own its memory.

+

If you write:

d = a;
+

and d and a are virtual vectors then nothing will be written to d !

+

d will becomes a and a will no more be valid.

+

If you want to copy a virtual vector you need to make an expression and write:

+
d = copy(a);
+

Note that this problem occurs only for virtual vectors who do not own their memory.

+

For real vectors, a copy would occur. But since there is no overhead in adding copy it is better to do it to avoid problems.

+
+
+
+ + + + diff --git a/main/dsppp_guidelines.html b/main/dsppp_guidelines.html new file mode 100644 index 000000000..c6f82d17d --- /dev/null +++ b/main/dsppp_guidelines.html @@ -0,0 +1,151 @@ + + + + + + + +CMSIS-DSP: Guidelines + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Guidelines
+
+
+

+
+
+
+ + + + diff --git a/main/dsppp_intro.html b/main/dsppp_intro.html new file mode 100644 index 000000000..9af716cef --- /dev/null +++ b/main/dsppp_intro.html @@ -0,0 +1,191 @@ + + + + + + + +CMSIS-DSP: Introduction + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Introduction
+
+
+

+

+Dot product example

+

If you want to compute the dot product:

+

+\[ + +<scale*(\overrightarrow{a}+\overrightarrow{b}),\overrightarrow{c}*\overrightarrow{d}> + +\] +

+

with CMSIS-DSP, you would write:

+
arm_add_f32(a,b,tmp1,NB);
+
arm_scale_f32(tmp1,scale,tmp2,NB);
+
arm_mult_f32(c,d,tmp3,NB);
+
arm_dot_prod_f32(tmp2,tmp3,NB,&r);
+

There are several limitations with this way of writing the code:

+
    +
  1. The code needs to be rewritten and the _f32 suffix changed if the developer wants to use another datatype
  2. +
  3. Temporary buffers need to be allocated and managed (tmp1,tmp2,tmp3,tmp4)
  4. +
  5. The four function calls are four different loops. It is not good for data locality and caches. The computation is not done in one pass
  6. +
  7. Each loop contains a small number of instructions. For instance, for the arm_add_f32, two loads, an add instruction and a store. It is not enough to enable the compiler to reorder the instructions to improve the performance
  8. +
+

With this new C++ template library, you can write:

+
r = dot(scale*(a+b),c*d);
+

The code generated by this line computes the dot product in one pass with all the operators (+, *) included in the loop. There is no more any temporary buffers.

+

+Vector operations

+

Let's look at another example:

+

+\[ + +\overrightarrow{d} = \overrightarrow{a} + \overrightarrow{b} * \overrightarrow{c} + +\] +

+

With the C++ library, it can be written as:

+
Vector<float32_t,NB> d = a + b * c;
+

Here again : all the vector operations (+,*) are done in one pass with one loop. There is no more any temporary buffer.

+

If you're coming from C and does not know anything about C++ templates, we have a very quick introduction : The minimum you need to know about C++ template to use this library.

+

You can also jump directly to an example with vector operations.

+
+
+
+ + + + diff --git a/main/dsppp_main.html b/main/dsppp_main.html new file mode 100644 index 000000000..830f67e46 --- /dev/null +++ b/main/dsppp_main.html @@ -0,0 +1,165 @@ + + + + + + + +CMSIS-DSP: DSP++ extension + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
DSP++ extension
+
+
+

C++ extensions to CMSIS-DSP using C++ template meta-programming (headers only).

+

The headers are not yet part of the CMSIS-DSP pack since they are experimental. You can get them from the CMSIS-DSP github. There is nothing to build. Just include the headers when you want to use this framework.

+ +
+
+
+ + + + diff --git a/main/dsppp_main.js b/main/dsppp_main.js new file mode 100644 index 000000000..80af061c2 --- /dev/null +++ b/main/dsppp_main.js @@ -0,0 +1,48 @@ +var dsppp_main = +[ + [ "Introduction", "dsppp_intro.html", null ], + [ "What you need to know about C++ templates", "dsppp_template.html", [ + [ "What is a template useful for ?", "dsppp_template.html#autotoc_md6", null ], + [ "Templates for datatypes", "dsppp_template.html#autotoc_md7", null ], + [ "Implicit parameters", "dsppp_template.html#autotoc_md8", null ], + [ "How to use templates ?", "dsppp_template.html#autotoc_md9", null ], + [ "Example", "dsppp_template.html#autotoc_md10", null ] + ] ], + [ "Vector operation example", "dsppp_vector_example.html", [ + [ "Include the headers", "dsppp_vector_example.html#autotoc_md11", null ], + [ "Creation of the vectors", "dsppp_vector_example.html#autotoc_md12", null ], + [ "Initialization of the vectors", "dsppp_vector_example.html#autotoc_md13", null ], + [ "Computation", "dsppp_vector_example.html#autotoc_md14", null ], + [ "Displaying the result", "dsppp_vector_example.html#autotoc_md15", null ] + ] ], + [ "Memory allocation", "dsppp_memory_allocator.html", null ], + [ "Static / dynamic", "dsppp_memory_static_dynamic.html", [ + [ "Static objects", "dsppp_memory_static_dynamic.html#autotoc_md16", null ], + [ "Dynamic objects", "dsppp_memory_static_dynamic.html#autotoc_md17", null ] + ] ], + [ "Code size", "dsppp_code_size.html", null ], + [ "Fusion", "dsppp_fusion.html", null ], + [ "Vector", "dsppp_vector.html", [ + [ "Q15 example", "dsppp_vector.html#autotoc_md18", null ], + [ "VectorView", "dsppp_vector.html#autotoc_md19", null ] + ] ], + [ "Matrix", "dsppp_matrix.html", [ + [ "VectorView", "dsppp_matrix.html#autotoc_md20", [ + [ "Row vector", "dsppp_matrix.html#autotoc_md21", null ], + [ "Column vector", "dsppp_matrix.html#autotoc_md22", null ] + ] ], + [ "MatrixView", "dsppp_matrix.html#autotoc_md23", null ], + [ "Matrix operations", "dsppp_matrix.html#autotoc_md24", [ + [ "dot", "dsppp_matrix.html#autotoc_md25", null ], + [ "diagonal", "dsppp_matrix.html#autotoc_md26", null ], + [ "identity", "dsppp_matrix.html#autotoc_md27", null ], + [ "transpose", "dsppp_matrix.html#autotoc_md28", null ], + [ "outer product", "dsppp_matrix.html#autotoc_md29", null ] + ] ] + ] ], + [ "Building and running examples", "dsppp_building.html", [ + [ "To build", "dsppp_building.html#autotoc_md30", null ], + [ "To run", "dsppp_building.html#autotoc_md31", null ] + ] ], + [ "Guidelines", "dsppp_guidelines.html", null ] +]; \ No newline at end of file diff --git a/main/dsppp_matrix.html b/main/dsppp_matrix.html new file mode 100644 index 000000000..4f356ee12 --- /dev/null +++ b/main/dsppp_matrix.html @@ -0,0 +1,237 @@ + + + + + + + +CMSIS-DSP: Matrix + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Matrix
+
+
+

Matrixes can be used similarly to vectors:

+
Matrix<float32_t,ROWS,COLS> a;
+
Matrix<float32_t,ROWS,COLS> b;
+

If the dimensions of the matrixes are not known at build time, you would instead write:

+
Matrix<float32_t> a(rows,cols);
+
Matrix<float32_t> b(rows,cols);
+

Once you have matrixes, you need to initialize them. A matrix is also a vector, so you can initialize it by indexing into the vector:

+
for(std::size_t i=0;i<ROWS*COLS;i++)
+
{
+
a[i] = float32_t(i);
+
}
+

You can also use a bidimensional indexing:

+
for(std::size_t row=0; row<ROWS; row++)
+
{
+
for(std::size_t col=0; col<COLS; col++)
+
{
+
b(row,col) = float32_t(row*col);
+
}
+
}
+

Once you have initialized matrixes, you can operate on them:

+
Matrix<float32_t,ROWS,COLS> result = a * a + b;
+

The operators + and * are merged into the loop. * is the element-wise multiply. For the vector / matrix products you should use the operator dot.

+

Note that fusion of operators will not work with dot(Matrix, Matrix). It is only supported with vectors : dot(Vector,Vector) or dot(Matrix,Vector).

+

+VectorView

+

We can create virtual vectors which are view of some slices of the matrix.

+

+Row vector

+

To set the second row to 0.0f, you can do:

+
result.row(1) = 0.0f;
+

To set the odd elements of the 3rd row to 0.0f we can do:

+
result.row<2>(2,1) = 0.0f;
+

The first argument 2 is the row number (starting from 0).

+

The second argument 1 is where is the row we start the view : element 1.

+

<2> is the stride known at built time.

+

The row API is:

+
template<int S=1>
+
VectorView<P,S> row(const index_t i,const index_t start=0,const index_t stop=C)
+

stop is the index of the first element after the end of the view.

+

i is the row index

+

+Column vector

+

There is a similar API for columns.

+

Let's set the odd elements of columns 3 to 5.0f:

+
result.col<2>(2,1) = 5.0f;
+

+MatrixView

+

It is also possible to create a virtual matrix : a view onto a subset of the matrix.

+

Let's add the bottom right corner of the matrix to itself:

+
result.sub(4,8,4,8) = result.sub(4,8,4,8) + result.sub(4,8,4,8)
+

The API is:

+
MatrixView<P,C> sub(const index_t rs,
+
const index_t re,
+
const index_t cs,
+
const index_t ce)
+

You specify the row start and row end, then column start and column end.

+

Note that the end is the first index after the end of your rows or columns.

+

No stride is supported for matrix view in this version of the library.

+

+Matrix operations

+

In addition to the vector operations +,- and *, matrixes are supporting more operations:

+
    +
  • dot for vector / matrix products
  • +
  • diagonal to create a diagonal matrix from a vector.
  • +
  • identity to create an identity matrix
  • +
  • tranpose to create the transposed matrix
  • +
  • outer for the outer product of two vectors
  • +
+

+dot

+
result = dot(a,b);
+

The compiler may use the move semantic to copy the temporary result of the dot function to result.

+

In this case, no copy would occur and result after the assignment would be a vector allocated by dot so using the TMP_ALLOC .

+

+diagonal

+
result = Matrix<float32_t,ROWS,COLS>::diagonal(c);
+

+identity

+
result = Matrix<float32_t,ROWS,COLS>::identity();
+

+transpose

+
result = a.transpose();
+

or

+
transposeTo(result,a);
+

+outer product

+
result = outer(c,c);
+
+
+
+ + + + diff --git a/main/dsppp_memory_allocator.html b/main/dsppp_memory_allocator.html new file mode 100644 index 000000000..e9bb57511 --- /dev/null +++ b/main/dsppp_memory_allocator.html @@ -0,0 +1,197 @@ + + + + + + + +CMSIS-DSP: Memory allocation + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Memory allocation
+
+
+

By default, malloc is used.

+
Vector<float32_t,NB>
+

is allocating a vector of dimension NB (known at build time) and datatype float32_t.

+

The definition of the Vector template is:

+
template<typename P,
+
int L=DYNAMIC,
+
template<int> typename Allocator = TMP_ALLOC>
+
struct Vector:Vector_Base<P>
+

It means that by default the memory allocator is TMP_ALLOC.

+

This TMP_ALLOC #define can be changed if you define it before including any header from the library.

+

An allocator should implement a template like:

+
template<int L>
+
struct malloc_allocator {
+
/* Dynamic dimension allocations (L<0) */
+
static char* allocate ( vector_length_t sz) noexcept;
+
+
/* Dimension L know at build time (L > 0) */
+
static char* allocate ( ) noexcept;
+
+
static void destroy ( char* ptr ) noexcept;
+
+
};
+

It has no state because in practice we observed that compilers were generating more efficient code without state in the memory allocator template.

+

If you don't want to use a malloc based memory allocator, you can replace it with your own memory allocator and implement an API like the one just shown in malloc_allocator.

+

For instance, often in DSP pipelines, the dimensions of the vectors and matrixes are fixed and known at build time. In that case, you could replace the memory allocator by one using memory pools.

+

With memory pools, allocation is nearly cost free and there is no fragmentation.

+

The test framework of the library is providing an example in allocator.h and allocator.cpp.

+

There are two memory allocators:

+
    +
  1. stat_allocator is a malloc based allocator that is making statistics on the memory allocations and how many buffers of each dimension is required
  2. +
  3. pool_allocator can use the data generated by stat_allocatorto pre-allocate memory pools that will be then used for the memory allocations. The memory pools are also creating aligned buffers.
  4. +
+

It is no more difficult (and less difficult) than allocating temporary buffers in CMSIS-DSP.

+

You could define the TMP_ALLOC with:

+
#if defined(POOL_ALLOCATOR)
+
#define TMP_ALLOC pool_allocator
+
#else
+
#define TMP_ALLOC stat_allocator
+
#endif
+

You use stat_allocator by default. When your code is working, you switch to pool_allocator to have better performance and determinism.

+

Another possibility is to use different vector types:

+
template<typename P,int L=arm_cmsis_dsp::DYNAMIC>
+
using PVector = Vector<P,L,pool_allocator>;
+

Note that you cannot avoid using TMP_ALLOC because some functions in the library are creating temporary objects. For instance, if you want to make an identity matrix, you can use mk_identity that will make a memory allocation using TMP_ALLOC

+

Also note that if you create a vector with:

+
Vector<float32_t> v(NB);
+

then the dimension NB is a runtime parameter. The memory pool allocator given as example in this library is only working with dimensions known at build time. For runtime dimensions, it is still using a malloc.

+
+
+
+ + + + diff --git a/main/dsppp_memory_static_dynamic.html b/main/dsppp_memory_static_dynamic.html new file mode 100644 index 000000000..64b838b28 --- /dev/null +++ b/main/dsppp_memory_static_dynamic.html @@ -0,0 +1,171 @@ + + + + + + + +CMSIS-DSP: Static / dynamic + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Static / dynamic
+
+
+

As we have seen in the previous sections, there are two kind of vectors:

+
    +
  • Vector<T> with a dimension know at runtime
  • +
  • Vector<T,NB> with a dimension known at build time
  • +
+

The former vectors are called "dynamic" ins this library. The later are called "static".

+

This naming "static" / "dynamic" is referring to the dimension. With "dynamic" vectors the same code can, at runtime, create vectors of different length based on a runtime length.

+

With "static" vectors : the length is fixed at build time and will never change at runtime.

+

Note that the library also have "static" / "dynamic" matrixes. So, we are going to use "objects" to cover both cases

+

+Static objects

+

The advantage of static objects is that the dimension is known at build time. The compiler can thus generate an algorithm that is specialized for those dimensions and thus more efficient.

+

With static objects it is also possible to use different memory allocator with better performances and determinism.

+

But, with static objects, objects of different dimension are considered as different types. The compiler will generate different implementation so it will have an impact on the code dimension.

+

If you need lots of objects of different dimensions, or if the dimensions are nort known at build time, then you need to use dynamic object

+

+Dynamic objects

+

With dynamic objects, the dimension is know at runtime. So object of different dimensions have the same datatype and the compiler is generating only one implementation for all those objects. It cannot generate specialized implementations based on the dimension. It is better for code size, but the implementations will be less efficient.

+

Also when dimension is not know at build time, some instruction selection made by the C++ library at build time is no more possible. It has an effect on performance since at runtime one must decides what's possible or not. It is mostly impacting matrixes where stride information is needed.

+

With vector instructions one can use scatter / gather instructions and they require a stride. But there are constraints depending on the datatype and when the stride is too big for those instructions, they cannot be used. This check has to be done at runtime for dynamic object.

+

Finally, with dynamic object, memory allocation can be an issue. You can mitigate the problem by reusing temporaries in your algorithms instead of re-allocating them. But it makes the implementation more difficult. See section about Guidelines.

+
+
+
+ + + + diff --git a/main/dsppp_template.html b/main/dsppp_template.html new file mode 100644 index 000000000..5688f76fa --- /dev/null +++ b/main/dsppp_template.html @@ -0,0 +1,186 @@ + + + + + + + +CMSIS-DSP: What you need to know about C++ templates + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
What you need to know about C++ templates
+
+
+

+

+What is a template useful for ?

+

In CMSIS-DSP, you have functions like:

+
    +
  • arm_add_f32
  • +
  • arm_add_f64
  • +
+

Without unrolling, the scalar implementation is the same but is duplicated (two different source files to maintain although they are nearly the same).

+

One could try to reuse the same source for both functions using C preprocessor. But we would still have two different functions with different names at the end (both generated from the same C + C preprocessor macros)

+

With C++ templates, we can achieve the same result in a better way since the C++ compiler will check the templates and typecheck them. In addition to that, both functions can share the same name.

+

With C++ template, we could have a generic function arm_add taking as argument a pointer T *pSrc where T is a type variable !

+

When the function is used with a float32_t *, the compiler would generate code for a function using float32_t.

+

And if the function is used with a float64_t *, the compiler would generate code for a function using float64_t.

+

The generic arm_add source code is a template used to generate different implementations. It is like a code generator.

+

And if the compiler is unable to generate an implementation because the type variable T is replaced by a type with no addition operator, then it would be detected by the compiler.

+

+Templates for datatypes

+

C++ templates also apply to structs and classes.

+

For instance, we could have a template Vector<T> and thus different types Vector<float32_t>, Vector<Q15> ...

+

There is another aspect of C++ templates that may be surprising : the types can contain numbers.

+

For instance, one could have a type Vector<float32_t,10> for a vector of float and of length 10. The length being known at build time.

+

The types Vector<float32_t,10> and Vector<float32_t,5> should be considered as different types because they have different lengths. The length is part of the type.

+

What we said above for code generation applies. For a template algorithm using any kind of vector, the compiler would generate different code for different vector types. The code for a template algorithm using Vector<float32_t,10> would be different from the code for Vector<float32_t,5> because those two types are different.

+

+Implicit parameters

+

A template can also have implicit parameters.

+

For instance one could use Vector<float32_t> or Vector<float32_t,10>.

+

In the first case, the length is an implicit parameter with a default value and it is equivalent to writing Vector<float32_t,DYNAMIC> where DYNAMIC could be a special value (negative for instance) used to tell the compiler that the length of the vector is not known at build time but only at runtime.

+

Both variants may use totally different implementations. The DYNAMIC variant may contain a length field in the struct definition whereas other variants do not need this field since the length is known at build time.

+

+How to use templates ?

+

A template is just a C++ header. You only need to include this header to start using the template. There is nothing to build.

+

+Example

+

Now you can look at an example with vector operations showing how to use the library

+
+
+
+ + + + diff --git a/main/dsppp_vector.html b/main/dsppp_vector.html new file mode 100644 index 000000000..ea6a9abae --- /dev/null +++ b/main/dsppp_vector.html @@ -0,0 +1,207 @@ + + + + + + + +CMSIS-DSP: Vector + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Vector
+
+
+

The use of vectors has been explained in example with vector operations and focusing on float32_t.

+

The vector template is defined as:

+
template<typename P,
+
int L=DYNAMIC,
+
template<int> typename Allocator = TMP_ALLOC>
+
struct Vector:Vector_Base<P>
+
    +
  • P is the datatype of vector elements
  • +
  • L is the static length of the vector (length known at build time). L<0 when the length is dynamic and not known at build time. It is the default value.
  • +
  • Allocator is the memory allocator. By default it is TMP_ALLOC that you can redefine since it is a macro
  • +
  • Vector_Base<P> is providing the storage. A vector owns its storage buffer.
  • +
+

+Q15 example

+

Example with Q15 is very similar:

+

The vectors are defined:

+
Vector<Q15,NB> aQ15;
+
Vector<Q15,NB> bQ15;
+
Vector<Q15,NB> cQ15;
+

They are initialized:

+
for(int i = 0;i< NB;i++)
+
{
+
aQ15[i] = bQ15[i] = cQ15[i] = Q15(i);
+
}
+

Here, the Q15 value is initialized from the int value i and thus represents \( i/2^{15} \)

+

Some computation is done

+
Vector<Q15,NB> dQ15 = aQ15 + bQ15 * cQ15;
+

The result is displayed:

+
std::cout << "Result = " << dQ15 ;
+

+VectorView

+

A vector view is a virtual vector : a view of a vector.

+

One can define a VectorView with:

+
auto subD = d.sub(2);
+

This is creating a virtual vector starting at index 2 (3rd element) of vector d.

+

You can then operate with this virtual vector:

+
subD = subD + 2.0f;
+

If you display the vector d, you'll see that 2.0f has been added to all elements starting from the 2rd one.

+

VectorView do not own their memory. It is owned by the original vector.

+

If you write:

+
x = y
+

and x and y are VectorView, no copy will occur. x will just reference the same data as y. If you want to copy you have to be explicit and write:

+
x = copy(y)
+

It is advised to always use the copy operator (even with normal vectors).

+

Virtual vectors can have a stride:

+
d.sub<2>(1) = 0.0f;
+

This line sets the odd elements of the vector to 0.0f. It is creating a vvirtual vector with stride 2 and starting at index 1 of first vector.

+

Then, all elements of this virtual vector are set to 0.0f.

+

The sub API is:

+
template<int S=1>
+
VectorView<P,S> sub(const index_t start=0,const index_t stop=L)
+

You can define:

+
    +
  • The stride S : statically known and by default 1.
  • +
  • The start of the view (0 by default)
  • +
  • The end of the view (L by default : the length known at build time). Note that it is the first index after the end of the vector.
  • +
+
+
+
+ + + + diff --git a/main/dsppp_vector_example.html b/main/dsppp_vector_example.html new file mode 100644 index 000000000..236831fb3 --- /dev/null +++ b/main/dsppp_vector_example.html @@ -0,0 +1,209 @@ + + + + + + + +CMSIS-DSP: Vector operation example + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Vector operation example
+
+
+

To compute:

+

+\[ + +\overrightarrow{d} = \overrightarrow{a} + \overrightarrow{b} * \overrightarrow{c} + +\] +

+

we need to:

    +
  1. Include the right header files
  2. +
  3. allocate the vectors
  4. +
  5. initialize the vectors
  6. +
  7. make the computation.
  8. +
+

+Include the headers

+

The headers are not yet part of the CMSIS-DSP packs since they are experimental. You can get them from the CMSIS-DSP github

+
#include <memory_pool>
+
#include <matrix>
+
+
using namespace arm_cmsis_dsp;
+

If fixed point datatypes are required, #include <fixed_point> should be used before <matrix>

+

Fixed point requires the use of CMSIS-DSP.

+

+Creation of the vectors

+

To create a vector a you would write:

+
constexpr int NB = 32;
+
+ + + +

Vector<float32_t,NB> is creating a vector of dimension NB (known at build time) and datatype float32_t. This creation is requiring some memory allocation and by default it is done with a malloc.

+

It is possible to change the memory allocator for the vectors (and it is advised) to avoid using malloc and instead have deterministic allocation without fragmentation.

+

See section Memory allocation.

+

Vectors of different dimensions are considered as being different types.

+

If you don't know the dimension at build time, you can use a different type of vector with:

+

For the trade-off between vector with build time dimension or runtime dimension please see the section Static / dynamic .

+

+Initialization of the vectors

+

You can index the vectors as normal C arrays.

+
for(int i = 0;i< NB;i++)
+
{
+
a[i] = b[i] = c[i] = i;
+
}
+

+Computation

+

The computation can be written normally as :

+
Vector<float32_t,NB> d = a + b * c;
+

Note that the computation can be parametrized with template arguments so the same computation could be used with any datatype or length. In that case you would have to define a template (and not just a normal function) and inside you would use something like:

+
Vector<T,NB> d = a + b * c;
+

where T is a type variable coming from the template.

+

The operators +, * are computed in one pass with one loop : we have loop fusion and instead of having a loop per operator we have a loop for the whole computation.

+

To understand fusion and how to extend it with new operators, see section Fusion .

+

For an overview of vector operators, see section Vector . For an overview of matrix operators, see section Matrix .

+

+Displaying the result

+

The vectors can be displayed on stdout for debug purpose.

+
std::cout << "Result = " << d ;
+
+
+
+ + + + diff --git a/main/files.html b/main/files.html new file mode 100644 index 000000000..385489cf2 --- /dev/null +++ b/main/files.html @@ -0,0 +1,204 @@ + + + + + + + +CMSIS-DSP: File List + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
File List
+
+ +
+ + + + diff --git a/main/fixed__point_8hpp.html b/main/fixed__point_8hpp.html new file mode 100644 index 000000000..703fd312e --- /dev/null +++ b/main/fixed__point_8hpp.html @@ -0,0 +1,367 @@ + + + + + + + +CMSIS-DSP: fixed_point.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
fixed_point.hpp File Reference
+
+
+
#include <cstdint>
+#include "arch.hpp"
+#include <cstdlib>
+#include <type_traits>
+#include <iostream>
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Structures

struct  fixed_storage_type< M, F, s, bool >
 Storage type for a fixed point number. More...
 
struct  fixed_storage_type< M, F, true, test64(M, F, 1)>
 Storage type for a fixed point number representable on int64. More...
 
struct  fixed_storage_type< M, F, false, test64(M, F, 0)>
 Storage type for a fixed point number representable on uint64. More...
 
struct  fixed_storage_type< M, F, true, test32(M, F, 1)>
 Storage type for a fixed point number representable on int32. More...
 
struct  fixed_storage_type< M, F, false, test32(M, F, 0)>
 Storage type for a fixed point number representable on uint32. More...
 
struct  fixed_storage_type< M, F, true, test16(M, F, 1)>
 Storage type for a fixed point number representable on int16. More...
 
struct  fixed_storage_type< M, F, false, test16(M, F, 0)>
 Storage type for a fixed point number representable on uint16. More...
 
struct  fixed_storage_type< M, F, true, test8(M, F, 1)>
 Storage type for a fixed point number representable on int8. More...
 
struct  fixed_storage_type< M, F, false, test8(M, F, 0)>
 Storage type for a fixed point number representable on uint8. More...
 
struct  Q< M, F, S, T >
 Fixed point template. More...
 
struct  Q< M, F, true, int64_t >
 Signed fixed point datatypes on 64 bits. More...
 
struct  Q< M, F, false, uint64_t >
 Unsigned fixed point datatypes on 64 bits. More...
 
struct  Q< M, F, true, int32_t >
 Signed fixed point datatypes on 32 bits. More...
 
struct  Q< M, F, false, uint32_t >
 Unsigned fixed point datatypes on 32 bits. More...
 
struct  Q< M, F, true, int16_t >
 Signed fixed point datatypes on 16 bits. More...
 
struct  Q< M, F, false, uint16_t >
 Unsigned fixed point datatypes on 16 bits. More...
 
struct  Q< M, F, true, int8_t >
 Signed fixed point datatypes on 8 bits. More...
 
struct  Q< M, F, false, uint8_t >
 Unsigned fixed point datatypes on 8 bits. More...
 
struct  FixedCastShift< M, FD, FS, S,(FD >FS)>
 Changed fractional representation of a fixed point number using a shift. More...
 
struct  FixedCastShift< M, FD, FS, S,(FD< FS)>
 Changed fractional representation of a fixed point number using a shift. More...
 
struct  Accumulate< MD, MS, F, S, true >
 Accumulation without saturation. More...
 
+ + + +

+Namespaces

namespace  arm_cmsis_dsp
 
+ + + + + + + + + + + + + +

+Typedefs

+using Q63 = Q< 0, 63 >
 Q63 datatype.
 
+using Q31 = Q< 0, 31 >
 Q31 datatype.
 
+using Q15 = Q< 0, 15 >
 Q15 datatype.
 
+using Q7 = Q< 0, 7 >
 Q7 datatype.
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

constexpr bool test64 (const int M, const int F, const int S)
 Function to identify the template for fixed number representable on 64 bits.
 
constexpr bool test32 (const int M, const int F, const int S)
 Function to identify the template for fixed number representable on 32 bits.
 
constexpr bool test16 (const int M, const int F, const int S)
 Function to identify the template for fixed number representable on 16 bits.
 
constexpr bool test8 (const int M, const int F, const int S)
 Function to identify the template for fixed number representable on 8 bits.
 
constexpr Q63 operator""_q63 (long double x)
 q63 literal
 
constexpr Q31 operator""_q31 (long double x)
 q31 literal
 
constexpr Q15 operator""_q15 (long double x)
 q15 literal
 
constexpr Q7 operator""_q7 (long double x)
 q7 literal
 
template<int MA, int FA, int MB, int FB, bool SA, bool SB>
Q< MA+MB+1, FA+FB, SA||SB > mult (const Q< MA, FA, SA > &a, const Q< MB, FB, SB > &b)
 Multiplication of two fixed point numbers A and B.
 
template<int M, int F, bool S>
Q< M, F, S > operator+ (const Q< M, F, S > &a, const Q< M, F, S > &b)
 Add two fixed point numbers with saturation.
 
template<int M, int F, bool S>
Q< M, F, S > operator- (const Q< M, F, S > &a, const Q< M, F, S > &b)
 Subtract two fixed point numbers with saturation.
 
template<int M, int F, bool S>
Q< M, F, S > operator- (const Q< M, F, S > &a)
 Negate a fixed point number with saturation.
 
template<int M, int F, bool S>
Q< M, F, S > add (const Q< M, F, S > &a, const Q< M, F, S > &b)
 Add two fixed point numbers without saturation.
 
template<int M, int F, bool S>
Q< M, F, S > sub (const Q< M, F, S > &a, const Q< M, F, S > &b)
 Subtract two fixed point numbers without saturation.
 
template<int M, int F, int N, bool S>
Q< M, F, S > operator>> (const Q< M, F, S > &a, std::integral_constant< int, N >) noexcept
 Shift right a fixed point number with a shift known at build time.
 
template<int M, int F, int N, bool S>
Q< M+N, F, S > operator<< (const Q< M, F, S > &a, std::integral_constant< int, N >) noexcept
 Shift left a fixed point number with a shift known at build time.
 
template<int MD = 0, int MS, int F>
Q< MD, F, true > saturate (const Q< MS, F, true > &src, typename std::enable_if<(MD< MS) &&((MD+F)< 31)>::type *=nullptr)
 Saturate a signed fixed point number.
 
template<int MD = 0, int MS, int F>
Q< MD, F, false > saturate (const Q< MS, F, false > &src, typename std::enable_if<(MD< MS) &&((MD+F)< 31)>::type *=nullptr)
 Saturate an unsigned fixed point number.
 
template<int FD, int M, int FS, bool S>
Q< M, FD, S > toFrac (const Q< M, FS, S > &src)
 Convert between different fractional part formats.
 
template<int MD, int MS, int F, bool S>
Q< MD, F, S > accumulate (const Q< MD, F, S > &a, const Q< MS, F, S > &b)
 Accumulate without saturation.
 
Q7 operator* (const Q7 &a, const Q7 &b)
 Multiplication operator.
 
Q15 operator* (const Q15 &a, const Q15 &b)
 Multiplication operator.
 
Q31 operator* (const Q31 &a, const Q31 &b)
 Multiplication operator.
 
template<int M, int F>
bool operator> (const Q< M, F > &a, const Q< M, F > &b)
 Greater-than comparison operator.
 
template<int M, int F>
bool operator< (const Q< M, F > &a, const Q< M, F > &b)
 Less-than comparison operator.
 
template<int M, int F>
bool operator>= (const Q< M, F > &a, const Q< M, F > &b)
 Greater-than-or-equal comparison operator.
 
template<int M, int F>
bool operator<= (const Q< M, F > &a, const Q< M, F > &b)
 Less-than-or-equal comparison operator.
 
template<int M, int F>
bool operator== (const Q< M, F > a, const Q< M, F > b)
 Equality operator.
 
template<int M, int F>
bool operator!= (const Q< M, F > a, const Q< M, F > b)
 Inequality operator.
 
template<int M, int F, bool S>
Q< M, F, S > operator/ (const Q< M, F, S > a, const int32_t b)
 Division operator.
 
template<int M, int F, bool S>
Q< M, F, S > operator+ (const Q< M, F, S > &a)
 No op operator.
 
+
+
+ + + + diff --git a/main/footer.js b/main/footer.js index 91ece5e06..01097a886 100644 --- a/main/footer.js +++ b/main/footer.js @@ -1,7 +1,7 @@ function writeHeader() { - document.write('Version 1.15.1-dev25'); + document.write('Version 1.15.1-dev31'); }; function writeFooter() { - document.write('Generated on Tue Mar 5 2024 06:22:14 for CMSIS-DSP 1.15.1-dev25+g8821c46. Copyright © 2024 Arm Limited (or its affiliates). All rights reserved.'); + document.write('Generated on Wed Mar 6 2024 06:36:38 for CMSIS-DSP 1.15.1-dev31+ga277827. Copyright © 2024 Arm Limited (or its affiliates). All rights reserved.'); }; diff --git a/main/forward_8hpp.html b/main/forward_8hpp.html new file mode 100644 index 000000000..c0fed948c --- /dev/null +++ b/main/forward_8hpp.html @@ -0,0 +1,158 @@ + + + + + + + +CMSIS-DSP: forward.hpp File Reference + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
forward.hpp File Reference
+
+
+ + + + +

+Namespaces

namespace  arm_cmsis_dsp
 
+
+
+ + + + diff --git a/main/functions.html b/main/functions.html index 0aa02fc44..c323fa349 100644 --- a/main/functions.html +++ b/main/functions.html @@ -130,11 +130,8 @@
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:
-

- a -

diff --git a/main/functions_a.html b/main/functions_a.html new file mode 100644 index 000000000..49e92a8ed --- /dev/null +++ b/main/functions_a.html @@ -0,0 +1,157 @@ + + + + + + + +CMSIS-DSP: Data Fields + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ + + + + + + + + +
+
CMSIS-DSP +   + +
+
CMSIS DSP Software Library
+
+ +   + + + + +
+
+
+ +
+
    + +
+
+ + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ + + + diff --git a/main/functions_b.html b/main/functions_b.html index d25c84cfb..700d60451 100644 --- a/main/functions_b.html +++ b/main/functions_b.html @@ -131,6 +131,7 @@
Here is a list of all documented struct and union fields with links to the struct/union documentation for each field:

- b -