sequenzo 0.1.31__cp310-cp310-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.
Files changed (299) hide show
  1. _sequenzo_fastcluster.cpython-310-darwin.so +0 -0
  2. sequenzo/__init__.py +349 -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 +476 -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-310-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-310-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 +22 -0
  30. sequenzo/data_preprocessing/helpers.py +303 -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/dyadic_children.csv +61 -0
  44. sequenzo/datasets/dyadic_parents.csv +61 -0
  45. sequenzo/datasets/mvad.csv +713 -0
  46. sequenzo/datasets/pairfam_activity_by_month.csv +1028 -0
  47. sequenzo/datasets/pairfam_activity_by_year.csv +1028 -0
  48. sequenzo/datasets/pairfam_family_by_month.csv +1028 -0
  49. sequenzo/datasets/pairfam_family_by_year.csv +1028 -0
  50. sequenzo/datasets/political_science_aid_shock.csv +166 -0
  51. sequenzo/datasets/political_science_donor_fragmentation.csv +157 -0
  52. sequenzo/define_sequence_data.py +1400 -0
  53. sequenzo/dissimilarity_measures/__init__.py +31 -0
  54. sequenzo/dissimilarity_measures/c_code.cpython-310-darwin.so +0 -0
  55. sequenzo/dissimilarity_measures/get_distance_matrix.py +762 -0
  56. sequenzo/dissimilarity_measures/get_substitution_cost_matrix.py +246 -0
  57. sequenzo/dissimilarity_measures/src/DHDdistance.cpp +148 -0
  58. sequenzo/dissimilarity_measures/src/LCPdistance.cpp +114 -0
  59. sequenzo/dissimilarity_measures/src/LCPspellDistance.cpp +215 -0
  60. sequenzo/dissimilarity_measures/src/OMdistance.cpp +247 -0
  61. sequenzo/dissimilarity_measures/src/OMspellDistance.cpp +281 -0
  62. sequenzo/dissimilarity_measures/src/__init__.py +0 -0
  63. sequenzo/dissimilarity_measures/src/dist2matrix.cpp +63 -0
  64. sequenzo/dissimilarity_measures/src/dp_utils.h +160 -0
  65. sequenzo/dissimilarity_measures/src/module.cpp +40 -0
  66. sequenzo/dissimilarity_measures/src/setup.py +30 -0
  67. sequenzo/dissimilarity_measures/src/utils.h +25 -0
  68. sequenzo/dissimilarity_measures/src/xsimd/.github/cmake-test/main.cpp +6 -0
  69. sequenzo/dissimilarity_measures/src/xsimd/benchmark/main.cpp +159 -0
  70. sequenzo/dissimilarity_measures/src/xsimd/benchmark/xsimd_benchmark.hpp +565 -0
  71. sequenzo/dissimilarity_measures/src/xsimd/docs/source/conf.py +37 -0
  72. sequenzo/dissimilarity_measures/src/xsimd/examples/mandelbrot.cpp +330 -0
  73. sequenzo/dissimilarity_measures/src/xsimd/examples/pico_bench.hpp +246 -0
  74. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_arithmetic.hpp +266 -0
  75. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_complex.hpp +112 -0
  76. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_details.hpp +323 -0
  77. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_logical.hpp +218 -0
  78. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_math.hpp +2583 -0
  79. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_memory.hpp +880 -0
  80. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_rounding.hpp +72 -0
  81. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_swizzle.hpp +174 -0
  82. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/common/xsimd_common_trigo.hpp +978 -0
  83. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx.hpp +1924 -0
  84. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx2.hpp +1144 -0
  85. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512bw.hpp +656 -0
  86. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512cd.hpp +28 -0
  87. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512dq.hpp +244 -0
  88. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512er.hpp +20 -0
  89. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512f.hpp +2650 -0
  90. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512ifma.hpp +20 -0
  91. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512pf.hpp +20 -0
  92. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512vbmi.hpp +77 -0
  93. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512vbmi2.hpp +131 -0
  94. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512vnni_avx512bw.hpp +20 -0
  95. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avx512vnni_avx512vbmi2.hpp +20 -0
  96. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_avxvnni.hpp +20 -0
  97. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_common.hpp +24 -0
  98. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_common_fwd.hpp +77 -0
  99. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_constants.hpp +393 -0
  100. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_emulated.hpp +788 -0
  101. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_fma3_avx.hpp +93 -0
  102. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_fma3_avx2.hpp +46 -0
  103. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_fma3_sse.hpp +97 -0
  104. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_fma4.hpp +92 -0
  105. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_i8mm_neon64.hpp +17 -0
  106. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_isa.hpp +142 -0
  107. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_neon.hpp +3142 -0
  108. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_neon64.hpp +1543 -0
  109. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_rvv.hpp +1513 -0
  110. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_scalar.hpp +1260 -0
  111. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_sse2.hpp +2024 -0
  112. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_sse3.hpp +67 -0
  113. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_sse4_1.hpp +339 -0
  114. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_sse4_2.hpp +44 -0
  115. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_ssse3.hpp +186 -0
  116. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_sve.hpp +1155 -0
  117. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_vsx.hpp +892 -0
  118. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/arch/xsimd_wasm.hpp +1780 -0
  119. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/config/xsimd_arch.hpp +240 -0
  120. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/config/xsimd_config.hpp +484 -0
  121. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/config/xsimd_cpuid.hpp +269 -0
  122. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/config/xsimd_inline.hpp +27 -0
  123. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/math/xsimd_rem_pio2.hpp +719 -0
  124. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/memory/xsimd_aligned_allocator.hpp +349 -0
  125. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/memory/xsimd_alignment.hpp +91 -0
  126. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_all_registers.hpp +55 -0
  127. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_api.hpp +2765 -0
  128. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx2_register.hpp +44 -0
  129. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512bw_register.hpp +51 -0
  130. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512cd_register.hpp +51 -0
  131. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512dq_register.hpp +51 -0
  132. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512er_register.hpp +51 -0
  133. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512f_register.hpp +77 -0
  134. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512ifma_register.hpp +51 -0
  135. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512pf_register.hpp +51 -0
  136. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512vbmi2_register.hpp +51 -0
  137. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512vbmi_register.hpp +51 -0
  138. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512vnni_avx512bw_register.hpp +54 -0
  139. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx512vnni_avx512vbmi2_register.hpp +53 -0
  140. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avx_register.hpp +64 -0
  141. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_avxvnni_register.hpp +44 -0
  142. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_batch.hpp +1524 -0
  143. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_batch_constant.hpp +300 -0
  144. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_common_arch.hpp +47 -0
  145. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_emulated_register.hpp +80 -0
  146. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_fma3_avx2_register.hpp +50 -0
  147. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_fma3_avx_register.hpp +50 -0
  148. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_fma3_sse_register.hpp +50 -0
  149. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_fma4_register.hpp +50 -0
  150. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_i8mm_neon64_register.hpp +55 -0
  151. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_neon64_register.hpp +55 -0
  152. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_neon_register.hpp +154 -0
  153. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_register.hpp +94 -0
  154. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_rvv_register.hpp +506 -0
  155. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_sse2_register.hpp +59 -0
  156. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_sse3_register.hpp +49 -0
  157. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_sse4_1_register.hpp +48 -0
  158. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_sse4_2_register.hpp +48 -0
  159. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_ssse3_register.hpp +48 -0
  160. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_sve_register.hpp +156 -0
  161. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_traits.hpp +337 -0
  162. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_utils.hpp +536 -0
  163. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_vsx_register.hpp +77 -0
  164. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/types/xsimd_wasm_register.hpp +59 -0
  165. sequenzo/dissimilarity_measures/src/xsimd/include/xsimd/xsimd.hpp +75 -0
  166. sequenzo/dissimilarity_measures/src/xsimd/test/architectures/dummy.cpp +7 -0
  167. sequenzo/dissimilarity_measures/src/xsimd/test/doc/explicit_use_of_an_instruction_set.cpp +13 -0
  168. sequenzo/dissimilarity_measures/src/xsimd/test/doc/explicit_use_of_an_instruction_set_mean.cpp +24 -0
  169. sequenzo/dissimilarity_measures/src/xsimd/test/doc/explicit_use_of_an_instruction_set_mean_aligned.cpp +25 -0
  170. sequenzo/dissimilarity_measures/src/xsimd/test/doc/explicit_use_of_an_instruction_set_mean_arch_independent.cpp +28 -0
  171. sequenzo/dissimilarity_measures/src/xsimd/test/doc/explicit_use_of_an_instruction_set_mean_tag_dispatch.cpp +25 -0
  172. sequenzo/dissimilarity_measures/src/xsimd/test/doc/manipulating_abstract_batches.cpp +7 -0
  173. sequenzo/dissimilarity_measures/src/xsimd/test/doc/manipulating_parametric_batches.cpp +8 -0
  174. sequenzo/dissimilarity_measures/src/xsimd/test/doc/sum.hpp +31 -0
  175. sequenzo/dissimilarity_measures/src/xsimd/test/doc/sum_avx2.cpp +3 -0
  176. sequenzo/dissimilarity_measures/src/xsimd/test/doc/sum_sse2.cpp +3 -0
  177. sequenzo/dissimilarity_measures/src/xsimd/test/doc/writing_vectorized_code.cpp +11 -0
  178. sequenzo/dissimilarity_measures/src/xsimd/test/main.cpp +31 -0
  179. sequenzo/dissimilarity_measures/src/xsimd/test/test_api.cpp +230 -0
  180. sequenzo/dissimilarity_measures/src/xsimd/test/test_arch.cpp +217 -0
  181. sequenzo/dissimilarity_measures/src/xsimd/test/test_basic_math.cpp +183 -0
  182. sequenzo/dissimilarity_measures/src/xsimd/test/test_batch.cpp +1049 -0
  183. sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_bool.cpp +508 -0
  184. sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_cast.cpp +409 -0
  185. sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_complex.cpp +712 -0
  186. sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_constant.cpp +286 -0
  187. sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_float.cpp +141 -0
  188. sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_int.cpp +365 -0
  189. sequenzo/dissimilarity_measures/src/xsimd/test/test_batch_manip.cpp +308 -0
  190. sequenzo/dissimilarity_measures/src/xsimd/test/test_bitwise_cast.cpp +222 -0
  191. sequenzo/dissimilarity_measures/src/xsimd/test/test_complex_exponential.cpp +226 -0
  192. sequenzo/dissimilarity_measures/src/xsimd/test/test_complex_hyperbolic.cpp +183 -0
  193. sequenzo/dissimilarity_measures/src/xsimd/test/test_complex_power.cpp +265 -0
  194. sequenzo/dissimilarity_measures/src/xsimd/test/test_complex_trigonometric.cpp +236 -0
  195. sequenzo/dissimilarity_measures/src/xsimd/test/test_conversion.cpp +248 -0
  196. sequenzo/dissimilarity_measures/src/xsimd/test/test_custom_default_arch.cpp +28 -0
  197. sequenzo/dissimilarity_measures/src/xsimd/test/test_error_gamma.cpp +170 -0
  198. sequenzo/dissimilarity_measures/src/xsimd/test/test_explicit_batch_instantiation.cpp +32 -0
  199. sequenzo/dissimilarity_measures/src/xsimd/test/test_exponential.cpp +202 -0
  200. sequenzo/dissimilarity_measures/src/xsimd/test/test_extract_pair.cpp +92 -0
  201. sequenzo/dissimilarity_measures/src/xsimd/test/test_fp_manipulation.cpp +77 -0
  202. sequenzo/dissimilarity_measures/src/xsimd/test/test_gnu_source.cpp +30 -0
  203. sequenzo/dissimilarity_measures/src/xsimd/test/test_hyperbolic.cpp +167 -0
  204. sequenzo/dissimilarity_measures/src/xsimd/test/test_load_store.cpp +304 -0
  205. sequenzo/dissimilarity_measures/src/xsimd/test/test_memory.cpp +61 -0
  206. sequenzo/dissimilarity_measures/src/xsimd/test/test_poly_evaluation.cpp +64 -0
  207. sequenzo/dissimilarity_measures/src/xsimd/test/test_power.cpp +184 -0
  208. sequenzo/dissimilarity_measures/src/xsimd/test/test_rounding.cpp +199 -0
  209. sequenzo/dissimilarity_measures/src/xsimd/test/test_select.cpp +101 -0
  210. sequenzo/dissimilarity_measures/src/xsimd/test/test_shuffle.cpp +760 -0
  211. sequenzo/dissimilarity_measures/src/xsimd/test/test_sum.cpp +4 -0
  212. sequenzo/dissimilarity_measures/src/xsimd/test/test_sum.hpp +34 -0
  213. sequenzo/dissimilarity_measures/src/xsimd/test/test_traits.cpp +172 -0
  214. sequenzo/dissimilarity_measures/src/xsimd/test/test_trigonometric.cpp +208 -0
  215. sequenzo/dissimilarity_measures/src/xsimd/test/test_utils.hpp +611 -0
  216. sequenzo/dissimilarity_measures/src/xsimd/test/test_wasm/test_wasm_playwright.py +123 -0
  217. sequenzo/dissimilarity_measures/src/xsimd/test/test_xsimd_api.cpp +1460 -0
  218. sequenzo/dissimilarity_measures/utils/__init__.py +16 -0
  219. sequenzo/dissimilarity_measures/utils/get_LCP_length_for_2_seq.py +44 -0
  220. sequenzo/dissimilarity_measures/utils/get_sm_trate_substitution_cost_matrix.cpython-310-darwin.so +0 -0
  221. sequenzo/dissimilarity_measures/utils/seqconc.cpython-310-darwin.so +0 -0
  222. sequenzo/dissimilarity_measures/utils/seqdss.cpython-310-darwin.so +0 -0
  223. sequenzo/dissimilarity_measures/utils/seqdur.cpython-310-darwin.so +0 -0
  224. sequenzo/dissimilarity_measures/utils/seqlength.cpython-310-darwin.so +0 -0
  225. sequenzo/multidomain/__init__.py +23 -0
  226. sequenzo/multidomain/association_between_domains.py +311 -0
  227. sequenzo/multidomain/cat.py +597 -0
  228. sequenzo/multidomain/combt.py +519 -0
  229. sequenzo/multidomain/dat.py +81 -0
  230. sequenzo/multidomain/idcd.py +139 -0
  231. sequenzo/multidomain/linked_polyad.py +292 -0
  232. sequenzo/openmp_setup.py +233 -0
  233. sequenzo/prefix_tree/__init__.py +62 -0
  234. sequenzo/prefix_tree/hub.py +114 -0
  235. sequenzo/prefix_tree/individual_level_indicators.py +1321 -0
  236. sequenzo/prefix_tree/spell_individual_level_indicators.py +580 -0
  237. sequenzo/prefix_tree/spell_level_indicators.py +297 -0
  238. sequenzo/prefix_tree/system_level_indicators.py +544 -0
  239. sequenzo/prefix_tree/utils.py +54 -0
  240. sequenzo/seqhmm/__init__.py +95 -0
  241. sequenzo/seqhmm/advanced_optimization.py +305 -0
  242. sequenzo/seqhmm/bootstrap.py +411 -0
  243. sequenzo/seqhmm/build_hmm.py +142 -0
  244. sequenzo/seqhmm/build_mhmm.py +136 -0
  245. sequenzo/seqhmm/build_nhmm.py +121 -0
  246. sequenzo/seqhmm/fit_mhmm.py +62 -0
  247. sequenzo/seqhmm/fit_model.py +61 -0
  248. sequenzo/seqhmm/fit_nhmm.py +76 -0
  249. sequenzo/seqhmm/formulas.py +289 -0
  250. sequenzo/seqhmm/forward_backward_nhmm.py +276 -0
  251. sequenzo/seqhmm/gradients_nhmm.py +306 -0
  252. sequenzo/seqhmm/hmm.py +291 -0
  253. sequenzo/seqhmm/mhmm.py +314 -0
  254. sequenzo/seqhmm/model_comparison.py +238 -0
  255. sequenzo/seqhmm/multichannel_em.py +282 -0
  256. sequenzo/seqhmm/multichannel_utils.py +138 -0
  257. sequenzo/seqhmm/nhmm.py +270 -0
  258. sequenzo/seqhmm/nhmm_utils.py +191 -0
  259. sequenzo/seqhmm/predict.py +137 -0
  260. sequenzo/seqhmm/predict_mhmm.py +142 -0
  261. sequenzo/seqhmm/simulate.py +878 -0
  262. sequenzo/seqhmm/utils.py +218 -0
  263. sequenzo/seqhmm/visualization.py +910 -0
  264. sequenzo/sequence_characteristics/__init__.py +40 -0
  265. sequenzo/sequence_characteristics/complexity_index.py +49 -0
  266. sequenzo/sequence_characteristics/overall_cross_sectional_entropy.py +220 -0
  267. sequenzo/sequence_characteristics/plot_characteristics.py +593 -0
  268. sequenzo/sequence_characteristics/simple_characteristics.py +311 -0
  269. sequenzo/sequence_characteristics/state_frequencies_and_entropy_per_sequence.py +39 -0
  270. sequenzo/sequence_characteristics/turbulence.py +155 -0
  271. sequenzo/sequence_characteristics/variance_of_spell_durations.py +86 -0
  272. sequenzo/sequence_characteristics/within_sequence_entropy.py +43 -0
  273. sequenzo/suffix_tree/__init__.py +66 -0
  274. sequenzo/suffix_tree/hub.py +114 -0
  275. sequenzo/suffix_tree/individual_level_indicators.py +1679 -0
  276. sequenzo/suffix_tree/spell_individual_level_indicators.py +493 -0
  277. sequenzo/suffix_tree/spell_level_indicators.py +248 -0
  278. sequenzo/suffix_tree/system_level_indicators.py +535 -0
  279. sequenzo/suffix_tree/utils.py +56 -0
  280. sequenzo/version_check.py +283 -0
  281. sequenzo/visualization/__init__.py +29 -0
  282. sequenzo/visualization/plot_mean_time.py +222 -0
  283. sequenzo/visualization/plot_modal_state.py +276 -0
  284. sequenzo/visualization/plot_most_frequent_sequences.py +147 -0
  285. sequenzo/visualization/plot_relative_frequency.py +405 -0
  286. sequenzo/visualization/plot_sequence_index.py +1175 -0
  287. sequenzo/visualization/plot_single_medoid.py +153 -0
  288. sequenzo/visualization/plot_state_distribution.py +651 -0
  289. sequenzo/visualization/plot_transition_matrix.py +190 -0
  290. sequenzo/visualization/utils/__init__.py +23 -0
  291. sequenzo/visualization/utils/utils.py +310 -0
  292. sequenzo/with_event_history_analysis/__init__.py +35 -0
  293. sequenzo/with_event_history_analysis/sequence_analysis_multi_state_model.py +850 -0
  294. sequenzo/with_event_history_analysis/sequence_history_analysis.py +283 -0
  295. sequenzo-0.1.31.dist-info/METADATA +286 -0
  296. sequenzo-0.1.31.dist-info/RECORD +299 -0
  297. sequenzo-0.1.31.dist-info/WHEEL +5 -0
  298. sequenzo-0.1.31.dist-info/licenses/LICENSE +28 -0
  299. sequenzo-0.1.31.dist-info/top_level.txt +2 -0
@@ -0,0 +1,75 @@
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_HPP
13
+ #define XSIMD_HPP
14
+
15
+ #if defined(__FAST_MATH__)
16
+ #define XSIMD_NO_DENORMALS
17
+ #define XSIMD_NO_INFINITIES
18
+ #define XSIMD_NO_NANS
19
+ #endif
20
+
21
+ #if defined(__has_cpp_attribute)
22
+ // if this check passes, then the compiler supports feature test macros
23
+ #if __has_cpp_attribute(nodiscard) >= 201603L
24
+ // if this check passes, then the compiler supports [[nodiscard]] without a message
25
+ #define XSIMD_NO_DISCARD [[nodiscard]]
26
+ #endif
27
+ #endif
28
+
29
+ #if !defined(XSIMD_NO_DISCARD) && __cplusplus >= 201703L
30
+ // this means that the previous tests failed, but we are using C++17 or higher
31
+ #define XSIMD_NO_DISCARD [[nodiscard]]
32
+ #endif
33
+
34
+ #if !defined(XSIMD_NO_DISCARD) && (defined(__GNUC__) || defined(__clang__))
35
+ // this means that the previous checks failed, but we are using GCC or Clang
36
+ #define XSIMD_NO_DISCARD __attribute__((warn_unused_result))
37
+ #endif
38
+
39
+ #if !defined(XSIMD_NO_DISCARD)
40
+ // this means that all the previous checks failed, so we fallback to doing nothing
41
+ #define XSIMD_NO_DISCARD
42
+ #endif
43
+
44
+ #ifdef __cpp_if_constexpr
45
+ // this means that the compiler supports the `if constexpr` construct
46
+ #define XSIMD_IF_CONSTEXPR if constexpr
47
+ #endif
48
+
49
+ #if !defined(XSIMD_IF_CONSTEXPR) && __cplusplus >= 201703L
50
+ // this means that the previous test failed, but we are using C++17 or higher
51
+ #define XSIMD_IF_CONSTEXPR if constexpr
52
+ #endif
53
+
54
+ #if !defined(XSIMD_IF_CONSTEXPR)
55
+ // this means that all the previous checks failed, so we fallback to a normal `if`
56
+ #define XSIMD_IF_CONSTEXPR if
57
+ #endif
58
+
59
+ #include "config/xsimd_config.hpp"
60
+ #include "config/xsimd_inline.hpp"
61
+
62
+ #include "arch/xsimd_scalar.hpp"
63
+ #include "memory/xsimd_aligned_allocator.hpp"
64
+
65
+ #if defined(XSIMD_NO_SUPPORTED_ARCHITECTURE)
66
+ // to type definition or anything appart from scalar definition and aligned allocator
67
+ #else
68
+ #include "types/xsimd_batch.hpp"
69
+ #include "types/xsimd_batch_constant.hpp"
70
+ #include "types/xsimd_traits.hpp"
71
+
72
+ // This include must come last
73
+ #include "types/xsimd_api.hpp"
74
+ #endif
75
+ #endif
@@ -0,0 +1,7 @@
1
+ #include <xsimd/xsimd.hpp>
2
+
3
+ // Basic check: can we instantiate a batch for the given compiler flags?
4
+ xsimd::batch<int> come_and_get_some(xsimd::batch<int> x, xsimd::batch<int> y)
5
+ {
6
+ return x + y;
7
+ }
@@ -0,0 +1,13 @@
1
+ #include "xsimd/xsimd.hpp"
2
+ #include <iostream>
3
+
4
+ namespace xs = xsimd;
5
+
6
+ int main(int, char*[])
7
+ {
8
+ xs::batch<double, xs::avx> a = { 1.5, 2.5, 3.5, 4.5 };
9
+ xs::batch<double, xs::avx> b = { 2.5, 3.5, 4.5, 5.5 };
10
+ auto mean = (a + b) / 2;
11
+ std::cout << mean << std::endl;
12
+ return 0;
13
+ }
@@ -0,0 +1,24 @@
1
+ #include "xsimd/xsimd.hpp"
2
+ #include <cstddef>
3
+ #include <vector>
4
+
5
+ void mean(const std::vector<double>& a, const std::vector<double>& b, std::vector<double>& res)
6
+ {
7
+ using b_type = xsimd::batch<double, xsimd::avx>;
8
+ std::size_t inc = b_type::size;
9
+ std::size_t size = res.size();
10
+ // size for which the vectorization is possible
11
+ std::size_t vec_size = size - size % inc;
12
+ for (std::size_t i = 0; i < vec_size; i += inc)
13
+ {
14
+ b_type avec = b_type::load_unaligned(&a[i]);
15
+ b_type bvec = b_type::load_unaligned(&b[i]);
16
+ b_type rvec = (avec + bvec) / 2;
17
+ rvec.store_unaligned(&res[i]);
18
+ }
19
+ // Remaining part that cannot be vectorize
20
+ for (std::size_t i = vec_size; i < size; ++i)
21
+ {
22
+ res[i] = (a[i] + b[i]) / 2;
23
+ }
24
+ }
@@ -0,0 +1,25 @@
1
+ #include "xsimd/xsimd.hpp"
2
+ #include <cstddef>
3
+ #include <vector>
4
+
5
+ using vector_type = std::vector<double, xsimd::default_allocator<double>>;
6
+ void mean(const vector_type& a, const vector_type& b, vector_type& res)
7
+ {
8
+ using b_type = xsimd::batch<double>;
9
+ std::size_t inc = b_type::size;
10
+ std::size_t size = res.size();
11
+ // size for which the vectorization is possible
12
+ std::size_t vec_size = size - size % inc;
13
+ for (std::size_t i = 0; i < vec_size; i += inc)
14
+ {
15
+ b_type avec = b_type::load_aligned(&a[i]);
16
+ b_type bvec = b_type::load_aligned(&b[i]);
17
+ b_type rvec = (avec + bvec) / 2;
18
+ rvec.store_aligned(&res[i]);
19
+ }
20
+ // Remaining part that cannot be vectorize
21
+ for (std::size_t i = vec_size; i < size; ++i)
22
+ {
23
+ res[i] = (a[i] + b[i]) / 2;
24
+ }
25
+ }
@@ -0,0 +1,28 @@
1
+ #include "xsimd/xsimd.hpp"
2
+ #include <cstddef>
3
+ #include <vector>
4
+
5
+ struct mean
6
+ {
7
+ template <class C, class Tag, class Arch>
8
+ void operator()(Arch, const C& a, const C& b, C& res, Tag)
9
+ {
10
+ using b_type = xsimd::batch<double, Arch>;
11
+ std::size_t inc = b_type::size;
12
+ std::size_t size = res.size();
13
+ // size for which the vectorization is possible
14
+ std::size_t vec_size = size - size % inc;
15
+ for (std::size_t i = 0; i < vec_size; i += inc)
16
+ {
17
+ b_type avec = b_type::load(&a[i], Tag());
18
+ b_type bvec = b_type::load(&b[i], Tag());
19
+ b_type rvec = (avec + bvec) / 2;
20
+ xsimd::store(&res[i], rvec, Tag());
21
+ }
22
+ // Remaining part that cannot be vectorize
23
+ for (std::size_t i = vec_size; i < size; ++i)
24
+ {
25
+ res[i] = (a[i] + b[i]) / 2;
26
+ }
27
+ }
28
+ };
@@ -0,0 +1,25 @@
1
+ #include "xsimd/xsimd.hpp"
2
+ #include <cstddef>
3
+ #include <vector>
4
+
5
+ template <class C, class Tag>
6
+ void mean(const C& a, const C& b, C& res, Tag)
7
+ {
8
+ using b_type = xsimd::batch<double>;
9
+ std::size_t inc = b_type::size;
10
+ std::size_t size = res.size();
11
+ // size for which the vectorization is possible
12
+ std::size_t vec_size = size - size % inc;
13
+ for (std::size_t i = 0; i < vec_size; i += inc)
14
+ {
15
+ b_type avec = b_type::load(&a[i], Tag());
16
+ b_type bvec = b_type::load(&b[i], Tag());
17
+ b_type rvec = (avec + bvec) / 2;
18
+ xsimd::store(&res[i], rvec, Tag());
19
+ }
20
+ // Remaining part that cannot be vectorize
21
+ for (std::size_t i = vec_size; i < size; ++i)
22
+ {
23
+ res[i] = (a[i] + b[i]) / 2;
24
+ }
25
+ }
@@ -0,0 +1,7 @@
1
+ #include "xsimd/xsimd.hpp"
2
+
3
+ namespace xs = xsimd;
4
+ xs::batch<float> mean(xs::batch<float> lhs, xs::batch<float> rhs)
5
+ {
6
+ return (lhs + rhs) / 2;
7
+ }
@@ -0,0 +1,8 @@
1
+ #include "xsimd/xsimd.hpp"
2
+
3
+ namespace xs = xsimd;
4
+ template <class T, class Arch>
5
+ xs::batch<T, Arch> mean(xs::batch<T, Arch> lhs, xs::batch<T, Arch> rhs)
6
+ {
7
+ return (lhs + rhs) / 2;
8
+ }
@@ -0,0 +1,31 @@
1
+ #ifndef _SUM_HPP
2
+ #define _SUM_HPP
3
+ #include "xsimd/xsimd.hpp"
4
+
5
+ // functor with a call method that depends on `Arch`
6
+ struct sum
7
+ {
8
+ // It's critical not to use an in-class definition here.
9
+ // In-class and inline definition bypass extern template mechanism.
10
+ template <class Arch, class T>
11
+ T operator()(Arch, T const* data, unsigned size);
12
+ };
13
+
14
+ template <class Arch, class T>
15
+ T sum::operator()(Arch, T const* data, unsigned size)
16
+ {
17
+ using batch = xsimd::batch<T, Arch>;
18
+ batch acc(static_cast<T>(0));
19
+ const unsigned n = size / batch::size * batch::size;
20
+ for (unsigned i = 0; i != n; i += batch::size)
21
+ acc += batch::load_unaligned(data + i);
22
+ T star_acc = xsimd::reduce_add(acc);
23
+ for (unsigned i = n; i < size; ++i)
24
+ star_acc += data[i];
25
+ return star_acc;
26
+ }
27
+
28
+ // Inform the compiler that sse2 and avx2 implementation are to be found in another compilation unit.
29
+ extern template float sum::operator()<xsimd::avx2, float>(xsimd::avx2, float const*, unsigned);
30
+ extern template float sum::operator()<xsimd::sse2, float>(xsimd::sse2, float const*, unsigned);
31
+ #endif
@@ -0,0 +1,3 @@
1
+ // compile with -mavx2
2
+ #include "sum.hpp"
3
+ template float sum::operator()<xsimd::avx2, float>(xsimd::avx2, float const*, unsigned);
@@ -0,0 +1,3 @@
1
+ // compile with -msse2
2
+ #include "sum.hpp"
3
+ template float sum::operator()<xsimd::sse2, float>(xsimd::sse2, float const*, unsigned);
@@ -0,0 +1,11 @@
1
+ #include <cstddef>
2
+ #include <vector>
3
+
4
+ void mean(const std::vector<double>& a, const std::vector<double>& b, std::vector<double>& res)
5
+ {
6
+ std::size_t size = res.size();
7
+ for (std::size_t i = 0; i < size; ++i)
8
+ {
9
+ res[i] = (a[i] + b[i]) / 2;
10
+ }
11
+ }
@@ -0,0 +1,31 @@
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
+ #ifndef EMSCRIPTEN
12
+ #define DOCTEST_CONFIG_IMPLEMENT_WITH_MAIN
13
+ #include "doctest/doctest.h"
14
+ #else
15
+
16
+ #define DOCTEST_CONFIG_IMPLEMENT
17
+ #include "doctest/doctest.h"
18
+ #include <emscripten/bind.h>
19
+
20
+ int run_tests()
21
+ {
22
+ doctest::Context context;
23
+ return context.run();
24
+ }
25
+
26
+ EMSCRIPTEN_BINDINGS(my_module)
27
+ {
28
+ emscripten::function("run_tests", &run_tests);
29
+ }
30
+
31
+ #endif
@@ -0,0 +1,230 @@
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
+ #include "xsimd/xsimd.hpp"
13
+ #ifndef XSIMD_NO_SUPPORTED_ARCHITECTURE
14
+
15
+ #include <functional>
16
+ #include <numeric>
17
+ #include <random>
18
+
19
+ #include "test_utils.hpp"
20
+
21
+ template <class B>
22
+ struct xsimd_api_test
23
+ {
24
+ using batch_type = B;
25
+ using batch_bool_type = typename B::batch_bool_type;
26
+ using arch_type = typename B::arch_type;
27
+ using value_type = typename B::value_type;
28
+ static constexpr size_t size = B::size;
29
+ using array_type = std::array<value_type, size>;
30
+ using int8_vector_type = std::vector<int8_t, xsimd::default_allocator<int8_t>>;
31
+ using uint8_vector_type = std::vector<uint8_t, xsimd::default_allocator<uint8_t>>;
32
+ using int16_vector_type = std::vector<int16_t, xsimd::default_allocator<int16_t>>;
33
+ using uint16_vector_type = std::vector<uint16_t, xsimd::default_allocator<uint16_t>>;
34
+ using int32_vector_type = std::vector<int32_t, xsimd::default_allocator<int32_t>>;
35
+ using uint32_vector_type = std::vector<uint32_t, xsimd::default_allocator<uint32_t>>;
36
+ using int64_vector_type = std::vector<int64_t, xsimd::default_allocator<int64_t>>;
37
+ using uint64_vector_type = std::vector<uint64_t, xsimd::default_allocator<uint64_t>>;
38
+ using float_vector_type = std::vector<float, xsimd::default_allocator<float>>;
39
+ using double_vector_type = std::vector<double, xsimd::default_allocator<double>>;
40
+
41
+ int8_vector_type i8_vec;
42
+ uint8_vector_type ui8_vec;
43
+ int16_vector_type i16_vec;
44
+ uint16_vector_type ui16_vec;
45
+ int32_vector_type i32_vec;
46
+ uint32_vector_type ui32_vec;
47
+ int64_vector_type i64_vec;
48
+ uint64_vector_type ui64_vec;
49
+ float_vector_type f_vec;
50
+ double_vector_type d_vec;
51
+
52
+ array_type expected;
53
+
54
+ xsimd_api_test()
55
+ {
56
+ init_test_vector(i8_vec);
57
+ init_test_vector(ui8_vec);
58
+ init_test_vector(i16_vec);
59
+ init_test_vector(ui16_vec);
60
+ init_test_vector(i32_vec);
61
+ init_test_vector(ui32_vec);
62
+ init_test_vector(i64_vec);
63
+ init_test_vector(ui64_vec);
64
+ init_test_vector(f_vec);
65
+ #if XSIMD_WITH_NEON64 || !XSIMD_WITH_NEON
66
+ init_test_vector(d_vec);
67
+ #endif
68
+ }
69
+
70
+ void test_load()
71
+ {
72
+ test_load_impl(i8_vec, "load int8_t");
73
+ test_load_impl(ui8_vec, "load uint8_t");
74
+ test_load_impl(i16_vec, "load int16_t");
75
+ test_load_impl(ui16_vec, "load uint16_t");
76
+ test_load_impl(i32_vec, "load int32_t");
77
+ test_load_impl(ui32_vec, "load uint32_t");
78
+ test_load_impl(i64_vec, "load int64_t");
79
+ test_load_impl(ui64_vec, "load uint64_t");
80
+ test_load_impl(f_vec, "load float");
81
+ #if XSIMD_WITH_NEON64 || !XSIMD_WITH_NEON
82
+ test_load_impl(d_vec, "load double");
83
+ #endif
84
+ }
85
+
86
+ void test_store()
87
+ {
88
+ test_store_impl(i8_vec, "store int8_t");
89
+ test_store_impl(ui8_vec, "store uint8_t");
90
+ test_store_impl(i16_vec, "store int16_t");
91
+ test_store_impl(ui16_vec, "store uint16_t");
92
+ test_store_impl(i32_vec, "store int32_t");
93
+ test_store_impl(ui32_vec, "store uint32_t");
94
+ test_store_impl(i64_vec, "store int64_t");
95
+ test_store_impl(ui64_vec, "store uint64_t");
96
+ test_store_impl(f_vec, "store float");
97
+ #if XSIMD_WITH_NEON64 || !XSIMD_WITH_NEON
98
+ test_store_impl(d_vec, "store double");
99
+ #endif
100
+ }
101
+
102
+ void test_set()
103
+ {
104
+ test_set_bool("set bool");
105
+ test_set_impl<int8_t>("set int8_t");
106
+ test_set_impl<uint8_t>("set uint8_t");
107
+ test_set_impl<int16_t>("set int16_t");
108
+ test_set_impl<uint16_t>("set uint16_t");
109
+ test_set_impl<int32_t>("set int32_t");
110
+ test_set_impl<uint32_t>("set uint32_t");
111
+ test_set_impl<int64_t>("set int64_t");
112
+ test_set_impl<uint64_t>("set uint64_t");
113
+ test_set_impl<float>("set float");
114
+ #if XSIMD_WITH_NEON64 || !XSIMD_WITH_NEON
115
+ test_set_impl<double>("set double");
116
+ #endif
117
+ }
118
+
119
+ private:
120
+ template <class V>
121
+ void test_load_impl(const V& v, const std::string& name)
122
+ {
123
+ batch_type b;
124
+ std::copy(v.cbegin(), v.cend(), expected.begin());
125
+
126
+ b = batch_type::load(v.data(), xsimd::unaligned_mode());
127
+ INFO(name, " unaligned");
128
+ CHECK_BATCH_EQ(b, expected);
129
+
130
+ b = batch_type::load(v.data(), xsimd::aligned_mode());
131
+ INFO(name, " aligned");
132
+ CHECK_BATCH_EQ(b, expected);
133
+ }
134
+
135
+ template <class V>
136
+ void test_store_impl(const V& v, const std::string& name)
137
+ {
138
+ batch_type b = batch_type::load(v.data(), xsimd::aligned_mode());
139
+ V res(size);
140
+
141
+ bool* b_data = new bool[size];
142
+
143
+ xsimd::store_as(res.data(), b, xsimd::unaligned_mode());
144
+ INFO(name, " unaligned");
145
+ CHECK_VECTOR_EQ(res, v);
146
+
147
+ std::fill(b_data, b_data + size, false);
148
+ batch_bool_type bb = (b == b);
149
+ xsimd::store_as(b_data, bb, xsimd::unaligned_mode());
150
+ INFO(name, " batch_bool unaligned");
151
+ CHECK_UNARY(std::accumulate(b_data, b_data + size, true, std::logical_and<bool>()));
152
+
153
+ xsimd::store_as(res.data(), b, xsimd::aligned_mode());
154
+ INFO(name, " aligned");
155
+ CHECK_VECTOR_EQ(res, v);
156
+
157
+ std::fill(b_data, b_data + size, false);
158
+ bb = (b == b);
159
+ xsimd::store_as(b_data, bb, xsimd::aligned_mode());
160
+ INFO(name, " batch_bool aligned");
161
+ CHECK_UNARY(std::accumulate(b_data, b_data + size, true, std::logical_and<bool>()));
162
+
163
+ delete[] b_data;
164
+ }
165
+
166
+ template <class T>
167
+ void test_set_impl(const std::string& name)
168
+ {
169
+ #ifdef __clang__
170
+ #pragma clang diagnostic push
171
+ #pragma clang diagnostic ignored "-Wshorten-64-to-32"
172
+ #endif
173
+ T v = T(1);
174
+ batch_type expected(v);
175
+ batch_type res = xsimd::broadcast<value_type>(v);
176
+ #ifdef __clang__
177
+ #pragma clang diagnostic pop
178
+ #endif
179
+ INFO(name);
180
+ CHECK_BATCH_EQ(res, expected);
181
+ }
182
+
183
+ void test_set_bool(const std::string& name)
184
+ {
185
+ bool v = true;
186
+ xsimd::batch_bool<uint8_t, arch_type> expected(v);
187
+ xsimd::batch_bool<uint8_t, arch_type> res = xsimd::broadcast(v);
188
+ INFO(name);
189
+ CHECK_BATCH_EQ(res, expected);
190
+ }
191
+
192
+ template <class V>
193
+ void init_test_vector(V& vec)
194
+ {
195
+ vec.resize(size);
196
+
197
+ int min = 0;
198
+ int max = 100;
199
+
200
+ std::default_random_engine generator;
201
+ std::uniform_int_distribution<int> distribution(min, max);
202
+
203
+ auto gen = [&distribution, &generator]()
204
+ {
205
+ return static_cast<value_type>(distribution(generator));
206
+ };
207
+
208
+ std::generate(vec.begin(), vec.end(), gen);
209
+ }
210
+ };
211
+
212
+ TEST_CASE_TEMPLATE("[basic api]", B, BATCH_TYPES)
213
+ {
214
+ xsimd_api_test<B> Test;
215
+ SUBCASE("load")
216
+ {
217
+ Test.test_load();
218
+ }
219
+
220
+ SUBCASE("store")
221
+ {
222
+ Test.test_store();
223
+ }
224
+
225
+ SUBCASE("set")
226
+ {
227
+ Test.test_set();
228
+ }
229
+ }
230
+ #endif