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,536 @@
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_UTILS_HPP
13
+ #define XSIMD_UTILS_HPP
14
+
15
+ #include <complex>
16
+ #include <cstdint>
17
+ #include <cstring>
18
+ #include <tuple>
19
+ #include <type_traits>
20
+
21
+ #ifdef XSIMD_ENABLE_XTL_COMPLEX
22
+ #include "xtl/xcomplex.hpp"
23
+ #endif
24
+
25
+ namespace xsimd
26
+ {
27
+
28
+ template <class T, class A>
29
+ class batch;
30
+
31
+ template <class T, class A>
32
+ class batch_bool;
33
+
34
+ /**************
35
+ * index *
36
+ **************/
37
+
38
+ template <size_t I>
39
+ using index = std::integral_constant<size_t, I>;
40
+
41
+ /**************
42
+ * as_integer *
43
+ **************/
44
+
45
+ template <class T>
46
+ struct as_integer : std::make_signed<T>
47
+ {
48
+ };
49
+
50
+ template <>
51
+ struct as_integer<float>
52
+ {
53
+ using type = int32_t;
54
+ };
55
+
56
+ template <>
57
+ struct as_integer<double>
58
+ {
59
+ using type = int64_t;
60
+ };
61
+
62
+ template <class T, class A>
63
+ struct as_integer<batch<T, A>>
64
+ {
65
+ using type = batch<typename as_integer<T>::type, A>;
66
+ };
67
+
68
+ template <class B>
69
+ using as_integer_t = typename as_integer<B>::type;
70
+
71
+ /***********************
72
+ * as_unsigned_integer *
73
+ ***********************/
74
+
75
+ template <class T>
76
+ struct as_unsigned_integer : std::make_unsigned<T>
77
+ {
78
+ };
79
+
80
+ template <>
81
+ struct as_unsigned_integer<bool>
82
+ {
83
+ using type = uint8_t;
84
+ };
85
+
86
+ template <>
87
+ struct as_unsigned_integer<float>
88
+ {
89
+ using type = uint32_t;
90
+ };
91
+
92
+ template <>
93
+ struct as_unsigned_integer<double>
94
+ {
95
+ using type = uint64_t;
96
+ };
97
+
98
+ template <class T, class A>
99
+ struct as_unsigned_integer<batch<T, A>>
100
+ {
101
+ using type = batch<typename as_unsigned_integer<T>::type, A>;
102
+ };
103
+
104
+ template <class T>
105
+ using as_unsigned_integer_t = typename as_unsigned_integer<T>::type;
106
+
107
+ /*********************
108
+ * as_signed_integer *
109
+ *********************/
110
+
111
+ template <class T>
112
+ struct as_signed_integer : std::make_signed<T>
113
+ {
114
+ };
115
+
116
+ template <class T>
117
+ using as_signed_integer_t = typename as_signed_integer<T>::type;
118
+
119
+ /******************
120
+ * flip_sign_type *
121
+ ******************/
122
+
123
+ namespace detail
124
+ {
125
+ template <class T, bool is_signed>
126
+ struct flipped_sign_type_impl : std::make_signed<T>
127
+ {
128
+ };
129
+
130
+ template <class T>
131
+ struct flipped_sign_type_impl<T, true> : std::make_unsigned<T>
132
+ {
133
+ };
134
+ }
135
+
136
+ template <class T>
137
+ struct flipped_sign_type
138
+ : detail::flipped_sign_type_impl<T, std::is_signed<T>::value>
139
+ {
140
+ };
141
+
142
+ template <class T>
143
+ using flipped_sign_type_t = typename flipped_sign_type<T>::type;
144
+
145
+ /***********
146
+ * as_float *
147
+ ************/
148
+
149
+ template <class T>
150
+ struct as_float;
151
+
152
+ template <>
153
+ struct as_float<int32_t>
154
+ {
155
+ using type = float;
156
+ };
157
+
158
+ template <>
159
+ struct as_float<int64_t>
160
+ {
161
+ using type = double;
162
+ };
163
+
164
+ template <class T, class A>
165
+ struct as_float<batch<T, A>>
166
+ {
167
+ using type = batch<typename as_float<T>::type, A>;
168
+ };
169
+
170
+ template <class T>
171
+ using as_float_t = typename as_float<T>::type;
172
+
173
+ /**************
174
+ * as_logical *
175
+ **************/
176
+
177
+ template <class T>
178
+ struct as_logical;
179
+
180
+ template <class T, class A>
181
+ struct as_logical<batch<T, A>>
182
+ {
183
+ using type = batch_bool<T, A>;
184
+ };
185
+
186
+ template <class T>
187
+ using as_logical_t = typename as_logical<T>::type;
188
+
189
+ /********************
190
+ * bit_cast *
191
+ ********************/
192
+
193
+ template <class To, class From>
194
+ inline To bit_cast(From val) noexcept
195
+ {
196
+ static_assert(sizeof(From) == sizeof(To), "casting between compatible layout");
197
+ // FIXME: Some old version of GCC don't support that trait
198
+ // static_assert(std::is_trivially_copyable<From>::value, "input type is trivially copyable");
199
+ // static_assert(std::is_trivially_copyable<To>::value, "output type is trivially copyable");
200
+ To res;
201
+ std::memcpy(&res, &val, sizeof(val));
202
+ return res;
203
+ }
204
+
205
+ namespace kernel
206
+ {
207
+ namespace detail
208
+ {
209
+ /**************************************
210
+ * enabling / disabling metafunctions *
211
+ **************************************/
212
+
213
+ template <class T>
214
+ using enable_integral_t = typename std::enable_if<std::is_integral<T>::value, int>::type;
215
+
216
+ template <class T, size_t S>
217
+ using enable_sized_signed_t = typename std::enable_if<std::is_integral<T>::value && std::is_signed<T>::value && sizeof(T) == S, int>::type;
218
+
219
+ template <class T, size_t S>
220
+ using enable_sized_unsigned_t = typename std::enable_if<std::is_integral<T>::value && !std::is_signed<T>::value && sizeof(T) == S, int>::type;
221
+
222
+ template <class T, size_t S>
223
+ using enable_sized_integral_t = typename std::enable_if<std::is_integral<T>::value && sizeof(T) == S, int>::type;
224
+
225
+ template <class T, size_t S>
226
+ using enable_sized_t = typename std::enable_if<sizeof(T) == S, int>::type;
227
+
228
+ template <class T, size_t S>
229
+ using enable_max_sized_integral_t = typename std::enable_if<std::is_integral<T>::value && sizeof(T) <= S, int>::type;
230
+
231
+ /********************************
232
+ * Matching & mismatching sizes *
233
+ ********************************/
234
+
235
+ template <class T, class U, class B = int>
236
+ using sizes_match_t = typename std::enable_if<sizeof(T) == sizeof(U), B>::type;
237
+
238
+ template <class T, class U, class B = int>
239
+ using sizes_mismatch_t = typename std::enable_if<sizeof(T) != sizeof(U), B>::type;
240
+
241
+ template <class T, class U, class B = int>
242
+ using stride_match_t = typename std::enable_if<!std::is_same<T, U>::value && sizeof(T) == sizeof(U), B>::type;
243
+ } // namespace detail
244
+ } // namespace kernel
245
+
246
+ /*****************************************
247
+ * Backport of index_sequence from c++14 *
248
+ *****************************************/
249
+
250
+ // TODO: Remove this once we drop C++11 support
251
+ namespace detail
252
+ {
253
+ template <typename T>
254
+ struct identity
255
+ {
256
+ using type = T;
257
+ };
258
+
259
+ #ifdef __cpp_lib_integer_sequence
260
+ using std::index_sequence;
261
+ using std::integer_sequence;
262
+ using std::make_index_sequence;
263
+ using std::make_integer_sequence;
264
+
265
+ using std::index_sequence_for;
266
+ #else
267
+ template <typename T, T... Is>
268
+ struct integer_sequence
269
+ {
270
+ using value_type = T;
271
+ static constexpr std::size_t size() noexcept { return sizeof...(Is); }
272
+ };
273
+
274
+ template <typename Lhs, typename Rhs>
275
+ struct make_integer_sequence_concat;
276
+
277
+ template <typename T, T... Lhs, T... Rhs>
278
+ struct make_integer_sequence_concat<integer_sequence<T, Lhs...>,
279
+ integer_sequence<T, Rhs...>>
280
+ : identity<integer_sequence<T, Lhs..., (sizeof...(Lhs) + Rhs)...>>
281
+ {
282
+ };
283
+
284
+ template <typename T>
285
+ struct make_integer_sequence_impl;
286
+
287
+ template <typename T>
288
+ struct make_integer_sequence_impl<std::integral_constant<T, (T)0>> : identity<integer_sequence<T>>
289
+ {
290
+ };
291
+
292
+ template <typename T>
293
+ struct make_integer_sequence_impl<std::integral_constant<T, (T)1>> : identity<integer_sequence<T, 0>>
294
+ {
295
+ };
296
+
297
+ template <typename T, T N>
298
+ struct make_integer_sequence_impl<std::integral_constant<T, N>>
299
+ : make_integer_sequence_concat<typename make_integer_sequence_impl<std::integral_constant<T, N / 2>>::type,
300
+ typename make_integer_sequence_impl<std::integral_constant<T, N - (N / 2)>>::type>
301
+ {
302
+ };
303
+
304
+ template <typename T, T N>
305
+ using make_integer_sequence = typename make_integer_sequence_impl<std::integral_constant<T, N>>::type;
306
+
307
+ template <std::size_t... Is>
308
+ using index_sequence = integer_sequence<std::size_t, Is...>;
309
+
310
+ template <std::size_t N>
311
+ using make_index_sequence = make_integer_sequence<std::size_t, N>;
312
+
313
+ template <typename... Ts>
314
+ using index_sequence_for = make_index_sequence<sizeof...(Ts)>;
315
+
316
+ #endif
317
+
318
+ template <int... Is>
319
+ using int_sequence = integer_sequence<int, Is...>;
320
+
321
+ template <int N>
322
+ using make_int_sequence = make_integer_sequence<int, N>;
323
+
324
+ template <typename... Ts>
325
+ using int_sequence_for = make_int_sequence<(int)sizeof...(Ts)>;
326
+
327
+ // Type-casted index sequence.
328
+ template <class P, size_t... Is>
329
+ inline P indexes_from(index_sequence<Is...>) noexcept
330
+ {
331
+ return { static_cast<typename P::value_type>(Is)... };
332
+ }
333
+
334
+ template <class P>
335
+ inline P make_sequence_as_batch() noexcept
336
+ {
337
+ return indexes_from<P>(make_index_sequence<P::size>());
338
+ }
339
+ }
340
+
341
+ /***********************************
342
+ * Backport of std::get from C++14 *
343
+ ***********************************/
344
+
345
+ namespace detail
346
+ {
347
+ template <class T, class... Types, size_t I, size_t... Is>
348
+ inline const T& get_impl(const std::tuple<Types...>& t, std::is_same<T, T>, index_sequence<I, Is...>) noexcept
349
+ {
350
+ return std::get<I>(t);
351
+ }
352
+
353
+ template <class T, class U, class... Types, size_t I, size_t... Is>
354
+ inline const T& get_impl(const std::tuple<Types...>& t, std::is_same<T, U>, index_sequence<I, Is...>) noexcept
355
+ {
356
+ using tuple_elem = typename std::tuple_element<I + 1, std::tuple<Types...>>::type;
357
+ return get_impl<T>(t, std::is_same<T, tuple_elem>(), index_sequence<Is...>());
358
+ }
359
+
360
+ template <class T, class... Types>
361
+ inline const T& get(const std::tuple<Types...>& t) noexcept
362
+ {
363
+ using tuple_elem = typename std::tuple_element<0, std::tuple<Types...>>::type;
364
+ return get_impl<T>(t, std::is_same<T, tuple_elem>(), make_index_sequence<sizeof...(Types)>());
365
+ }
366
+ }
367
+
368
+ /*********************************
369
+ * Backport of void_t from C++17 *
370
+ *********************************/
371
+
372
+ namespace detail
373
+ {
374
+ template <class... T>
375
+ struct make_void
376
+ {
377
+ using type = void;
378
+ };
379
+
380
+ template <class... T>
381
+ using void_t = typename make_void<T...>::type;
382
+ }
383
+
384
+ /**************************************************
385
+ * Equivalent of void_t but with size_t parameter *
386
+ **************************************************/
387
+
388
+ namespace detail
389
+ {
390
+ template <std::size_t>
391
+ struct check_size
392
+ {
393
+ using type = void;
394
+ };
395
+
396
+ template <std::size_t S>
397
+ using check_size_t = typename check_size<S>::type;
398
+ }
399
+
400
+ /*****************************************
401
+ * Supplementary std::array constructors *
402
+ *****************************************/
403
+
404
+ namespace detail
405
+ {
406
+ // std::array constructor from scalar value ("broadcast")
407
+ template <typename T, std::size_t... Is>
408
+ inline constexpr std::array<T, sizeof...(Is)>
409
+ array_from_scalar_impl(const T& scalar, index_sequence<Is...>) noexcept
410
+ {
411
+ // You can safely ignore this silly ternary, the "scalar" is all
412
+ // that matters. The rest is just a dirty workaround...
413
+ return std::array<T, sizeof...(Is)> { (Is + 1) ? scalar : T()... };
414
+ }
415
+
416
+ template <typename T, std::size_t N>
417
+ inline constexpr std::array<T, N>
418
+ array_from_scalar(const T& scalar) noexcept
419
+ {
420
+ return array_from_scalar_impl(scalar, make_index_sequence<N>());
421
+ }
422
+
423
+ // std::array constructor from C-style pointer (handled as an array)
424
+ template <typename T, std::size_t... Is>
425
+ inline constexpr std::array<T, sizeof...(Is)>
426
+ array_from_pointer_impl(const T* c_array, index_sequence<Is...>) noexcept
427
+ {
428
+ return std::array<T, sizeof...(Is)> { c_array[Is]... };
429
+ }
430
+
431
+ template <typename T, std::size_t N>
432
+ inline constexpr std::array<T, N>
433
+ array_from_pointer(const T* c_array) noexcept
434
+ {
435
+ return array_from_pointer_impl(c_array, make_index_sequence<N>());
436
+ }
437
+ }
438
+
439
+ /************************
440
+ * is_array_initializer *
441
+ ************************/
442
+
443
+ namespace detail
444
+ {
445
+ template <bool...>
446
+ struct bool_pack;
447
+
448
+ template <bool... bs>
449
+ using all_true = std::is_same<
450
+ bool_pack<bs..., true>, bool_pack<true, bs...>>;
451
+
452
+ template <typename T, typename... Args>
453
+ using is_all_convertible = all_true<std::is_convertible<Args, T>::value...>;
454
+
455
+ template <typename T, std::size_t N, typename... Args>
456
+ using is_array_initializer = std::enable_if<
457
+ (sizeof...(Args) == N) && is_all_convertible<T, Args...>::value>;
458
+
459
+ // Check that a variadic argument pack is a list of N values of type T,
460
+ // as usable for instantiating a value of type std::array<T, N>.
461
+ template <typename T, std::size_t N, typename... Args>
462
+ using is_array_initializer_t = typename is_array_initializer<T, N, Args...>::type;
463
+ }
464
+
465
+ /**************
466
+ * is_complex *
467
+ **************/
468
+
469
+ // This is used in both xsimd_complex_base.hpp and xsimd_traits.hpp
470
+ // However xsimd_traits.hpp indirectly includes xsimd_complex_base.hpp
471
+ // so we cannot define is_complex in xsimd_traits.hpp. Besides, if
472
+ // no file defining batches is included, we still need this definition
473
+ // in xsimd_traits.hpp, so let's define it here.
474
+
475
+ namespace detail
476
+ {
477
+ template <class T>
478
+ struct is_complex : std::false_type
479
+ {
480
+ };
481
+
482
+ template <class T>
483
+ struct is_complex<std::complex<T>> : std::true_type
484
+ {
485
+ };
486
+
487
+ #ifdef XSIMD_ENABLE_XTL_COMPLEX
488
+ template <class T, bool i3ec>
489
+ struct is_complex<xtl::xcomplex<T, T, i3ec>> : std::true_type
490
+ {
491
+ };
492
+ #endif
493
+ }
494
+
495
+ /*******************
496
+ * real_batch_type *
497
+ *******************/
498
+
499
+ template <class B>
500
+ struct real_batch_type
501
+ {
502
+ using type = B;
503
+ };
504
+
505
+ template <class T, class A>
506
+ struct real_batch_type<batch<std::complex<T>, A>>
507
+ {
508
+ using type = batch<T, A>;
509
+ };
510
+
511
+ template <class B>
512
+ using real_batch_type_t = typename real_batch_type<B>::type;
513
+
514
+ /**********************
515
+ * complex_batch_type *
516
+ **********************/
517
+
518
+ template <class B>
519
+ struct complex_batch_type
520
+ {
521
+ using real_value_type = typename B::value_type;
522
+ using arch_type = typename B::arch_type;
523
+ using type = batch<std::complex<real_value_type>, arch_type>;
524
+ };
525
+
526
+ template <class T, class A>
527
+ struct complex_batch_type<batch<std::complex<T>, A>>
528
+ {
529
+ using type = batch<std::complex<T>, A>;
530
+ };
531
+
532
+ template <class B>
533
+ using complex_batch_type_t = typename complex_batch_type<B>::type;
534
+ }
535
+
536
+ #endif
@@ -0,0 +1,77 @@
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_VSX_REGISTER_HPP
13
+ #define XSIMD_VSX_REGISTER_HPP
14
+
15
+ #include "./xsimd_common_arch.hpp"
16
+ #include "./xsimd_register.hpp"
17
+
18
+ #if XSIMD_WITH_VSX
19
+ #include <altivec.h>
20
+ #endif
21
+
22
+ namespace xsimd
23
+ {
24
+ /**
25
+ * @ingroup architectures
26
+ *
27
+ * VSX instructions
28
+ */
29
+ struct vsx : common
30
+ {
31
+ static constexpr bool supported() noexcept { return XSIMD_WITH_VSX; }
32
+ static constexpr bool available() noexcept { return true; }
33
+ static constexpr bool requires_alignment() noexcept { return true; }
34
+ static constexpr std::size_t alignment() noexcept { return 16; }
35
+ static constexpr char const* name() noexcept { return "vmx+vsx"; }
36
+ };
37
+
38
+ #if XSIMD_WITH_VSX
39
+ namespace types
40
+ {
41
+
42
+ #define XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(T, Tb) \
43
+ template <> \
44
+ struct get_bool_simd_register<T, vsx> \
45
+ { \
46
+ struct type \
47
+ { \
48
+ using register_type = __vector __bool Tb; \
49
+ register_type data; \
50
+ type() = default; \
51
+ type(register_type r) \
52
+ : data(r) \
53
+ { \
54
+ } \
55
+ operator register_type() const noexcept { return data; } \
56
+ }; \
57
+ }; \
58
+ XSIMD_DECLARE_SIMD_REGISTER(T, vsx, __vector T)
59
+
60
+ XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(signed char, char);
61
+ XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(unsigned char, char);
62
+ XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(char, char);
63
+ XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(unsigned short, short);
64
+ XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(short, short);
65
+ XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(unsigned int, int);
66
+ XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(int, int);
67
+ XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(unsigned long, long);
68
+ XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(long, long);
69
+ XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(float, int);
70
+ XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER(double, long);
71
+
72
+ #undef XSIMD_DECLARE_SIMD_BOOL_VSX_REGISTER
73
+ }
74
+ #endif
75
+ }
76
+
77
+ #endif
@@ -0,0 +1,59 @@
1
+ /***************************************************************************
2
+ * Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and *
3
+ * Martin Renou *
4
+ * Copyright (c) QuantStack *
5
+ * Copyright (c) Serge Guelton *
6
+ * Copyright (c) Anutosh Bhat *
7
+ * *
8
+ * Distributed under the terms of the BSD 3-Clause License. *
9
+ * *
10
+ * The full license is in the file LICENSE, distributed with this software. *
11
+ ****************************************************************************/
12
+
13
+ #ifndef XSIMD_WASM_REGISTER_HPP
14
+ #define XSIMD_WASM_REGISTER_HPP
15
+
16
+ #include "xsimd_common_arch.hpp"
17
+ #include "xsimd_register.hpp"
18
+
19
+ #if XSIMD_WITH_WASM
20
+ #include <wasm_simd128.h>
21
+ #endif
22
+
23
+ namespace xsimd
24
+ {
25
+ /**
26
+ * @ingroup architectures
27
+ *
28
+ * WASM instructions
29
+ */
30
+ struct wasm : common
31
+ {
32
+ static constexpr bool supported() noexcept { return XSIMD_WITH_WASM; }
33
+ static constexpr bool available() noexcept { return true; }
34
+ static constexpr bool requires_alignment() noexcept { return true; }
35
+ static constexpr std::size_t alignment() noexcept { return 16; }
36
+ static constexpr char const* name() noexcept { return "wasm"; }
37
+ };
38
+
39
+ #if XSIMD_WITH_WASM
40
+ namespace types
41
+ {
42
+ XSIMD_DECLARE_SIMD_REGISTER(signed char, wasm, v128_t);
43
+ XSIMD_DECLARE_SIMD_REGISTER(unsigned char, wasm, v128_t);
44
+ XSIMD_DECLARE_SIMD_REGISTER(char, wasm, v128_t);
45
+ XSIMD_DECLARE_SIMD_REGISTER(unsigned short, wasm, v128_t);
46
+ XSIMD_DECLARE_SIMD_REGISTER(short, wasm, v128_t);
47
+ XSIMD_DECLARE_SIMD_REGISTER(unsigned int, wasm, v128_t);
48
+ XSIMD_DECLARE_SIMD_REGISTER(int, wasm, v128_t);
49
+ XSIMD_DECLARE_SIMD_REGISTER(unsigned long int, wasm, v128_t);
50
+ XSIMD_DECLARE_SIMD_REGISTER(long int, wasm, v128_t);
51
+ XSIMD_DECLARE_SIMD_REGISTER(unsigned long long int, wasm, v128_t);
52
+ XSIMD_DECLARE_SIMD_REGISTER(long long int, wasm, v128_t);
53
+ XSIMD_DECLARE_SIMD_REGISTER(float, wasm, v128_t);
54
+ XSIMD_DECLARE_SIMD_REGISTER(double, wasm, v128_t);
55
+ }
56
+ #endif
57
+ }
58
+
59
+ #endif