sequenzo 0.1.24__cp311-cp311-macosx_10_9_x86_64.whl

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.

Potentially problematic release.


This version of sequenzo might be problematic. Click here for more details.

Files changed (264) hide show
  1. _sequenzo_fastcluster.cpython-311-darwin.so +0 -0
  2. sequenzo/__init__.py +240 -0
  3. sequenzo/big_data/__init__.py +12 -0
  4. sequenzo/big_data/clara/__init__.py +26 -0
  5. sequenzo/big_data/clara/clara.py +474 -0
  6. sequenzo/big_data/clara/utils/__init__.py +27 -0
  7. sequenzo/big_data/clara/utils/aggregatecases.py +92 -0
  8. sequenzo/big_data/clara/utils/davies_bouldin.py +91 -0
  9. sequenzo/big_data/clara/utils/get_weighted_diss.cpython-311-darwin.so +0 -0
  10. sequenzo/big_data/clara/utils/wfcmdd.py +205 -0
  11. sequenzo/big_data/clara/visualization.py +88 -0
  12. sequenzo/clustering/KMedoids.py +178 -0
  13. sequenzo/clustering/__init__.py +30 -0
  14. sequenzo/clustering/clustering_c_code.cpython-311-darwin.so +0 -0
  15. sequenzo/clustering/hierarchical_clustering.py +1256 -0
  16. sequenzo/clustering/sequenzo_fastcluster/fastcluster.py +495 -0
  17. sequenzo/clustering/sequenzo_fastcluster/src/fastcluster.cpp +1877 -0
  18. sequenzo/clustering/sequenzo_fastcluster/src/fastcluster_python.cpp +1264 -0
  19. sequenzo/clustering/src/KMedoid.cpp +263 -0
  20. sequenzo/clustering/src/PAM.cpp +237 -0
  21. sequenzo/clustering/src/PAMonce.cpp +265 -0
  22. sequenzo/clustering/src/cluster_quality.cpp +496 -0
  23. sequenzo/clustering/src/cluster_quality.h +128 -0
  24. sequenzo/clustering/src/cluster_quality_backup.cpp +570 -0
  25. sequenzo/clustering/src/module.cpp +228 -0
  26. sequenzo/clustering/src/weightedinertia.cpp +111 -0
  27. sequenzo/clustering/utils/__init__.py +27 -0
  28. sequenzo/clustering/utils/disscenter.py +122 -0
  29. sequenzo/data_preprocessing/__init__.py +20 -0
  30. sequenzo/data_preprocessing/helpers.py +256 -0
  31. sequenzo/datasets/__init__.py +41 -0
  32. sequenzo/datasets/biofam.csv +2001 -0
  33. sequenzo/datasets/biofam_child_domain.csv +2001 -0
  34. sequenzo/datasets/biofam_left_domain.csv +2001 -0
  35. sequenzo/datasets/biofam_married_domain.csv +2001 -0
  36. sequenzo/datasets/chinese_colonial_territories.csv +12 -0
  37. sequenzo/datasets/country_co2_emissions.csv +194 -0
  38. sequenzo/datasets/country_co2_emissions_global_deciles.csv +195 -0
  39. sequenzo/datasets/country_co2_emissions_global_quintiles.csv +195 -0
  40. sequenzo/datasets/country_co2_emissions_local_deciles.csv +195 -0
  41. sequenzo/datasets/country_co2_emissions_local_quintiles.csv +195 -0
  42. sequenzo/datasets/country_gdp_per_capita.csv +194 -0
  43. sequenzo/datasets/mvad.csv +713 -0
  44. sequenzo/datasets/pairfam_family.csv +1867 -0
  45. sequenzo/datasets/polyadic_samplec1.csv +61 -0
  46. sequenzo/datasets/polyadic_samplep1.csv +61 -0
  47. sequenzo/datasets/polyadic_seqc1.csv +61 -0
  48. sequenzo/datasets/polyadic_seqp1.csv +61 -0
  49. sequenzo/define_sequence_data.py +609 -0
  50. sequenzo/dissimilarity_measures/__init__.py +31 -0
  51. sequenzo/dissimilarity_measures/c_code.cpython-311-darwin.so +0 -0
  52. sequenzo/dissimilarity_measures/get_distance_matrix.py +702 -0
  53. sequenzo/dissimilarity_measures/get_substitution_cost_matrix.py +241 -0
  54. sequenzo/dissimilarity_measures/src/DHDdistance.cpp +148 -0
  55. sequenzo/dissimilarity_measures/src/LCPdistance.cpp +114 -0
  56. sequenzo/dissimilarity_measures/src/OMdistance.cpp +247 -0
  57. sequenzo/dissimilarity_measures/src/OMspellDistance.cpp +281 -0
  58. sequenzo/dissimilarity_measures/src/__init__.py +0 -0
  59. sequenzo/dissimilarity_measures/src/dist2matrix.cpp +63 -0
  60. sequenzo/dissimilarity_measures/src/dp_utils.h +160 -0
  61. sequenzo/dissimilarity_measures/src/module.cpp +34 -0
  62. sequenzo/dissimilarity_measures/src/setup.py +30 -0
  63. sequenzo/dissimilarity_measures/src/utils.h +25 -0
  64. sequenzo/dissimilarity_measures/src/xsimd/.github/cmake-test/main.cpp +6 -0
  65. sequenzo/dissimilarity_measures/src/xsimd/benchmark/main.cpp +159 -0
  66. sequenzo/dissimilarity_measures/src/xsimd/benchmark/xsimd_benchmark.hpp +565 -0
  67. sequenzo/dissimilarity_measures/src/xsimd/docs/source/conf.py +37 -0
  68. sequenzo/dissimilarity_measures/src/xsimd/examples/mandelbrot.cpp +330 -0
  69. sequenzo/dissimilarity_measures/src/xsimd/examples/pico_bench.hpp +246 -0
  70. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_arithmetic.hpp +266 -0
  71. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_complex.hpp +112 -0
  72. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_details.hpp +323 -0
  73. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_logical.hpp +218 -0
  74. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_math.hpp +2583 -0
  75. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_memory.hpp +880 -0
  76. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_rounding.hpp +72 -0
  77. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_swizzle.hpp +174 -0
  78. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_trigo.hpp +978 -0
  79. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx.hpp +1924 -0
  80. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx2.hpp +1144 -0
  81. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512bw.hpp +656 -0
  82. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512cd.hpp +28 -0
  83. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512dq.hpp +244 -0
  84. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512er.hpp +20 -0
  85. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512f.hpp +2650 -0
  86. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512ifma.hpp +20 -0
  87. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512pf.hpp +20 -0
  88. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512vbmi.hpp +77 -0
  89. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512vbmi2.hpp +131 -0
  90. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512vnni_avx512bw.hpp +20 -0
  91. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512vnni_avx512vbmi2.hpp +20 -0
  92. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avxvnni.hpp +20 -0
  93. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_common.hpp +24 -0
  94. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_common_fwd.hpp +77 -0
  95. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_constants.hpp +393 -0
  96. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_emulated.hpp +788 -0
  97. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_fma3_avx.hpp +93 -0
  98. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_fma3_avx2.hpp +46 -0
  99. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_fma3_sse.hpp +97 -0
  100. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_fma4.hpp +92 -0
  101. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_i8mm_neon64.hpp +17 -0
  102. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_isa.hpp +142 -0
  103. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_neon.hpp +3142 -0
  104. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_neon64.hpp +1543 -0
  105. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_rvv.hpp +1513 -0
  106. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_scalar.hpp +1260 -0
  107. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_sse2.hpp +2024 -0
  108. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_sse3.hpp +67 -0
  109. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_sse4_1.hpp +339 -0
  110. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_sse4_2.hpp +44 -0
  111. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_ssse3.hpp +186 -0
  112. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_sve.hpp +1155 -0
  113. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_vsx.hpp +892 -0
  114. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_wasm.hpp +1780 -0
  115. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/config/xsimd_arch.hpp +240 -0
  116. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/config/xsimd_config.hpp +484 -0
  117. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/config/xsimd_cpuid.hpp +269 -0
  118. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/config/xsimd_inline.hpp +27 -0
  119. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/math/xsimd_rem_pio2.hpp +719 -0
  120. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/memory/xsimd_aligned_allocator.hpp +349 -0
  121. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/memory/xsimd_alignment.hpp +91 -0
  122. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_all_registers.hpp +55 -0
  123. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_api.hpp +2765 -0
  124. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx2_register.hpp +44 -0
  125. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512bw_register.hpp +51 -0
  126. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512cd_register.hpp +51 -0
  127. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512dq_register.hpp +51 -0
  128. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512er_register.hpp +51 -0
  129. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512f_register.hpp +77 -0
  130. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512ifma_register.hpp +51 -0
  131. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512pf_register.hpp +51 -0
  132. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512vbmi2_register.hpp +51 -0
  133. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512vbmi_register.hpp +51 -0
  134. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512vnni_avx512bw_register.hpp +54 -0
  135. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512vnni_avx512vbmi2_register.hpp +53 -0
  136. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx_register.hpp +64 -0
  137. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avxvnni_register.hpp +44 -0
  138. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_batch.hpp +1524 -0
  139. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_batch_constant.hpp +300 -0
  140. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_common_arch.hpp +47 -0
  141. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_emulated_register.hpp +80 -0
  142. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_fma3_avx2_register.hpp +50 -0
  143. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_fma3_avx_register.hpp +50 -0
  144. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_fma3_sse_register.hpp +50 -0
  145. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_fma4_register.hpp +50 -0
  146. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_i8mm_neon64_register.hpp +55 -0
  147. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_neon64_register.hpp +55 -0
  148. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_neon_register.hpp +154 -0
  149. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_register.hpp +94 -0
  150. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_rvv_register.hpp +506 -0
  151. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_sse2_register.hpp +59 -0
  152. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_sse3_register.hpp +49 -0
  153. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_sse4_1_register.hpp +48 -0
  154. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_sse4_2_register.hpp +48 -0
  155. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_ssse3_register.hpp +48 -0
  156. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_sve_register.hpp +156 -0
  157. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_traits.hpp +337 -0
  158. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_utils.hpp +536 -0
  159. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_vsx_register.hpp +77 -0
  160. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_wasm_register.hpp +59 -0
  161. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/xsimd.hpp +75 -0
  162. sequenzo/dissimilarity_measures/src/xsimd/test/architectures/dummy.cpp +7 -0
  163. sequenzo/dissimilarity_measures/src/xsimd/test/doc/explicit_use_of_an_instruction_set.cpp +13 -0
  164. sequenzo/dissimilarity_measures/src/xsimd/test/doc/explicit_use_of_an_instruction_set_mean.cpp +24 -0
  165. sequenzo/dissimilarity_measures/src/xsimd/test/doc/explicit_use_of_an_instruction_set_mean_aligned.cpp +25 -0
  166. sequenzo/dissimilarity_measures/src/xsimd/test/doc/explicit_use_of_an_instruction_set_mean_arch_independent.cpp +28 -0
  167. sequenzo/dissimilarity_measures/src/xsimd/test/doc/explicit_use_of_an_instruction_set_mean_tag_dispatch.cpp +25 -0
  168. sequenzo/dissimilarity_measures/src/xsimd/test/doc/manipulating_abstract_batches.cpp +7 -0
  169. sequenzo/dissimilarity_measures/src/xsimd/test/doc/manipulating_parametric_batches.cpp +8 -0
  170. sequenzo/dissimilarity_measures/src/xsimd/test/doc/sum.hpp +31 -0
  171. sequenzo/dissimilarity_measures/src/xsimd/test/doc/sum_avx2.cpp +3 -0
  172. sequenzo/dissimilarity_measures/src/xsimd/test/doc/sum_sse2.cpp +3 -0
  173. sequenzo/dissimilarity_measures/src/xsimd/test/doc/writing_vectorized_code.cpp +11 -0
  174. sequenzo/dissimilarity_measures/src/xsimd/test/main.cpp +31 -0
  175. sequenzo/dissimilarity_measures/src/xsimd/test/test_api.cpp +230 -0
  176. sequenzo/dissimilarity_measures/src/xsimd/test/test_arch.cpp +217 -0
  177. sequenzo/dissimilarity_measures/src/xsimd/test/test_basic_math.cpp +183 -0
  178. sequenzo/dissimilarity_measures/src/xsimd/test/test_batch.cpp +1049 -0
  179. sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_bool.cpp +508 -0
  180. sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_cast.cpp +409 -0
  181. sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_complex.cpp +712 -0
  182. sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_constant.cpp +286 -0
  183. sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_float.cpp +141 -0
  184. sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_int.cpp +365 -0
  185. sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_manip.cpp +308 -0
  186. sequenzo/dissimilarity_measures/src/xsimd/test/test_bitwise_cast.cpp +222 -0
  187. sequenzo/dissimilarity_measures/src/xsimd/test/test_complex_exponential.cpp +226 -0
  188. sequenzo/dissimilarity_measures/src/xsimd/test/test_complex_hyperbolic.cpp +183 -0
  189. sequenzo/dissimilarity_measures/src/xsimd/test/test_complex_power.cpp +265 -0
  190. sequenzo/dissimilarity_measures/src/xsimd/test/test_complex_trigonometric.cpp +236 -0
  191. sequenzo/dissimilarity_measures/src/xsimd/test/test_conversion.cpp +248 -0
  192. sequenzo/dissimilarity_measures/src/xsimd/test/test_custom_default_arch.cpp +28 -0
  193. sequenzo/dissimilarity_measures/src/xsimd/test/test_error_gamma.cpp +170 -0
  194. sequenzo/dissimilarity_measures/src/xsimd/test/test_explicit_batch_instantiation.cpp +32 -0
  195. sequenzo/dissimilarity_measures/src/xsimd/test/test_exponential.cpp +202 -0
  196. sequenzo/dissimilarity_measures/src/xsimd/test/test_extract_pair.cpp +92 -0
  197. sequenzo/dissimilarity_measures/src/xsimd/test/test_fp_manipulation.cpp +77 -0
  198. sequenzo/dissimilarity_measures/src/xsimd/test/test_gnu_source.cpp +30 -0
  199. sequenzo/dissimilarity_measures/src/xsimd/test/test_hyperbolic.cpp +167 -0
  200. sequenzo/dissimilarity_measures/src/xsimd/test/test_load_store.cpp +304 -0
  201. sequenzo/dissimilarity_measures/src/xsimd/test/test_memory.cpp +61 -0
  202. sequenzo/dissimilarity_measures/src/xsimd/test/test_poly_evaluation.cpp +64 -0
  203. sequenzo/dissimilarity_measures/src/xsimd/test/test_power.cpp +184 -0
  204. sequenzo/dissimilarity_measures/src/xsimd/test/test_rounding.cpp +199 -0
  205. sequenzo/dissimilarity_measures/src/xsimd/test/test_select.cpp +101 -0
  206. sequenzo/dissimilarity_measures/src/xsimd/test/test_shuffle.cpp +760 -0
  207. sequenzo/dissimilarity_measures/src/xsimd/test/test_sum.cpp +4 -0
  208. sequenzo/dissimilarity_measures/src/xsimd/test/test_sum.hpp +34 -0
  209. sequenzo/dissimilarity_measures/src/xsimd/test/test_traits.cpp +172 -0
  210. sequenzo/dissimilarity_measures/src/xsimd/test/test_trigonometric.cpp +208 -0
  211. sequenzo/dissimilarity_measures/src/xsimd/test/test_utils.hpp +611 -0
  212. sequenzo/dissimilarity_measures/src/xsimd/test/test_wasm/test_wasm_playwright.py +123 -0
  213. sequenzo/dissimilarity_measures/src/xsimd/test/test_xsimd_api.cpp +1460 -0
  214. sequenzo/dissimilarity_measures/utils/__init__.py +16 -0
  215. sequenzo/dissimilarity_measures/utils/get_LCP_length_for_2_seq.py +44 -0
  216. sequenzo/dissimilarity_measures/utils/get_sm_trate_substitution_cost_matrix.cpython-311-darwin.so +0 -0
  217. sequenzo/dissimilarity_measures/utils/seqconc.cpython-311-darwin.so +0 -0
  218. sequenzo/dissimilarity_measures/utils/seqdss.cpython-311-darwin.so +0 -0
  219. sequenzo/dissimilarity_measures/utils/seqdur.cpython-311-darwin.so +0 -0
  220. sequenzo/dissimilarity_measures/utils/seqlength.cpython-311-darwin.so +0 -0
  221. sequenzo/multidomain/__init__.py +23 -0
  222. sequenzo/multidomain/association_between_domains.py +311 -0
  223. sequenzo/multidomain/cat.py +431 -0
  224. sequenzo/multidomain/combt.py +519 -0
  225. sequenzo/multidomain/dat.py +89 -0
  226. sequenzo/multidomain/idcd.py +139 -0
  227. sequenzo/multidomain/linked_polyad.py +292 -0
  228. sequenzo/openmp_setup.py +233 -0
  229. sequenzo/prefix_tree/__init__.py +43 -0
  230. sequenzo/prefix_tree/individual_level_indicators.py +1274 -0
  231. sequenzo/prefix_tree/system_level_indicators.py +465 -0
  232. sequenzo/prefix_tree/utils.py +54 -0
  233. sequenzo/sequence_characteristics/__init__.py +40 -0
  234. sequenzo/sequence_characteristics/complexity_index.py +49 -0
  235. sequenzo/sequence_characteristics/overall_cross_sectional_entropy.py +220 -0
  236. sequenzo/sequence_characteristics/plot_characteristics.py +593 -0
  237. sequenzo/sequence_characteristics/simple_characteristics.py +311 -0
  238. sequenzo/sequence_characteristics/state_frequencies_and_entropy_per_sequence.py +39 -0
  239. sequenzo/sequence_characteristics/turbulence.py +155 -0
  240. sequenzo/sequence_characteristics/variance_of_spell_durations.py +86 -0
  241. sequenzo/sequence_characteristics/within_sequence_entropy.py +43 -0
  242. sequenzo/suffix_tree/__init__.py +48 -0
  243. sequenzo/suffix_tree/individual_level_indicators.py +1638 -0
  244. sequenzo/suffix_tree/system_level_indicators.py +456 -0
  245. sequenzo/suffix_tree/utils.py +56 -0
  246. sequenzo/visualization/__init__.py +29 -0
  247. sequenzo/visualization/plot_mean_time.py +194 -0
  248. sequenzo/visualization/plot_modal_state.py +276 -0
  249. sequenzo/visualization/plot_most_frequent_sequences.py +147 -0
  250. sequenzo/visualization/plot_relative_frequency.py +404 -0
  251. sequenzo/visualization/plot_sequence_index.py +951 -0
  252. sequenzo/visualization/plot_single_medoid.py +153 -0
  253. sequenzo/visualization/plot_state_distribution.py +627 -0
  254. sequenzo/visualization/plot_transition_matrix.py +190 -0
  255. sequenzo/visualization/utils/__init__.py +23 -0
  256. sequenzo/visualization/utils/utils.py +310 -0
  257. sequenzo/with_event_history_analysis/__init__.py +35 -0
  258. sequenzo/with_event_history_analysis/sequence_analysis_multi_state_model.py +850 -0
  259. sequenzo/with_event_history_analysis/sequence_history_analysis.py +283 -0
  260. sequenzo-0.1.24.dist-info/METADATA +255 -0
  261. sequenzo-0.1.24.dist-info/RECORD +264 -0
  262. sequenzo-0.1.24.dist-info/WHEEL +5 -0
  263. sequenzo-0.1.24.dist-info/licenses/LICENSE +28 -0
  264. sequenzo-0.1.24.dist-info/top_level.txt +2 -0
@@ -0,0 +1,240 @@
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_ARCH_HPP
13
+ #define XSIMD_ARCH_HPP
14
+
15
+ #include <initializer_list>
16
+ #include <type_traits>
17
+ #include <utility>
18
+
19
+ #include "../types/xsimd_all_registers.hpp"
20
+ #include "./xsimd_config.hpp"
21
+ #include "./xsimd_cpuid.hpp"
22
+
23
+ namespace xsimd
24
+ {
25
+
26
+ /**
27
+ * @ingroup architectures
28
+ *
29
+ * Dummy architectures that only appears in a list of architecture when no
30
+ * other architecture has been detected.
31
+ */
32
+ struct unavailable
33
+ {
34
+ static constexpr bool supported() noexcept { return false; }
35
+ static constexpr bool available() noexcept { return false; }
36
+ static constexpr std::size_t alignment() noexcept { return 0; }
37
+ static constexpr bool requires_alignment() noexcept { return false; }
38
+ static constexpr char const* name() noexcept { return "<none>"; }
39
+ };
40
+
41
+ namespace detail
42
+ {
43
+ // Checks whether T appears in Tys.
44
+ template <class T, class... Tys>
45
+ struct contains;
46
+
47
+ template <class T>
48
+ struct contains<T> : std::false_type
49
+ {
50
+ };
51
+
52
+ template <class T, class Ty, class... Tys>
53
+ struct contains<T, Ty, Tys...>
54
+ : std::conditional<std::is_same<Ty, T>::value, std::true_type,
55
+ contains<T, Tys...>>::type
56
+ {
57
+ };
58
+
59
+ template <typename T>
60
+ XSIMD_INLINE constexpr T max_of(T value) noexcept
61
+ {
62
+ return value;
63
+ }
64
+
65
+ template <typename T, typename... Ts>
66
+ XSIMD_INLINE constexpr T max_of(T head0, T head1, Ts... tail) noexcept
67
+ {
68
+ return max_of((head0 > head1 ? head0 : head1), tail...);
69
+ }
70
+
71
+ template <typename... Ts>
72
+ struct head;
73
+
74
+ template <typename T, typename... Ts>
75
+ struct head<T, Ts...>
76
+ {
77
+ using type = T;
78
+ };
79
+
80
+ template <>
81
+ struct head<>
82
+ {
83
+ using type = unavailable;
84
+ };
85
+
86
+ } // namespace detail
87
+
88
+ // An arch_list is a list of architectures.
89
+ template <class... Archs>
90
+ struct arch_list
91
+ {
92
+ using best = typename detail::head<Archs...>::type;
93
+
94
+ template <class Arch>
95
+ using add = arch_list<Archs..., Arch>;
96
+
97
+ template <class... OtherArchs>
98
+ using extend = arch_list<Archs..., OtherArchs...>;
99
+
100
+ template <class Arch>
101
+ static constexpr bool contains() noexcept
102
+ {
103
+ return detail::contains<Arch, Archs...>::value;
104
+ }
105
+
106
+ template <class F>
107
+ static XSIMD_INLINE void for_each(F&& f) noexcept
108
+ {
109
+ (void)std::initializer_list<bool> { (f(Archs {}), true)... };
110
+ }
111
+
112
+ static constexpr std::size_t alignment() noexcept
113
+ {
114
+ // all alignments are a power of two
115
+ return detail::max_of(Archs::alignment()..., static_cast<size_t>(0));
116
+ }
117
+ };
118
+
119
+ namespace detail
120
+ {
121
+
122
+ // Filter archlists Archs, picking only supported archs and adding
123
+ // them to L.
124
+ template <class L, class... Archs>
125
+ struct supported_helper;
126
+
127
+ template <class L>
128
+ struct supported_helper<L, arch_list<>>
129
+ {
130
+ using type = L;
131
+ };
132
+
133
+ template <class L, class Arch, class... Archs>
134
+ struct supported_helper<L, arch_list<Arch, Archs...>>
135
+ : supported_helper<
136
+ typename std::conditional<Arch::supported(),
137
+ typename L::template add<Arch>, L>::type,
138
+ arch_list<Archs...>>
139
+ {
140
+ };
141
+
142
+ template <class... Archs>
143
+ struct supported : supported_helper<arch_list<>, Archs...>
144
+ {
145
+ };
146
+
147
+ // Joins all arch_list Archs in a single arch_list.
148
+ template <class... Archs>
149
+ struct join;
150
+
151
+ template <class Arch>
152
+ struct join<Arch>
153
+ {
154
+ using type = Arch;
155
+ };
156
+
157
+ template <class Arch, class... Archs, class... Args>
158
+ struct join<Arch, arch_list<Archs...>, Args...>
159
+ : join<typename Arch::template extend<Archs...>, Args...>
160
+ {
161
+ };
162
+ } // namespace detail
163
+
164
+ using all_x86_architectures = arch_list<
165
+ avx512vnni<avx512vbmi2>, avx512vbmi2, avx512vbmi, avx512ifma, avx512pf, avx512vnni<avx512bw>, avx512bw, avx512er, avx512dq, avx512cd, avx512f,
166
+ avxvnni, fma3<avx2>, avx2, fma3<avx>, avx, fma4, fma3<sse4_2>,
167
+ sse4_2, sse4_1, /*sse4a,*/ ssse3, sse3, sse2>;
168
+
169
+ using all_sve_architectures = arch_list<detail::sve<512>, detail::sve<256>, detail::sve<128>>;
170
+ using all_rvv_architectures = arch_list<detail::rvv<512>, detail::rvv<256>, detail::rvv<128>>;
171
+ using all_arm_architectures = typename detail::join<all_sve_architectures, arch_list<i8mm<neon64>, neon64, neon>>::type;
172
+ using all_power_architectures = arch_list<vsx>;
173
+ using all_riscv_architectures = all_rvv_architectures;
174
+ using all_wasm_architectures = arch_list<wasm>;
175
+ using all_architectures = typename detail::join<all_power_architectures, all_riscv_architectures, all_wasm_architectures, all_arm_architectures, all_x86_architectures>::type;
176
+
177
+ using supported_architectures = typename detail::supported<all_architectures>::type;
178
+
179
+ using x86_arch = typename detail::supported<all_x86_architectures>::type::best;
180
+ using arm_arch = typename detail::supported<all_arm_architectures>::type::best;
181
+ using power_arch = typename detail::supported<all_power_architectures>::type::best;
182
+ using riscv_arch = typename detail::supported<all_riscv_architectures>::type::best;
183
+ using best_arch = typename supported_architectures::best;
184
+
185
+ #ifdef XSIMD_DEFAULT_ARCH
186
+ using default_arch = XSIMD_DEFAULT_ARCH;
187
+ #else
188
+ using default_arch = best_arch;
189
+ #endif
190
+
191
+ namespace detail
192
+ {
193
+ template <class F, class ArchList>
194
+ class dispatcher
195
+ {
196
+
197
+ const decltype(available_architectures()) availables_archs;
198
+ F functor;
199
+
200
+ template <class Arch, class... Tys>
201
+ XSIMD_INLINE auto walk_archs(arch_list<Arch>, Tys&&... args) noexcept -> decltype(functor(Arch {}, std::forward<Tys>(args)...))
202
+ {
203
+ assert(Arch::available() && "At least one arch must be supported during dispatch");
204
+ return functor(Arch {}, std::forward<Tys>(args)...);
205
+ }
206
+
207
+ template <class Arch, class ArchNext, class... Archs, class... Tys>
208
+ XSIMD_INLINE auto walk_archs(arch_list<Arch, ArchNext, Archs...>, Tys&&... args) noexcept -> decltype(functor(Arch {}, std::forward<Tys>(args)...))
209
+ {
210
+ if (availables_archs.has(Arch {}))
211
+ return functor(Arch {}, std::forward<Tys>(args)...);
212
+ else
213
+ return walk_archs(arch_list<ArchNext, Archs...> {}, std::forward<Tys>(args)...);
214
+ }
215
+
216
+ public:
217
+ XSIMD_INLINE dispatcher(F f) noexcept
218
+ : availables_archs(available_architectures())
219
+ , functor(f)
220
+ {
221
+ }
222
+
223
+ template <class... Tys>
224
+ XSIMD_INLINE auto operator()(Tys&&... args) noexcept -> decltype(functor(default_arch {}, std::forward<Tys>(args)...))
225
+ {
226
+ return walk_archs(ArchList {}, std::forward<Tys>(args)...);
227
+ }
228
+ };
229
+ }
230
+
231
+ // Generic function dispatch, à la ifunc
232
+ template <class ArchList = supported_architectures, class F>
233
+ XSIMD_INLINE detail::dispatcher<F, ArchList> dispatch(F&& f) noexcept
234
+ {
235
+ return { std::forward<F>(f) };
236
+ }
237
+
238
+ } // namespace xsimd
239
+
240
+ #endif
@@ -0,0 +1,484 @@
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_CONFIG_HPP
13
+ #define XSIMD_CONFIG_HPP
14
+
15
+ #define XSIMD_VERSION_MAJOR 13
16
+ #define XSIMD_VERSION_MINOR 2
17
+ #define XSIMD_VERSION_PATCH 0
18
+
19
+ /**
20
+ * high level free functions
21
+ *
22
+ * @defgroup xsimd_config_macro Instruction Set Detection
23
+ */
24
+
25
+ /**
26
+ * @ingroup xsimd_config_macro
27
+ *
28
+ * Set to 1 if SSE2 is available at compile-time, to 0 otherwise.
29
+ */
30
+ #ifdef __SSE2__
31
+ #define XSIMD_WITH_SSE2 1
32
+ #else
33
+ #define XSIMD_WITH_SSE2 0
34
+ #endif
35
+
36
+ /**
37
+ * @ingroup xsimd_config_macro
38
+ *
39
+ * Set to 1 if SSE3 is available at compile-time, to 0 otherwise.
40
+ */
41
+ #ifdef __SSE3__
42
+ #define XSIMD_WITH_SSE3 1
43
+ #else
44
+ #define XSIMD_WITH_SSE3 0
45
+ #endif
46
+
47
+ /**
48
+ * @ingroup xsimd_config_macro
49
+ *
50
+ * Set to 1 if SSSE3 is available at compile-time, to 0 otherwise.
51
+ */
52
+ #ifdef __SSSE3__
53
+ #define XSIMD_WITH_SSSE3 1
54
+ #else
55
+ #define XSIMD_WITH_SSSE3 0
56
+ #endif
57
+
58
+ /**
59
+ * @ingroup xsimd_config_macro
60
+ *
61
+ * Set to 1 if SSE4.1 is available at compile-time, to 0 otherwise.
62
+ */
63
+ #ifdef __SSE4_1__
64
+ #define XSIMD_WITH_SSE4_1 1
65
+ #else
66
+ #define XSIMD_WITH_SSE4_1 0
67
+ #endif
68
+
69
+ /**
70
+ * @ingroup xsimd_config_macro
71
+ *
72
+ * Set to 1 if SSE4.2 is available at compile-time, to 0 otherwise.
73
+ */
74
+ #ifdef __SSE4_2__
75
+ #define XSIMD_WITH_SSE4_2 1
76
+ #else
77
+ #define XSIMD_WITH_SSE4_2 0
78
+ #endif
79
+
80
+ /**
81
+ * @ingroup xsimd_config_macro
82
+ *
83
+ * Set to 1 if AVX is available at compile-time, to 0 otherwise.
84
+ */
85
+ #ifdef __AVX__
86
+ #define XSIMD_WITH_AVX 1
87
+ #else
88
+ #define XSIMD_WITH_AVX 0
89
+ #endif
90
+
91
+ /**
92
+ * @ingroup xsimd_config_macro
93
+ *
94
+ * Set to 1 if AVX2 is available at compile-time, to 0 otherwise.
95
+ */
96
+ #ifdef __AVX2__
97
+ #define XSIMD_WITH_AVX2 1
98
+ #else
99
+ #define XSIMD_WITH_AVX2 0
100
+ #endif
101
+
102
+ /**
103
+ * @ingroup xsimd_config_macro
104
+ *
105
+ * Set to 1 if AVXVNNI is available at compile-time, to 0 otherwise.
106
+ */
107
+ #ifdef __AVXVNNI__
108
+ #define XSIMD_WITH_AVXVNNI 1
109
+ #else
110
+ #define XSIMD_WITH_AVXVNNI 0
111
+ #endif
112
+
113
+ /**
114
+ * @ingroup xsimd_config_macro
115
+ *
116
+ * Set to 1 if FMA3 for SSE is available at compile-time, to 0 otherwise.
117
+ */
118
+ #ifdef __FMA__
119
+
120
+ #if defined(__SSE__)
121
+ #ifndef XSIMD_WITH_FMA3_SSE // Leave the opportunity to manually disable it, see #643
122
+ #define XSIMD_WITH_FMA3_SSE 1
123
+ #endif
124
+ #else
125
+
126
+ #if XSIMD_WITH_FMA3_SSE
127
+ #error "Manually set XSIMD_WITH_FMA3_SSE is incompatible with current compiler flags"
128
+ #endif
129
+
130
+ #define XSIMD_WITH_FMA3_SSE 0
131
+ #endif
132
+
133
+ #else
134
+
135
+ #if XSIMD_WITH_FMA3_SSE
136
+ #error "Manually set XSIMD_WITH_FMA3_SSE is incompatible with current compiler flags"
137
+ #endif
138
+
139
+ #define XSIMD_WITH_FMA3_SSE 0
140
+ #endif
141
+
142
+ /**
143
+ * @ingroup xsimd_config_macro
144
+ *
145
+ * Set to 1 if FMA3 for AVX is available at compile-time, to 0 otherwise.
146
+ */
147
+ #ifdef __FMA__
148
+
149
+ #if defined(__AVX__)
150
+ #ifndef XSIMD_WITH_FMA3_AVX // Leave the opportunity to manually disable it, see #643
151
+ #define XSIMD_WITH_FMA3_AVX 1
152
+ #endif
153
+ #else
154
+
155
+ #if XSIMD_WITH_FMA3_AVX
156
+ #error "Manually set XSIMD_WITH_FMA3_AVX is incompatible with current compiler flags"
157
+ #endif
158
+
159
+ #define XSIMD_WITH_FMA3_AVX 0
160
+ #endif
161
+
162
+ #if defined(__AVX2__)
163
+ #ifndef XSIMD_WITH_FMA3_AVX2 // Leave the opportunity to manually disable it, see #643
164
+ #define XSIMD_WITH_FMA3_AVX2 1
165
+ #endif
166
+ #else
167
+
168
+ #if XSIMD_WITH_FMA3_AVX2
169
+ #error "Manually set XSIMD_WITH_FMA3_AVX2 is incompatible with current compiler flags"
170
+ #endif
171
+
172
+ #define XSIMD_WITH_FMA3_AVX2 0
173
+ #endif
174
+
175
+ #else
176
+
177
+ #if XSIMD_WITH_FMA3_AVX
178
+ #error "Manually set XSIMD_WITH_FMA3_AVX is incompatible with current compiler flags"
179
+ #endif
180
+
181
+ #if XSIMD_WITH_FMA3_AVX2
182
+ #error "Manually set XSIMD_WITH_FMA3_AVX2 is incompatible with current compiler flags"
183
+ #endif
184
+
185
+ #define XSIMD_WITH_FMA3_AVX 0
186
+ #define XSIMD_WITH_FMA3_AVX2 0
187
+
188
+ #endif
189
+
190
+ /**
191
+ * @ingroup xsimd_config_macro
192
+ *
193
+ * Set to 1 if FMA4 is available at compile-time, to 0 otherwise.
194
+ */
195
+ #ifdef __FMA4__
196
+ #define XSIMD_WITH_FMA4 1
197
+ #else
198
+ #define XSIMD_WITH_FMA4 0
199
+ #endif
200
+
201
+ /**
202
+ * @ingroup xsimd_config_macro
203
+ *
204
+ * Set to 1 if AVX512F is available at compile-time, to 0 otherwise.
205
+ */
206
+ #ifdef __AVX512F__
207
+ // AVX512 instructions are supported starting with gcc 6
208
+ // see https://www.gnu.org/software/gcc/gcc-6/changes.html
209
+ // check clang first, newer clang always defines __GNUC__ = 4
210
+ #if defined(__clang__) && __clang_major__ >= 6
211
+ #define XSIMD_WITH_AVX512F 1
212
+ #elif defined(__GNUC__) && __GNUC__ < 6
213
+ #define XSIMD_WITH_AVX512F 0
214
+ #else
215
+ #define XSIMD_WITH_AVX512F 1
216
+ #if __GNUC__ == 6
217
+ #define XSIMD_AVX512_SHIFT_INTRINSICS_IMM_ONLY 1
218
+ #endif
219
+ #endif
220
+ #else
221
+ #define XSIMD_WITH_AVX512F 0
222
+ #endif
223
+
224
+ /**
225
+ * @ingroup xsimd_config_macro
226
+ *
227
+ * Set to 1 if AVX512CD is available at compile-time, to 0 otherwise.
228
+ */
229
+ #ifdef __AVX512CD__
230
+ // Avoids repeating the GCC workaround over and over
231
+ #define XSIMD_WITH_AVX512CD XSIMD_WITH_AVX512F
232
+ #else
233
+ #define XSIMD_WITH_AVX512CD 0
234
+ #endif
235
+
236
+ /**
237
+ * @ingroup xsimd_config_macro
238
+ *
239
+ * Set to 1 if AVX512DQ is available at compile-time, to 0 otherwise.
240
+ */
241
+ #ifdef __AVX512DQ__
242
+ #define XSIMD_WITH_AVX512DQ XSIMD_WITH_AVX512F
243
+ #else
244
+ #define XSIMD_WITH_AVX512DQ 0
245
+ #endif
246
+
247
+ /**
248
+ * @ingroup xsimd_config_macro
249
+ *
250
+ * Set to 1 if AVX512BW is available at compile-time, to 0 otherwise.
251
+ */
252
+ #ifdef __AVX512BW__
253
+ #define XSIMD_WITH_AVX512BW XSIMD_WITH_AVX512F
254
+ #else
255
+ #define XSIMD_WITH_AVX512BW 0
256
+ #endif
257
+
258
+ /**
259
+ * @ingroup xsimd_config_macro
260
+ *
261
+ * Set to 1 if AVX512ER is available at compile-time, to 0 otherwise.
262
+ */
263
+ #ifdef __AVX512ER__
264
+ #define XSIMD_WITH_AVX512ER XSIMD_WITH_AVX512F
265
+ #else
266
+ #define XSIMD_WITH_AVX512ER 0
267
+ #endif
268
+
269
+ /**
270
+ * @ingroup xsimd_config_macro
271
+ *
272
+ * Set to 1 if AVX512PF is available at compile-time, to 0 otherwise.
273
+ */
274
+ #ifdef __AVX512PF__
275
+ #define XSIMD_WITH_AVX512PF XSIMD_WITH_AVX512F
276
+ #else
277
+ #define XSIMD_WITH_AVX512PF 0
278
+ #endif
279
+
280
+ /**
281
+ * @ingroup xsimd_config_macro
282
+ *
283
+ * Set to 1 if AVX512IFMA is available at compile-time, to 0 otherwise.
284
+ */
285
+ #ifdef __AVX512IFMA__
286
+ #define XSIMD_WITH_AVX512IFMA XSIMD_WITH_AVX512F
287
+ #else
288
+ #define XSIMD_WITH_AVX512IFMA 0
289
+ #endif
290
+
291
+ /**
292
+ * @ingroup xsimd_config_macro
293
+ *
294
+ * Set to 1 if AVX512VBMI is available at compile-time, to 0 otherwise.
295
+ */
296
+ #ifdef __AVX512VBMI__
297
+ #define XSIMD_WITH_AVX512VBMI XSIMD_WITH_AVX512F
298
+ #else
299
+ #define XSIMD_WITH_AVX512VBMI 0
300
+ #endif
301
+
302
+ /**
303
+ * @ingroup xsimd_config_macro
304
+ *
305
+ * Set to 1 if AVX512VBMI2 is available at compile-time, to 0 otherwise.
306
+ */
307
+ #ifdef __AVX512VBMI2__
308
+ #define XSIMD_WITH_AVX512VBMI2 XSIMD_WITH_AVX512F
309
+ #else
310
+ #define XSIMD_WITH_AVX512VBMI2 0
311
+ #endif
312
+
313
+ /**
314
+ * @ingroup xsimd_config_macro
315
+ *
316
+ * Set to 1 if AVX512VNNI is available at compile-time, to 0 otherwise.
317
+ */
318
+ #ifdef __AVX512VNNI__
319
+
320
+ #if XSIMD_WITH_AVX512VBMI2
321
+ #define XSIMD_WITH_AVX512VNNI_AVX512VBMI2 XSIMD_WITH_AVX512F
322
+ #define XSIMD_WITH_AVX512VNNI_AVX512BW XSIMD_WITH_AVX512F
323
+ #else
324
+ #define XSIMD_WITH_AVX512VNNI_AVX512VBMI2 0
325
+ #define XSIMD_WITH_AVX512VNNI_AVX512BW XSIMD_WITH_AVX512F
326
+ #endif
327
+
328
+ #else
329
+
330
+ #define XSIMD_WITH_AVX512VNNI_AVX512VBMI2 0
331
+ #define XSIMD_WITH_AVX512VNNI_AVX512BW 0
332
+
333
+ #endif
334
+
335
+ #ifdef __ARM_NEON
336
+
337
+ /**
338
+ * @ingroup xsimd_config_macro
339
+ *
340
+ * Set to 1 if NEON is available at compile-time, to 0 otherwise.
341
+ */
342
+ #if __ARM_ARCH >= 7
343
+ #define XSIMD_WITH_NEON 1
344
+ #else
345
+ #define XSIMD_WITH_NEON 0
346
+ #endif
347
+
348
+ /**
349
+ * @ingroup xsimd_config_macro
350
+ *
351
+ * Set to 1 if NEON64 is available at compile-time, to 0 otherwise.
352
+ */
353
+ #ifdef __aarch64__
354
+ #define XSIMD_WITH_NEON64 1
355
+ #else
356
+ #define XSIMD_WITH_NEON64 0
357
+ #endif
358
+ #else
359
+ #define XSIMD_WITH_NEON 0
360
+ #define XSIMD_WITH_NEON64 0
361
+ #endif
362
+
363
+ /**
364
+ * @ingroup xsimd_config_macro
365
+ *
366
+ * Set to 1 if i8mm neon64 extension is available at compile-time, to 0 otherwise.
367
+ */
368
+ #if defined(__ARM_FEATURE_MATMUL_INT8)
369
+ #define XSIMD_WITH_I8MM_NEON64 1
370
+ #else
371
+ #define XSIMD_WITH_I8MM_NEON64 0
372
+ #endif
373
+
374
+ /**
375
+ * @ingroup xsimd_config_macro
376
+ *
377
+ * Set to 1 if SVE is available and bit width is pre-set at compile-time, to 0 otherwise.
378
+ */
379
+ #if defined(__ARM_FEATURE_SVE) && defined(__ARM_FEATURE_SVE_BITS) && __ARM_FEATURE_SVE_BITS > 0
380
+ #define XSIMD_WITH_SVE 1
381
+ #define XSIMD_SVE_BITS __ARM_FEATURE_SVE_BITS
382
+ #else
383
+ #define XSIMD_WITH_SVE 0
384
+ #define XSIMD_SVE_BITS 0
385
+ #endif
386
+
387
+ /**
388
+ * @ingroup xsimd_config_macro
389
+ *
390
+ * Set to 1 if RVV is available and bit width is pre-set at compile-time, to 0 otherwise.
391
+ */
392
+ #if defined(__riscv_vector) && defined(__riscv_v_fixed_vlen) && __riscv_v_fixed_vlen > 0
393
+ #define XSIMD_WITH_RVV 1
394
+ #define XSIMD_RVV_BITS __riscv_v_fixed_vlen
395
+ #else
396
+ #define XSIMD_WITH_RVV 0
397
+ #define XSIMD_RVV_BITS 0
398
+ #endif
399
+
400
+ /**
401
+ * @ingroup xsimd_config_macro
402
+ *
403
+ * Set to 1 if WebAssembly SIMD is available at compile-time, to 0 otherwise.
404
+ */
405
+ #ifdef __EMSCRIPTEN__
406
+ #define XSIMD_WITH_WASM 1
407
+ #else
408
+ #define XSIMD_WITH_WASM 0
409
+ #endif
410
+
411
+ /**
412
+ * @ingroup xsimd_config_macro
413
+ *
414
+ * Set to 1 if VMX with VSX extension is available at compile-time, to 0 otherwise.
415
+ */
416
+ #if defined(__VEC__) && defined(__VSX__)
417
+ #define XSIMD_WITH_VSX 1
418
+ #else
419
+ #define XSIMD_WITH_VSX 0
420
+ #endif
421
+
422
+ // Workaround for MSVC compiler
423
+ #ifdef _MSC_VER
424
+
425
+ #if XSIMD_WITH_AVX512
426
+
427
+ #undef XSIMD_WITH_AVX2
428
+ #define XSIMD_WITH_AVX2 1
429
+
430
+ #endif
431
+
432
+ #if XSIMD_WITH_AVX2
433
+
434
+ #undef XSIMD_WITH_AVX
435
+ #define XSIMD_WITH_AVX 1
436
+
437
+ #undef XSIMD_WITH_FMA3_AVX
438
+ #define XSIMD_WITH_FMA3_AVX 1
439
+
440
+ #undef XSIMD_WITH_FMA3_AVX2
441
+ #define XSIMD_WITH_FMA3_AVX2 1
442
+
443
+ #endif
444
+
445
+ #if XSIMD_WITH_AVX
446
+
447
+ #undef XSIMD_WITH_SSE4_2
448
+ #define XSIMD_WITH_SSE4_2 1
449
+
450
+ #endif
451
+
452
+ #if XSIMD_WITH_SSE4_2
453
+
454
+ #undef XSIMD_WITH_SSE4_1
455
+ #define XSIMD_WITH_SSE4_1 1
456
+
457
+ #endif
458
+
459
+ #if XSIMD_WITH_SSE4_1
460
+
461
+ #undef XSIMD_WITH_SSSE3
462
+ #define XSIMD_WITH_SSSE3 1
463
+
464
+ #endif
465
+
466
+ #if XSIMD_WITH_SSSE3
467
+
468
+ #undef XSIMD_WITH_SSE3
469
+ #define XSIMD_WITH_SSE3 1
470
+
471
+ #endif
472
+
473
+ #if XSIMD_WITH_SSE3 || ((defined(_M_AMD64) || defined(_M_X64)) && !defined(_M_ARM64EC)) || (defined(_M_IX86_FP) && _M_IX86_FP >= 2)
474
+ #undef XSIMD_WITH_SSE2
475
+ #define XSIMD_WITH_SSE2 1
476
+ #endif
477
+
478
+ #endif
479
+
480
+ #if !XSIMD_WITH_SSE2 && !XSIMD_WITH_SSE3 && !XSIMD_WITH_SSSE3 && !XSIMD_WITH_SSE4_1 && !XSIMD_WITH_SSE4_2 && !XSIMD_WITH_AVX && !XSIMD_WITH_AVX2 && !XSIMD_WITH_AVXVNNI && !XSIMD_WITH_FMA3_SSE && !XSIMD_WITH_FMA4 && !XSIMD_WITH_FMA3_AVX && !XSIMD_WITH_FMA3_AVX2 && !XSIMD_WITH_AVX512F && !XSIMD_WITH_AVX512CD && !XSIMD_WITH_AVX512DQ && !XSIMD_WITH_AVX512BW && !XSIMD_WITH_AVX512ER && !XSIMD_WITH_AVX512PF && !XSIMD_WITH_AVX512IFMA && !XSIMD_WITH_AVX512VBMI && !XSIMD_WITH_AVX512VBMI2 && !XSIMD_WITH_NEON && !XSIMD_WITH_NEON64 && !XSIMD_WITH_SVE && !XSIMD_WITH_RVV && !XSIMD_WITH_WASM && !XSIMD_WITH_VSX && !XSIMD_WITH_EMULATED
481
+ #define XSIMD_NO_SUPPORTED_ARCHITECTURE
482
+ #endif
483
+
484
+ #endif