react-native-executorch 0.10.5 → 0.10.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (251) hide show
  1. package/README.md +10 -1
  2. package/android/build.gradle.kts +4 -3
  3. package/ios/RnExecutorch.mm +15 -17
  4. package/lib/module/fetcher/fetcher.js +35 -122
  5. package/lib/module/fetcher/fetcher.js.map +1 -1
  6. package/lib/module/fetcher/telemetry.js +1 -1
  7. package/lib/module/index.js +12 -13
  8. package/lib/module/index.js.map +1 -1
  9. package/lib/module/models.js +4 -2
  10. package/lib/module/models.js.map +1 -1
  11. package/lib/typescript/src/fetcher/fetcher.d.ts +3 -7
  12. package/lib/typescript/src/fetcher/fetcher.d.ts.map +1 -1
  13. package/lib/typescript/src/models.d.ts.map +1 -1
  14. package/package.json +9 -7
  15. package/react-native-executorch.podspec +6 -2
  16. package/src/fetcher/fetcher.ts +38 -131
  17. package/src/fetcher/telemetry.ts +1 -1
  18. package/src/models.ts +6 -1
  19. package/third-party/common/phonemis/CMakeLists.txt +70 -14
  20. package/third-party/common/phonemis/README.md +183 -33
  21. package/third-party/common/phonemis/THIRD_PARTY_NOTICES.md +57 -0
  22. package/third-party/common/phonemis/knowledge/code_style.md +642 -0
  23. package/third-party/common/phonemis/licenses/Unicode-3.0.txt +39 -0
  24. package/third-party/common/phonemis/licenses/misaki-Apache-2.0.txt +201 -0
  25. package/third-party/common/phonemis/licenses/nlohmann-json-MIT.txt +21 -0
  26. package/third-party/common/phonemis/licenses/xsimd-BSD-3-Clause.txt +29 -0
  27. package/third-party/common/phonemis/src/phonemis/base/config.h +6 -0
  28. package/third-party/common/phonemis/src/phonemis/base/ipipeline.cpp +75 -0
  29. package/third-party/common/phonemis/src/phonemis/base/ipipeline.h +21 -0
  30. package/third-party/common/phonemis/src/phonemis/base/phonemizer/constants.h +2 -5
  31. package/third-party/common/phonemis/src/phonemis/base/phonemizer/lexicon_phonemizer.cpp +3 -4
  32. package/third-party/common/phonemis/src/phonemis/base/phonemizer/nn/neural_phonemizer.cpp +17 -8
  33. package/third-party/common/phonemis/src/phonemis/base/phonemizer/nn/neural_phonemizer.h +4 -0
  34. package/third-party/common/phonemis/src/phonemis/base/phonemizer/nn/tokenizer.cpp +21 -6
  35. package/third-party/common/phonemis/src/phonemis/base/phonemizer/nn/tokenizer.h +13 -4
  36. package/third-party/common/phonemis/src/phonemis/base/pipeline.cpp +8 -0
  37. package/third-party/common/phonemis/src/phonemis/base/pipeline.h +19 -0
  38. package/third-party/common/phonemis/src/phonemis/base/processor/common/conditions.cpp +37 -0
  39. package/third-party/common/phonemis/src/phonemis/base/processor/common/conditions.h +45 -0
  40. package/third-party/common/phonemis/src/phonemis/base/processor/common/constants.h +10 -0
  41. package/third-party/common/phonemis/src/phonemis/base/processor/common/context.cpp +105 -0
  42. package/third-party/common/phonemis/src/phonemis/base/processor/common/context.h +49 -0
  43. package/third-party/common/phonemis/src/phonemis/base/processor/common/document.cpp +173 -0
  44. package/third-party/common/phonemis/src/phonemis/base/processor/common/document.h +67 -0
  45. package/third-party/common/phonemis/src/phonemis/base/processor/common/text.cpp +75 -0
  46. package/third-party/common/phonemis/src/phonemis/base/processor/common/text.h +60 -0
  47. package/third-party/common/phonemis/src/phonemis/base/processor/common/types.h +18 -0
  48. package/third-party/common/phonemis/src/phonemis/base/processor/config.h +53 -0
  49. package/third-party/common/phonemis/src/phonemis/base/processor/layer.h +9 -7
  50. package/third-party/common/phonemis/src/phonemis/base/processor/layers/normalize/constants.h +20 -0
  51. package/third-party/common/phonemis/src/phonemis/base/processor/layers/normalize/layer.cpp +89 -0
  52. package/third-party/common/phonemis/src/phonemis/base/processor/layers/normalize/layer.h +35 -0
  53. package/third-party/common/phonemis/src/phonemis/base/processor/layers/normalize/types.h +16 -0
  54. package/third-party/common/phonemis/src/phonemis/base/processor/layers/num2word/kind.h +40 -0
  55. package/third-party/common/phonemis/src/phonemis/base/processor/layers/num2word/layer.h +382 -0
  56. package/third-party/common/phonemis/src/phonemis/base/processor/layers/num2word/notation.h +30 -0
  57. package/third-party/common/phonemis/src/phonemis/base/processor/layers/num2word/numerals.cpp +51 -0
  58. package/third-party/common/phonemis/src/phonemis/base/processor/layers/num2word/numerals.h +31 -0
  59. package/third-party/common/phonemis/src/phonemis/base/processor/layers/num2word/pattern.h +30 -0
  60. package/third-party/common/phonemis/src/phonemis/base/processor/layers/num2word/pattern_set.cpp +17 -0
  61. package/third-party/common/phonemis/src/phonemis/base/processor/layers/num2word/pattern_set.h +31 -0
  62. package/third-party/common/phonemis/src/phonemis/base/processor/layers/num2word/patterns.cpp +811 -0
  63. package/third-party/common/phonemis/src/phonemis/base/processor/layers/num2word/patterns.h +285 -0
  64. package/third-party/common/phonemis/src/phonemis/base/processor/layers/num2word/primitives.cpp +64 -0
  65. package/third-party/common/phonemis/src/phonemis/base/processor/layers/num2word/primitives.h +23 -0
  66. package/third-party/common/phonemis/src/phonemis/base/processor/layers/num2word/types.h +94 -0
  67. package/third-party/common/phonemis/src/phonemis/base/processor/layers/sanitizer/layer.cpp +19 -0
  68. package/third-party/common/phonemis/src/phonemis/base/processor/{sanitizer_layer.h → layers/sanitizer/layer.h} +8 -8
  69. package/third-party/common/phonemis/src/phonemis/base/processor/layers/sym2word/layer.cpp +65 -0
  70. package/third-party/common/phonemis/src/phonemis/base/processor/layers/sym2word/layer.h +29 -0
  71. package/third-party/common/phonemis/src/phonemis/base/processor/layers/term2word/layer.cpp +170 -0
  72. package/third-party/common/phonemis/src/phonemis/base/processor/layers/term2word/layer.h +40 -0
  73. package/third-party/common/phonemis/src/phonemis/base/processor/layers/term2word/types.h +25 -0
  74. package/third-party/common/phonemis/src/phonemis/base/processor/layers/trim/layer.cpp +47 -0
  75. package/third-party/common/phonemis/src/phonemis/base/processor/layers/trim/layer.h +19 -0
  76. package/third-party/common/phonemis/src/phonemis/base/processor/preprocessor.cpp +60 -0
  77. package/third-party/common/phonemis/src/phonemis/base/processor/preprocessor.h +45 -0
  78. package/third-party/common/phonemis/src/phonemis/base/processor/processor.cpp +6 -7
  79. package/third-party/common/phonemis/src/phonemis/base/processor/processor.h +14 -10
  80. package/third-party/common/phonemis/src/phonemis/base/tagger/hmm_tagger.cpp +89 -52
  81. package/third-party/common/phonemis/src/phonemis/base/tagger/hmm_tagger.h +16 -9
  82. package/third-party/common/phonemis/src/phonemis/base/tokenizer/tokenizer.cpp +13 -12
  83. package/third-party/common/phonemis/src/phonemis/lang/de/constants.h +183 -19
  84. package/third-party/common/phonemis/src/phonemis/lang/de/num2word.cpp +355 -309
  85. package/third-party/common/phonemis/src/phonemis/lang/de/num2word.h +42 -17
  86. package/third-party/common/phonemis/src/phonemis/lang/de/patterns.cpp +56 -0
  87. package/third-party/common/phonemis/src/phonemis/lang/de/patterns.h +15 -0
  88. package/third-party/common/phonemis/src/phonemis/lang/de/pipeline.h +3 -3
  89. package/third-party/common/phonemis/src/phonemis/lang/en/constants.h +181 -30
  90. package/third-party/common/phonemis/src/phonemis/lang/en/hmm_tagger.cpp +5 -7
  91. package/third-party/common/phonemis/src/phonemis/lang/en/num2word.cpp +232 -135
  92. package/third-party/common/phonemis/src/phonemis/lang/en/num2word.h +41 -16
  93. package/third-party/common/phonemis/src/phonemis/lang/en/pipeline.h +3 -10
  94. package/third-party/common/phonemis/src/phonemis/lang/es/constants.h +182 -60
  95. package/third-party/common/phonemis/src/phonemis/lang/es/num2word.cpp +247 -212
  96. package/third-party/common/phonemis/src/phonemis/lang/es/num2word.h +38 -18
  97. package/third-party/common/phonemis/src/phonemis/lang/es/patterns.cpp +50 -0
  98. package/third-party/common/phonemis/src/phonemis/lang/es/patterns.h +15 -0
  99. package/third-party/common/phonemis/src/phonemis/lang/es/pipeline.h +3 -3
  100. package/third-party/common/phonemis/src/phonemis/lang/fr/constants.h +152 -26
  101. package/third-party/common/phonemis/src/phonemis/lang/fr/num2word.cpp +252 -179
  102. package/third-party/common/phonemis/src/phonemis/lang/fr/num2word.h +38 -15
  103. package/third-party/common/phonemis/src/phonemis/lang/fr/patterns.cpp +83 -0
  104. package/third-party/common/phonemis/src/phonemis/lang/fr/patterns.h +15 -0
  105. package/third-party/common/phonemis/src/phonemis/lang/fr/pipeline.h +3 -3
  106. package/third-party/common/phonemis/src/phonemis/lang/hi/constants.h +62 -10
  107. package/third-party/common/phonemis/src/phonemis/lang/hi/num2word.cpp +74 -123
  108. package/third-party/common/phonemis/src/phonemis/lang/hi/num2word.h +27 -16
  109. package/third-party/common/phonemis/src/phonemis/lang/hi/pipeline.h +5 -3
  110. package/third-party/common/phonemis/src/phonemis/lang/it/constants.h +122 -42
  111. package/third-party/common/phonemis/src/phonemis/lang/it/num2word.cpp +200 -207
  112. package/third-party/common/phonemis/src/phonemis/lang/it/num2word.h +30 -18
  113. package/third-party/common/phonemis/src/phonemis/lang/it/patterns.cpp +25 -0
  114. package/third-party/common/phonemis/src/phonemis/lang/it/patterns.h +15 -0
  115. package/third-party/common/phonemis/src/phonemis/lang/it/pipeline.h +3 -3
  116. package/third-party/common/phonemis/src/phonemis/lang/pl/constants.h +346 -77
  117. package/third-party/common/phonemis/src/phonemis/lang/pl/num2word.cpp +631 -246
  118. package/third-party/common/phonemis/src/phonemis/lang/pl/num2word.h +47 -15
  119. package/third-party/common/phonemis/src/phonemis/lang/pl/pipeline.h +6 -6
  120. package/third-party/common/phonemis/src/phonemis/lang/pt/constants.h +201 -0
  121. package/third-party/common/phonemis/src/phonemis/lang/pt/num2word.cpp +365 -0
  122. package/third-party/common/phonemis/src/phonemis/lang/pt/num2word.h +53 -0
  123. package/third-party/common/phonemis/src/phonemis/lang/pt/pipeline.h +4 -2
  124. package/third-party/common/phonemis/src/phonemis/main.cpp +42 -11
  125. package/third-party/common/phonemis/src/phonemis/protophone/meta.h +24 -0
  126. package/third-party/common/phonemis/src/phonemis/protophone/numeric.h +26 -0
  127. package/third-party/common/phonemis/src/phonemis/protophone/protophone.cpp +525 -0
  128. package/third-party/common/phonemis/src/phonemis/protophone/protophone.h +80 -0
  129. package/third-party/common/phonemis/src/phonemis/protophone/tensor.h +76 -0
  130. package/third-party/common/phonemis/src/phonemis/protophone/tensor_utils.h +89 -0
  131. package/third-party/common/phonemis/src/phonemis/protophone/tensor_view.h +125 -0
  132. package/third-party/common/phonemis/src/phonemis/protophone/types.h +43 -0
  133. package/third-party/common/phonemis/src/phonemis/utils/strings.h +20 -14
  134. package/third-party/common/phonemis/src/phonemis/utils/unicode.h +15 -1
  135. package/third-party/common/phonemis/src/third-party/xsimd/arch/common/xsimd_common_arithmetic.hpp +267 -0
  136. package/third-party/common/phonemis/src/third-party/xsimd/arch/common/xsimd_common_bit.hpp +232 -0
  137. package/third-party/common/phonemis/src/third-party/xsimd/arch/common/xsimd_common_cast.hpp +43 -0
  138. package/third-party/common/phonemis/src/third-party/xsimd/arch/common/xsimd_common_complex.hpp +112 -0
  139. package/third-party/common/phonemis/src/third-party/xsimd/arch/common/xsimd_common_details.hpp +386 -0
  140. package/third-party/common/phonemis/src/third-party/xsimd/arch/common/xsimd_common_logical.hpp +240 -0
  141. package/third-party/common/phonemis/src/third-party/xsimd/arch/common/xsimd_common_math.hpp +2601 -0
  142. package/third-party/common/phonemis/src/third-party/xsimd/arch/common/xsimd_common_memory.hpp +1006 -0
  143. package/third-party/common/phonemis/src/third-party/xsimd/arch/common/xsimd_common_rounding.hpp +72 -0
  144. package/third-party/common/phonemis/src/third-party/xsimd/arch/common/xsimd_common_swizzle.hpp +260 -0
  145. package/third-party/common/phonemis/src/third-party/xsimd/arch/common/xsimd_common_trigo.hpp +996 -0
  146. package/third-party/common/phonemis/src/third-party/xsimd/arch/utils/shifts.hpp +82 -0
  147. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_avx.hpp +2111 -0
  148. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_avx2.hpp +1591 -0
  149. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_avx2_128.hpp +170 -0
  150. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_avx512bw.hpp +724 -0
  151. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_avx512cd.hpp +28 -0
  152. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_avx512dq.hpp +270 -0
  153. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_avx512er.hpp +17 -0
  154. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_avx512f.hpp +2919 -0
  155. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_avx512ifma.hpp +17 -0
  156. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_avx512pf.hpp +17 -0
  157. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_avx512vbmi.hpp +76 -0
  158. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_avx512vbmi2.hpp +130 -0
  159. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_avx512vnni_avx512bw.hpp +17 -0
  160. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_avx512vnni_avx512vbmi2.hpp +17 -0
  161. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_avx_128.hpp +164 -0
  162. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_avxvnni.hpp +17 -0
  163. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_common.hpp +26 -0
  164. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_common_fwd.hpp +127 -0
  165. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_constants.hpp +393 -0
  166. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_emulated.hpp +787 -0
  167. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_fma3_avx.hpp +93 -0
  168. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_fma3_avx2.hpp +46 -0
  169. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_fma3_sse.hpp +97 -0
  170. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_fma4.hpp +92 -0
  171. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_i8mm_neon64.hpp +17 -0
  172. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_isa.hpp +148 -0
  173. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_neon.hpp +3580 -0
  174. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_neon64.hpp +1614 -0
  175. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_rvv.hpp +1515 -0
  176. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_scalar.hpp +1210 -0
  177. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_sse2.hpp +2333 -0
  178. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_sse3.hpp +66 -0
  179. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_sse4_1.hpp +510 -0
  180. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_sse4_2.hpp +44 -0
  181. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_ssse3.hpp +186 -0
  182. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_sve.hpp +1186 -0
  183. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_vsx.hpp +947 -0
  184. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_vxe.hpp +787 -0
  185. package/third-party/common/phonemis/src/third-party/xsimd/arch/xsimd_wasm.hpp +1819 -0
  186. package/third-party/common/phonemis/src/third-party/xsimd/config/xsimd_arch.hpp +242 -0
  187. package/third-party/common/phonemis/src/third-party/xsimd/config/xsimd_config.hpp +633 -0
  188. package/third-party/common/phonemis/src/third-party/xsimd/config/xsimd_cpu_features.hpp +50 -0
  189. package/third-party/common/phonemis/src/third-party/xsimd/config/xsimd_cpu_features_arm.hpp +132 -0
  190. package/third-party/common/phonemis/src/third-party/xsimd/config/xsimd_cpu_features_ppc.hpp +54 -0
  191. package/third-party/common/phonemis/src/third-party/xsimd/config/xsimd_cpu_features_riscv.hpp +95 -0
  192. package/third-party/common/phonemis/src/third-party/xsimd/config/xsimd_cpu_features_s390x.hpp +56 -0
  193. package/third-party/common/phonemis/src/third-party/xsimd/config/xsimd_cpu_features_x86.hpp +1121 -0
  194. package/third-party/common/phonemis/src/third-party/xsimd/config/xsimd_cpuid.hpp +144 -0
  195. package/third-party/common/phonemis/src/third-party/xsimd/config/xsimd_getauxval.hpp +159 -0
  196. package/third-party/common/phonemis/src/third-party/xsimd/config/xsimd_macros.hpp +78 -0
  197. package/third-party/common/phonemis/src/third-party/xsimd/math/xsimd_rem_pio2.hpp +707 -0
  198. package/third-party/common/phonemis/src/third-party/xsimd/memory/xsimd_aligned_allocator.hpp +349 -0
  199. package/third-party/common/phonemis/src/third-party/xsimd/memory/xsimd_alignment.hpp +102 -0
  200. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_all_registers.hpp +57 -0
  201. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_api.hpp +3106 -0
  202. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_avx2_register.hpp +57 -0
  203. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_avx512bw_register.hpp +51 -0
  204. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_avx512cd_register.hpp +51 -0
  205. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_avx512dq_register.hpp +51 -0
  206. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_avx512er_register.hpp +51 -0
  207. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_avx512f_register.hpp +77 -0
  208. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_avx512ifma_register.hpp +51 -0
  209. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_avx512pf_register.hpp +51 -0
  210. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_avx512vbmi2_register.hpp +51 -0
  211. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_avx512vbmi_register.hpp +51 -0
  212. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_avx512vnni_avx512bw_register.hpp +54 -0
  213. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_avx512vnni_avx512vbmi2_register.hpp +53 -0
  214. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_avx_register.hpp +79 -0
  215. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_avxvnni_register.hpp +44 -0
  216. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_batch.hpp +1666 -0
  217. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_batch_constant.hpp +572 -0
  218. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_batch_fwd.hpp +41 -0
  219. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_common_arch.hpp +49 -0
  220. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_emulated_register.hpp +80 -0
  221. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_fma3_avx2_register.hpp +50 -0
  222. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_fma3_avx_register.hpp +50 -0
  223. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_fma3_sse_register.hpp +50 -0
  224. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_fma4_register.hpp +50 -0
  225. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_i8mm_neon64_register.hpp +55 -0
  226. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_neon64_register.hpp +55 -0
  227. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_neon_register.hpp +130 -0
  228. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_register.hpp +96 -0
  229. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_rvv_register.hpp +491 -0
  230. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_sse2_register.hpp +59 -0
  231. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_sse3_register.hpp +49 -0
  232. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_sse4_1_register.hpp +48 -0
  233. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_sse4_2_register.hpp +48 -0
  234. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_ssse3_register.hpp +48 -0
  235. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_sve_register.hpp +216 -0
  236. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_traits.hpp +409 -0
  237. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_utils.hpp +462 -0
  238. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_vsx_register.hpp +84 -0
  239. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_vxe_register.hpp +86 -0
  240. package/third-party/common/phonemis/src/third-party/xsimd/types/xsimd_wasm_register.hpp +59 -0
  241. package/third-party/common/phonemis/src/third-party/xsimd/utils/bits.hpp +122 -0
  242. package/third-party/common/phonemis/src/third-party/xsimd/utils/xsimd_type_traits.hpp +145 -0
  243. package/third-party/common/phonemis/src/third-party/xsimd/xsimd.hpp +43 -0
  244. package/third-party/common/phonemis/src/phonemis/base/processor/constants.h +0 -11
  245. package/third-party/common/phonemis/src/phonemis/base/processor/num2word/config.h +0 -16
  246. package/third-party/common/phonemis/src/phonemis/base/processor/num2word/layer.cpp +0 -271
  247. package/third-party/common/phonemis/src/phonemis/base/processor/num2word/layer.h +0 -45
  248. package/third-party/common/phonemis/src/phonemis/base/processor/num2word/types.h +0 -29
  249. package/third-party/common/phonemis/src/phonemis/base/processor/sanitizer_layer.cpp +0 -22
  250. package/third-party/common/phonemis/src/phonemis/base/processor/trim_layer.cpp +0 -40
  251. package/third-party/common/phonemis/src/phonemis/base/processor/trim_layer.h +0 -22
@@ -0,0 +1,80 @@
1
+ /***************************************************************************
2
+ * Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and *
3
+ * Martin Renou *
4
+ * Copyright (c) QuantStack *
5
+ * Copyright (c) Serge Guelton *
6
+ * *
7
+ * Distributed under the terms of the BSD 3-Clause License. *
8
+ * *
9
+ * The full license is in the file LICENSE, distributed with this software. *
10
+ ****************************************************************************/
11
+
12
+ #ifndef XSIMD_EMULATED_REGISTER_HPP
13
+ #define XSIMD_EMULATED_REGISTER_HPP
14
+
15
+ #include "./xsimd_common_arch.hpp"
16
+ #include "./xsimd_register.hpp"
17
+
18
+ namespace xsimd
19
+ {
20
+ /**
21
+ * @ingroup architectures
22
+ *
23
+ * emulated instructions
24
+ */
25
+ template <size_t N>
26
+ struct emulated : common
27
+ {
28
+ static constexpr bool supported() noexcept { return true; }
29
+ static constexpr bool available() noexcept { return true; }
30
+ static constexpr bool requires_alignment() noexcept { return false; }
31
+ static constexpr std::size_t alignment() noexcept { return 8; }
32
+ static constexpr char const* name() noexcept { return "emulated"; }
33
+ };
34
+
35
+ namespace types
36
+ {
37
+ template <size_t N>
38
+ struct simd_emulated_bool_register
39
+ {
40
+ using register_type = std::array<bool, N>;
41
+ register_type data;
42
+ simd_emulated_bool_register() = default;
43
+ simd_emulated_bool_register(register_type r) { data = r; }
44
+ operator register_type() const noexcept { return data; }
45
+ };
46
+ template <typename T, size_t N>
47
+ struct get_bool_simd_register<T, emulated<N>>
48
+ {
49
+ using type = simd_emulated_bool_register<N / (8 * sizeof(T))>;
50
+ };
51
+
52
+ template <typename T, size_t N>
53
+ struct simd_register<T, emulated<N>>
54
+ {
55
+ static_assert(N % (8 * sizeof(T)) == 0, "bit width must be a multiple of scalar width");
56
+ using register_type = std::array<T, N / (8 * sizeof(T))>;
57
+ register_type data;
58
+ XSIMD_INLINE operator register_type() const noexcept
59
+ {
60
+ return data;
61
+ }
62
+ };
63
+ template <typename T, size_t N>
64
+ struct has_simd_register<T, emulated<N>> : std::is_scalar<T>
65
+ {
66
+ };
67
+ template <typename T, size_t N>
68
+ struct has_simd_register<std::complex<T>, emulated<N>> : std::true_type
69
+ {
70
+ };
71
+ #ifdef XSIMD_ENABLE_XTL_COMPLEX
72
+ template <typename T, bool i3ec, size_t N>
73
+ struct has_simd_register<xtl::complex<T, T, i3ec>, emulated<N>> : std::true_type
74
+ {
75
+ };
76
+ #endif
77
+ }
78
+ }
79
+
80
+ #endif
@@ -0,0 +1,50 @@
1
+ /***************************************************************************
2
+ * Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and *
3
+ * Martin Renou *
4
+ * Copyright (c) QuantStack *
5
+ * Copyright (c) Serge Guelton *
6
+ * *
7
+ * Distributed under the terms of the BSD 3-Clause License. *
8
+ * *
9
+ * The full license is in the file LICENSE, distributed with this software. *
10
+ ****************************************************************************/
11
+
12
+ #ifndef XSIMD_FMA3_AVX2_REGISTER_HPP
13
+ #define XSIMD_FMA3_AVX2_REGISTER_HPP
14
+
15
+ #include "./xsimd_avx2_register.hpp"
16
+
17
+ namespace xsimd
18
+ {
19
+ template <typename arch>
20
+ struct fma3;
21
+
22
+ /**
23
+ * @ingroup architectures
24
+ *
25
+ * AVX2 + FMA instructions
26
+ */
27
+ template <>
28
+ struct fma3<avx2> : avx2
29
+ {
30
+ static constexpr bool supported() noexcept { return XSIMD_WITH_FMA3_AVX2; }
31
+ static constexpr bool available() noexcept { return true; }
32
+ static constexpr char const* name() noexcept { return "fma3+avx2"; }
33
+ };
34
+
35
+ #if XSIMD_WITH_FMA3_AVX2
36
+
37
+ #if !XSIMD_WITH_AVX2
38
+ #error "architecture inconsistency: fma3+avx2 requires avx2"
39
+ #endif
40
+
41
+ namespace types
42
+ {
43
+
44
+ XSIMD_DECLARE_SIMD_REGISTER_ALIAS(fma3<avx2>, avx2);
45
+
46
+ }
47
+ #endif
48
+
49
+ }
50
+ #endif
@@ -0,0 +1,50 @@
1
+ /***************************************************************************
2
+ * Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and *
3
+ * Martin Renou *
4
+ * Copyright (c) QuantStack *
5
+ * Copyright (c) Serge Guelton *
6
+ * *
7
+ * Distributed under the terms of the BSD 3-Clause License. *
8
+ * *
9
+ * The full license is in the file LICENSE, distributed with this software. *
10
+ ****************************************************************************/
11
+
12
+ #ifndef XSIMD_FMA3_AVX_REGISTER_HPP
13
+ #define XSIMD_FMA3_AVX_REGISTER_HPP
14
+
15
+ #include "./xsimd_avx_register.hpp"
16
+
17
+ namespace xsimd
18
+ {
19
+ template <typename arch>
20
+ struct fma3;
21
+
22
+ /**
23
+ * @ingroup architectures
24
+ *
25
+ * AVX + FMA instructions
26
+ */
27
+ template <>
28
+ struct fma3<avx> : avx
29
+ {
30
+ static constexpr bool supported() noexcept { return XSIMD_WITH_FMA3_AVX; }
31
+ static constexpr bool available() noexcept { return true; }
32
+ static constexpr char const* name() noexcept { return "fma3+avx"; }
33
+ };
34
+
35
+ #if XSIMD_WITH_FMA3_AVX
36
+
37
+ #if !XSIMD_WITH_AVX
38
+ #error "architecture inconsistency: fma3+avx requires avx"
39
+ #endif
40
+
41
+ namespace types
42
+ {
43
+
44
+ XSIMD_DECLARE_SIMD_REGISTER_ALIAS(fma3<avx>, avx);
45
+
46
+ }
47
+ #endif
48
+
49
+ }
50
+ #endif
@@ -0,0 +1,50 @@
1
+ /***************************************************************************
2
+ * Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and *
3
+ * Martin Renou *
4
+ * Copyright (c) QuantStack *
5
+ * Copyright (c) Serge Guelton *
6
+ * *
7
+ * Distributed under the terms of the BSD 3-Clause License. *
8
+ * *
9
+ * The full license is in the file LICENSE, distributed with this software. *
10
+ ****************************************************************************/
11
+
12
+ #ifndef XSIMD_FMA3_SSE_REGISTER_HPP
13
+ #define XSIMD_FMA3_SSE_REGISTER_HPP
14
+
15
+ #include "./xsimd_sse4_2_register.hpp"
16
+
17
+ namespace xsimd
18
+ {
19
+ template <typename arch>
20
+ struct fma3;
21
+
22
+ /**
23
+ * @ingroup architectures
24
+ *
25
+ * SSE4.2 + FMA instructions
26
+ */
27
+ template <>
28
+ struct fma3<sse4_2> : sse4_2
29
+ {
30
+ static constexpr bool supported() noexcept { return XSIMD_WITH_FMA3_SSE; }
31
+ static constexpr bool available() noexcept { return true; }
32
+ static constexpr char const* name() noexcept { return "fma3+sse4.2"; }
33
+ };
34
+
35
+ #if XSIMD_WITH_FMA3_SSE
36
+
37
+ #if !XSIMD_WITH_SSE4_2
38
+ #error "architecture inconsistency: fma3+sse4.2 requires sse4.2"
39
+ #endif
40
+
41
+ namespace types
42
+ {
43
+
44
+ XSIMD_DECLARE_SIMD_REGISTER_ALIAS(fma3<sse4_2>, sse4_2);
45
+
46
+ }
47
+ #endif
48
+
49
+ }
50
+ #endif
@@ -0,0 +1,50 @@
1
+ /***************************************************************************
2
+ * Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and *
3
+ * Martin Renou *
4
+ * Copyright (c) QuantStack *
5
+ * Copyright (c) Serge Guelton *
6
+ * *
7
+ * Distributed under the terms of the BSD 3-Clause License. *
8
+ * *
9
+ * The full license is in the file LICENSE, distributed with this software. *
10
+ ****************************************************************************/
11
+
12
+ #ifndef XSIMD_FMA4_REGISTER_HPP
13
+ #define XSIMD_FMA4_REGISTER_HPP
14
+
15
+ #include "./xsimd_sse4_2_register.hpp"
16
+
17
+ #if XSIMD_WITH_FMA4
18
+ #include <x86intrin.h>
19
+ #endif
20
+
21
+ namespace xsimd
22
+ {
23
+ /**
24
+ * @ingroup architectures
25
+ *
26
+ * SSE4.2 + FMA4 instructions
27
+ */
28
+ struct fma4 : sse4_2
29
+ {
30
+ static constexpr bool supported() noexcept { return XSIMD_WITH_FMA4; }
31
+ static constexpr bool available() noexcept { return true; }
32
+ static constexpr char const* name() noexcept { return "fma4"; }
33
+ };
34
+
35
+ #if XSIMD_WITH_FMA4
36
+
37
+ #if !XSIMD_WITH_SSE4_2
38
+ #error "architecture inconsistency: fma4 requires sse4.2"
39
+ #endif
40
+
41
+ namespace types
42
+ {
43
+
44
+ XSIMD_DECLARE_SIMD_REGISTER_ALIAS(fma4, sse4_2);
45
+
46
+ }
47
+ #endif
48
+
49
+ }
50
+ #endif
@@ -0,0 +1,55 @@
1
+ /***************************************************************************
2
+ * Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and *
3
+ * Martin Renou *
4
+ * Copyright (c) QuantStack *
5
+ * Copyright (c) Serge Guelton *
6
+ * *
7
+ * Distributed under the terms of the BSD 3-Clause License. *
8
+ * *
9
+ * The full license is in the file LICENSE, distributed with this software. *
10
+ ****************************************************************************/
11
+
12
+ #ifndef XSIMD_I8MM_NEON64_REGISTER_HPP
13
+ #define XSIMD_I8MM_NEON64_REGISTER_HPP
14
+
15
+ #include "./xsimd_neon64_register.hpp"
16
+
17
+ namespace xsimd
18
+ {
19
+ template <typename arch>
20
+ struct i8mm;
21
+
22
+ /**
23
+ * @ingroup architectures
24
+ *
25
+ * Neon64 + i8mm instructions
26
+ */
27
+ template <>
28
+ struct i8mm<neon64> : neon64
29
+ {
30
+ static constexpr bool supported() noexcept { return XSIMD_WITH_I8MM_NEON64; }
31
+ static constexpr bool available() noexcept { return true; }
32
+ static constexpr char const* name() noexcept { return "i8mm+neon64"; }
33
+ };
34
+
35
+ #if XSIMD_WITH_I8MM_NEON64
36
+
37
+ #if !XSIMD_WITH_NEON64
38
+ #error "architecture inconsistency: i8mm+neon64 requires neon64"
39
+ #endif
40
+
41
+ namespace types
42
+ {
43
+
44
+ XSIMD_DECLARE_SIMD_REGISTER_ALIAS(i8mm<neon64>, neon64);
45
+
46
+ template <class T>
47
+ struct get_bool_simd_register<T, i8mm<neon64>>
48
+ : detail::neon_bool_simd_register<T, i8mm<neon64>>
49
+ {
50
+ };
51
+ }
52
+ #endif
53
+
54
+ }
55
+ #endif
@@ -0,0 +1,55 @@
1
+ /***************************************************************************
2
+ * Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and *
3
+ * Martin Renou *
4
+ * Copyright (c) QuantStack *
5
+ * Copyright (c) Serge Guelton *
6
+ * *
7
+ * Distributed under the terms of the BSD 3-Clause License. *
8
+ * *
9
+ * The full license is in the file LICENSE, distributed with this software. *
10
+ ****************************************************************************/
11
+
12
+ #ifndef XSIMD_NEON64_REGISTER_HPP
13
+ #define XSIMD_NEON64_REGISTER_HPP
14
+
15
+ #include "xsimd_neon_register.hpp"
16
+
17
+ namespace xsimd
18
+ {
19
+ /**
20
+ * @ingroup architectures
21
+ *
22
+ * NEON instructions for arm64
23
+ */
24
+ struct neon64 : neon
25
+ {
26
+ static constexpr bool supported() noexcept { return XSIMD_WITH_NEON64; }
27
+ static constexpr bool available() noexcept { return true; }
28
+ static constexpr bool requires_alignment() noexcept { return true; }
29
+ static constexpr std::size_t alignment() noexcept { return 16; }
30
+ static constexpr char const* name() noexcept { return "arm64+neon"; }
31
+ };
32
+
33
+ #if XSIMD_WITH_NEON64
34
+
35
+ #if !XSIMD_WITH_NEON
36
+ #error "architecture inconsistency: neon64 requires neon"
37
+ #endif
38
+
39
+ namespace types
40
+ {
41
+ XSIMD_DECLARE_SIMD_REGISTER_ALIAS(neon64, neon);
42
+ XSIMD_DECLARE_SIMD_REGISTER(double, neon64, float64x2_t);
43
+
44
+ template <class T>
45
+ struct get_bool_simd_register<T, neon64>
46
+ : detail::neon_bool_simd_register<T, neon64>
47
+ {
48
+ };
49
+ }
50
+
51
+ #endif
52
+
53
+ }
54
+
55
+ #endif
@@ -0,0 +1,130 @@
1
+ /***************************************************************************
2
+ * Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and *
3
+ * Martin Renou *
4
+ * Copyright (c) QuantStack *
5
+ * Copyright (c) Serge Guelton *
6
+ * *
7
+ * Distributed under the terms of the BSD 3-Clause License. *
8
+ * *
9
+ * The full license is in the file LICENSE, distributed with this software. *
10
+ ****************************************************************************/
11
+
12
+ #ifndef XSIMD_NEON_REGISTER_HPP
13
+ #define XSIMD_NEON_REGISTER_HPP
14
+
15
+ #include "../config/xsimd_config.hpp"
16
+ #include "../utils/xsimd_type_traits.hpp"
17
+ #include "./xsimd_common_arch.hpp"
18
+ #include "./xsimd_register.hpp"
19
+
20
+ #if XSIMD_WITH_NEON
21
+ #if defined(_MSC_VER) && !defined(__clang__) && XSIMD_WITH_NEON64
22
+ #include <arm64_neon.h>
23
+ #else
24
+ #include <arm_neon.h>
25
+ #endif
26
+ #endif
27
+
28
+ namespace xsimd
29
+ {
30
+ /**
31
+ * @ingroup architectures
32
+ *
33
+ * NEON instructions for arm32
34
+ */
35
+ struct neon : common
36
+ {
37
+ static constexpr bool supported() noexcept { return XSIMD_WITH_NEON; }
38
+ static constexpr bool available() noexcept { return true; }
39
+ static constexpr bool requires_alignment() noexcept { return true; }
40
+ static constexpr std::size_t alignment() noexcept { return 16; }
41
+ static constexpr char const* name() noexcept { return "arm32+neon"; }
42
+ };
43
+
44
+ #if XSIMD_WITH_NEON
45
+ namespace types
46
+ {
47
+ namespace detail
48
+ {
49
+ template <size_t S>
50
+ struct neon_vector_type_impl;
51
+
52
+ template <>
53
+ struct neon_vector_type_impl<8>
54
+ {
55
+ using signed_type = int8x16_t;
56
+ using unsigned_type = uint8x16_t;
57
+ };
58
+
59
+ template <>
60
+ struct neon_vector_type_impl<16>
61
+ {
62
+ using signed_type = int16x8_t;
63
+ using unsigned_type = uint16x8_t;
64
+ };
65
+
66
+ template <>
67
+ struct neon_vector_type_impl<32>
68
+ {
69
+ using signed_type = int32x4_t;
70
+ using unsigned_type = uint32x4_t;
71
+ };
72
+
73
+ template <>
74
+ struct neon_vector_type_impl<64>
75
+ {
76
+ using signed_type = int64x2_t;
77
+ using unsigned_type = uint64x2_t;
78
+ };
79
+
80
+ template <class T>
81
+ using signed_neon_vector_type = typename neon_vector_type_impl<8 * sizeof(T)>::signed_type;
82
+
83
+ template <class T>
84
+ using unsigned_neon_vector_type = typename neon_vector_type_impl<8 * sizeof(T)>::unsigned_type;
85
+
86
+ template <class T>
87
+ using neon_vector_type = std::conditional_t<std::is_signed<T>::value,
88
+ signed_neon_vector_type<T>,
89
+ unsigned_neon_vector_type<T>>;
90
+
91
+ using char_neon_vector_type = std::conditional_t<std::is_signed<char>::value,
92
+ signed_neon_vector_type<char>,
93
+ unsigned_neon_vector_type<char>>;
94
+ }
95
+
96
+ XSIMD_DECLARE_SIMD_REGISTER(signed char, neon, detail::neon_vector_type<signed char>);
97
+ XSIMD_DECLARE_SIMD_REGISTER(unsigned char, neon, detail::neon_vector_type<unsigned char>);
98
+ XSIMD_DECLARE_SIMD_REGISTER(char, neon, detail::char_neon_vector_type);
99
+ XSIMD_DECLARE_SIMD_REGISTER(short, neon, detail::neon_vector_type<short>);
100
+ XSIMD_DECLARE_SIMD_REGISTER(unsigned short, neon, detail::neon_vector_type<unsigned short>);
101
+ XSIMD_DECLARE_SIMD_REGISTER(int, neon, detail::neon_vector_type<int>);
102
+ XSIMD_DECLARE_SIMD_REGISTER(unsigned int, neon, detail::neon_vector_type<unsigned int>);
103
+ XSIMD_DECLARE_SIMD_REGISTER(long int, neon, detail::neon_vector_type<long int>);
104
+ XSIMD_DECLARE_SIMD_REGISTER(unsigned long int, neon, detail::neon_vector_type<unsigned long int>);
105
+ XSIMD_DECLARE_SIMD_REGISTER(long long int, neon, detail::neon_vector_type<long long int>);
106
+ XSIMD_DECLARE_SIMD_REGISTER(unsigned long long int, neon, detail::neon_vector_type<unsigned long long int>);
107
+ XSIMD_DECLARE_SIMD_REGISTER(float, neon, float32x4_t);
108
+ XSIMD_DECLARE_INVALID_SIMD_REGISTER(double, neon);
109
+
110
+ namespace detail
111
+ {
112
+ template <class T, class A>
113
+ struct neon_bool_simd_register
114
+ {
115
+ using type = simd_register<xsimd::sized_uint_t<sizeof(T)>, A>;
116
+ };
117
+ }
118
+
119
+ template <class T>
120
+ struct get_bool_simd_register<T, neon>
121
+ : detail::neon_bool_simd_register<T, neon>
122
+ {
123
+ };
124
+
125
+ }
126
+ #endif
127
+
128
+ }
129
+
130
+ #endif
@@ -0,0 +1,96 @@
1
+ /***************************************************************************
2
+ * Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and *
3
+ * Martin Renou *
4
+ * Copyright (c) QuantStack *
5
+ * Copyright (c) Serge Guelton *
6
+ * *
7
+ * Distributed under the terms of the BSD 3-Clause License. *
8
+ * *
9
+ * The full license is in the file LICENSE, distributed with this software. *
10
+ ****************************************************************************/
11
+
12
+ #ifndef XSIMD_REGISTER_HPP
13
+ #define XSIMD_REGISTER_HPP
14
+
15
+ #include <type_traits>
16
+
17
+ #include "../config/xsimd_macros.hpp"
18
+
19
+ namespace xsimd
20
+ {
21
+ namespace types
22
+ {
23
+ template <class T, class A>
24
+ struct has_simd_register : std::false_type
25
+ {
26
+ };
27
+
28
+ template <class T, class Arch>
29
+ struct simd_register
30
+ {
31
+ struct register_type
32
+ {
33
+ };
34
+ };
35
+
36
+ #define XSIMD_DECLARE_SIMD_REGISTER(SCALAR_TYPE, ISA, VECTOR_TYPE) \
37
+ template <> \
38
+ struct simd_register<SCALAR_TYPE, ISA> \
39
+ { \
40
+ using register_type = VECTOR_TYPE; \
41
+ register_type data; \
42
+ XSIMD_INLINE operator register_type() const noexcept \
43
+ { \
44
+ return data; \
45
+ } \
46
+ }; \
47
+ template <> \
48
+ struct has_simd_register<SCALAR_TYPE, ISA> : std::true_type \
49
+ { \
50
+ }
51
+
52
+ #define XSIMD_DECLARE_INVALID_SIMD_REGISTER(SCALAR_TYPE, ISA) \
53
+ template <> \
54
+ struct has_simd_register<SCALAR_TYPE, ISA> : std::false_type \
55
+ { \
56
+ }
57
+
58
+ #define XSIMD_DECLARE_SIMD_REGISTER_ALIAS(ISA, ISA_BASE) \
59
+ template <class T> \
60
+ struct simd_register<T, ISA> : simd_register<T, ISA_BASE> \
61
+ { \
62
+ using register_type = typename simd_register<T, ISA_BASE>::register_type; \
63
+ simd_register(register_type reg) noexcept \
64
+ : simd_register<T, ISA_BASE> { reg } \
65
+ { \
66
+ } \
67
+ simd_register() = default; \
68
+ }; \
69
+ template <class T> \
70
+ struct has_simd_register<T, ISA> : has_simd_register<T, ISA_BASE> \
71
+ { \
72
+ }
73
+
74
+ template <class T, class Arch>
75
+ struct get_bool_simd_register
76
+ {
77
+ using type = simd_register<T, Arch>;
78
+ };
79
+
80
+ template <class T, class Arch>
81
+ using get_bool_simd_register_t = typename get_bool_simd_register<T, Arch>::type;
82
+ }
83
+
84
+ namespace kernel
85
+ {
86
+ template <class A>
87
+ // makes requires_arch equal to A const&, using type_traits functions
88
+ using requires_arch = std::add_lvalue_reference_t<std::add_const_t<A>>;
89
+ template <class T>
90
+ struct convert
91
+ {
92
+ };
93
+ }
94
+ }
95
+
96
+ #endif