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,300 @@
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_BATCH_CONSTANT_HPP
13
+ #define XSIMD_BATCH_CONSTANT_HPP
14
+
15
+ #include "./xsimd_batch.hpp"
16
+ #include "./xsimd_utils.hpp"
17
+
18
+ namespace xsimd
19
+ {
20
+ /**
21
+ * @brief batch of boolean constant
22
+ *
23
+ * Abstract representation of a batch of boolean constants.
24
+ *
25
+ * @tparam batch_type the type of the associated batch values.
26
+ * @tparam Values boolean constant represented by this batch
27
+ **/
28
+ template <typename T, class A, bool... Values>
29
+ struct batch_bool_constant
30
+ {
31
+ using batch_type = batch_bool<T, A>;
32
+ static constexpr std::size_t size = sizeof...(Values);
33
+ using value_type = bool;
34
+ static_assert(sizeof...(Values) == batch_type::size, "consistent batch size");
35
+
36
+ public:
37
+ /**
38
+ * @brief Generate a batch of @p batch_type from this @p batch_bool_constant
39
+ */
40
+ constexpr batch_type as_batch_bool() const noexcept { return { Values... }; }
41
+
42
+ /**
43
+ * @brief Generate a batch of @p batch_type from this @p batch_bool_constant
44
+ */
45
+ constexpr operator batch_type() const noexcept { return as_batch_bool(); }
46
+
47
+ constexpr bool get(size_t i) const noexcept
48
+ {
49
+ return std::array<value_type, size> { { Values... } }[i];
50
+ }
51
+
52
+ static constexpr int mask() noexcept
53
+ {
54
+ return mask_helper(0, static_cast<int>(Values)...);
55
+ }
56
+
57
+ private:
58
+ static constexpr int mask_helper(int acc) noexcept { return acc; }
59
+
60
+ template <class... Tys>
61
+ static constexpr int mask_helper(int acc, int mask, Tys... masks) noexcept
62
+ {
63
+ return mask_helper(acc | mask, (masks << 1)...);
64
+ }
65
+
66
+ struct logical_or
67
+ {
68
+ constexpr bool operator()(bool x, bool y) const { return x || y; }
69
+ };
70
+ struct logical_and
71
+ {
72
+ constexpr bool operator()(bool x, bool y) const { return x && y; }
73
+ };
74
+ struct logical_xor
75
+ {
76
+ constexpr bool operator()(bool x, bool y) const { return x ^ y; }
77
+ };
78
+
79
+ template <class F, class SelfPack, class OtherPack, size_t... Indices>
80
+ static constexpr batch_bool_constant<T, A, F()(std::tuple_element<Indices, SelfPack>::type::value, std::tuple_element<Indices, OtherPack>::type::value)...>
81
+ apply(detail::index_sequence<Indices...>)
82
+ {
83
+ return {};
84
+ }
85
+
86
+ template <class F, bool... OtherValues>
87
+ static constexpr auto apply(batch_bool_constant<T, A, Values...>, batch_bool_constant<T, A, OtherValues...>)
88
+ -> decltype(apply<F, std::tuple<std::integral_constant<bool, Values>...>, std::tuple<std::integral_constant<bool, OtherValues>...>>(detail::make_index_sequence<sizeof...(Values)>()))
89
+ {
90
+ static_assert(sizeof...(Values) == sizeof...(OtherValues), "compatible constant batches");
91
+ return apply<F, std::tuple<std::integral_constant<bool, Values>...>, std::tuple<std::integral_constant<bool, OtherValues>...>>(detail::make_index_sequence<sizeof...(Values)>());
92
+ }
93
+
94
+ public:
95
+ #define MAKE_BINARY_OP(OP, NAME) \
96
+ template <bool... OtherValues> \
97
+ constexpr auto operator OP(batch_bool_constant<T, A, OtherValues...> other) const \
98
+ -> decltype(apply<NAME>(*this, other)) \
99
+ { \
100
+ return apply<NAME>(*this, other); \
101
+ }
102
+
103
+ MAKE_BINARY_OP(|, logical_or)
104
+ MAKE_BINARY_OP(||, logical_or)
105
+ MAKE_BINARY_OP(&, logical_and)
106
+ MAKE_BINARY_OP(&&, logical_and)
107
+ MAKE_BINARY_OP(^, logical_xor)
108
+
109
+ #undef MAKE_BINARY_OP
110
+
111
+ constexpr batch_bool_constant<T, A, !Values...> operator!() const
112
+ {
113
+ return {};
114
+ }
115
+
116
+ constexpr batch_bool_constant<T, A, !Values...> operator~() const
117
+ {
118
+ return {};
119
+ }
120
+ };
121
+
122
+ /**
123
+ * @brief batch of integral constants
124
+ *
125
+ * Abstract representation of a batch of integral constants.
126
+ *
127
+ * @tparam batch_type the type of the associated batch values.
128
+ * @tparam Values constants represented by this batch
129
+ **/
130
+ template <typename T, class A, T... Values>
131
+ struct batch_constant
132
+ {
133
+ static constexpr std::size_t size = sizeof...(Values);
134
+ using batch_type = batch<T, A>;
135
+ using value_type = typename batch_type::value_type;
136
+ static_assert(sizeof...(Values) == batch_type::size, "consistent batch size");
137
+
138
+ /**
139
+ * @brief Generate a batch of @p batch_type from this @p batch_constant
140
+ */
141
+ XSIMD_INLINE batch_type as_batch() const noexcept { return { Values... }; }
142
+
143
+ /**
144
+ * @brief Generate a batch of @p batch_type from this @p batch_constant
145
+ */
146
+ XSIMD_INLINE operator batch_type() const noexcept { return as_batch(); }
147
+
148
+ /**
149
+ * @brief Get the @p i th element of this @p batch_constant
150
+ */
151
+ constexpr T get(size_t i) const noexcept
152
+ {
153
+ return get(i, std::array<T, size> { Values... });
154
+ }
155
+
156
+ private:
157
+ constexpr T get(size_t i, std::array<T, size> const& values) const noexcept
158
+ {
159
+ return values[i];
160
+ }
161
+
162
+ struct arithmetic_add
163
+ {
164
+ constexpr T operator()(T x, T y) const { return x + y; }
165
+ };
166
+ struct arithmetic_sub
167
+ {
168
+ constexpr T operator()(T x, T y) const { return x - y; }
169
+ };
170
+ struct arithmetic_mul
171
+ {
172
+ constexpr T operator()(T x, T y) const { return x * y; }
173
+ };
174
+ struct arithmetic_div
175
+ {
176
+ constexpr T operator()(T x, T y) const { return x / y; }
177
+ };
178
+ struct arithmetic_mod
179
+ {
180
+ constexpr T operator()(T x, T y) const { return x % y; }
181
+ };
182
+ struct binary_and
183
+ {
184
+ constexpr T operator()(T x, T y) const { return x & y; }
185
+ };
186
+ struct binary_or
187
+ {
188
+ constexpr T operator()(T x, T y) const { return x | y; }
189
+ };
190
+ struct binary_xor
191
+ {
192
+ constexpr T operator()(T x, T y) const { return x ^ y; }
193
+ };
194
+
195
+ template <class F, class SelfPack, class OtherPack, size_t... Indices>
196
+ static constexpr batch_constant<T, A, F()(std::tuple_element<Indices, SelfPack>::type::value, std::tuple_element<Indices, OtherPack>::type::value)...>
197
+ apply(detail::index_sequence<Indices...>)
198
+ {
199
+ return {};
200
+ }
201
+
202
+ template <class F, T... OtherValues>
203
+ static constexpr auto apply(batch_constant<T, A, Values...>, batch_constant<T, A, OtherValues...>)
204
+ -> decltype(apply<F, std::tuple<std::integral_constant<T, Values>...>, std::tuple<std::integral_constant<T, OtherValues>...>>(detail::make_index_sequence<sizeof...(Values)>()))
205
+ {
206
+ static_assert(sizeof...(Values) == sizeof...(OtherValues), "compatible constant batches");
207
+ return apply<F, std::tuple<std::integral_constant<T, Values>...>, std::tuple<std::integral_constant<T, OtherValues>...>>(detail::make_index_sequence<sizeof...(Values)>());
208
+ }
209
+
210
+ public:
211
+ #define MAKE_BINARY_OP(OP, NAME) \
212
+ template <T... OtherValues> \
213
+ constexpr auto operator OP(batch_constant<T, A, OtherValues...> other) const \
214
+ -> decltype(apply<NAME>(*this, other)) \
215
+ { \
216
+ return apply<NAME>(*this, other); \
217
+ }
218
+
219
+ MAKE_BINARY_OP(+, arithmetic_add)
220
+ MAKE_BINARY_OP(-, arithmetic_sub)
221
+ MAKE_BINARY_OP(*, arithmetic_mul)
222
+ MAKE_BINARY_OP(/, arithmetic_div)
223
+ MAKE_BINARY_OP(%, arithmetic_mod)
224
+ MAKE_BINARY_OP(&, binary_and)
225
+ MAKE_BINARY_OP(|, binary_or)
226
+ MAKE_BINARY_OP(^, binary_xor)
227
+
228
+ #undef MAKE_BINARY_OP
229
+
230
+ constexpr batch_constant<T, A, (T)-Values...> operator-() const
231
+ {
232
+ return {};
233
+ }
234
+
235
+ constexpr batch_constant<T, A, (T) + Values...> operator+() const
236
+ {
237
+ return {};
238
+ }
239
+
240
+ constexpr batch_constant<T, A, (T)~Values...> operator~() const
241
+ {
242
+ return {};
243
+ }
244
+ };
245
+
246
+ namespace detail
247
+ {
248
+ template <typename T, class G, class A, std::size_t... Is>
249
+ XSIMD_INLINE constexpr auto make_batch_constant(detail::index_sequence<Is...>) noexcept
250
+ -> batch_constant<T, A, (T)G::get(Is, sizeof...(Is))...>
251
+ {
252
+ return {};
253
+ }
254
+ template <typename T, class G, class A, std::size_t... Is>
255
+ XSIMD_INLINE constexpr auto make_batch_bool_constant(detail::index_sequence<Is...>) noexcept
256
+ -> batch_bool_constant<T, A, G::get(Is, sizeof...(Is))...>
257
+ {
258
+ return {};
259
+ }
260
+
261
+ } // namespace detail
262
+
263
+ /**
264
+ * @brief Build a @c batch_constant out of a generator function
265
+ *
266
+ * @tparam batch_type type of the (non-constant) batch to build
267
+ * @tparam G type used to generate that batch. That type must have a static
268
+ * member @c get that's used to generate the batch constant. Conversely, the
269
+ * generated batch_constant has value `{G::get(0, batch_size), ... , G::get(batch_size - 1, batch_size)}`
270
+ *
271
+ * The following generator produces a batch of `(n - 1, 0, 1, ... n-2)`
272
+ *
273
+ * @code
274
+ * struct Rot
275
+ * {
276
+ * static constexpr unsigned get(unsigned i, unsigned n)
277
+ * {
278
+ * return (i + n - 1) % n;
279
+ * }
280
+ * };
281
+ * @endcode
282
+ */
283
+ template <typename T, class G, class A = default_arch>
284
+ XSIMD_INLINE constexpr auto make_batch_constant() noexcept -> decltype(detail::make_batch_constant<T, G, A>(detail::make_index_sequence<batch<T, A>::size>()))
285
+ {
286
+ return detail::make_batch_constant<T, G, A>(detail::make_index_sequence<batch<T, A>::size>());
287
+ }
288
+
289
+ template <typename T, class G, class A = default_arch>
290
+ XSIMD_INLINE constexpr auto make_batch_bool_constant() noexcept
291
+ -> decltype(detail::make_batch_bool_constant<T, G, A>(
292
+ detail::make_index_sequence<batch<T, A>::size>()))
293
+ {
294
+ return detail::make_batch_bool_constant<T, G, A>(
295
+ detail::make_index_sequence<batch<T, A>::size>());
296
+ }
297
+
298
+ } // namespace xsimd
299
+
300
+ #endif
@@ -0,0 +1,47 @@
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_COMMON_ARCH_HPP
13
+ #define XSIMD_COMMON_ARCH_HPP
14
+
15
+ #include "../config/xsimd_config.hpp"
16
+
17
+ /**
18
+ * @defgroup architectures Architecture description
19
+ * */
20
+ namespace xsimd
21
+ {
22
+ /**
23
+ * @ingroup architectures
24
+ *
25
+ * Base class for all architectures.
26
+ */
27
+ struct common
28
+ {
29
+ /// Whether this architecture is supported at compile-time.
30
+ static constexpr bool supported() noexcept { return true; }
31
+ /// Whether this architecture is available at run-time.
32
+ static constexpr bool available() noexcept { return true; }
33
+ /// If this architectures supports aligned memory accesses, the required
34
+ /// alignment.
35
+ static constexpr std::size_t alignment() noexcept { return 0; }
36
+ /// Whether this architecture requires aligned memory access.
37
+ static constexpr bool requires_alignment() noexcept { return false; }
38
+ /// Name of the architecture.
39
+ static constexpr char const* name() noexcept { return "common"; }
40
+ };
41
+
42
+ struct unsupported
43
+ {
44
+ };
45
+ }
46
+
47
+ #endif
@@ -0,0 +1,80 @@
1
+ /***************************************************************************
2
+ * Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and *
3
+ * Martin Renou *
4
+ * Copyright (c) QuantStack *
5
+ * Copyright (c) Serge Guelton *
6
+ * *
7
+ * Distributed under the terms of the BSD 3-Clause License. *
8
+ * *
9
+ * The full license is in the file LICENSE, distributed with this software. *
10
+ ****************************************************************************/
11
+
12
+ #ifndef XSIMD_EMULATED_REGISTER_HPP
13
+ #define XSIMD_EMULATED_REGISTER_HPP
14
+
15
+ #include "./xsimd_common_arch.hpp"
16
+ #include "./xsimd_register.hpp"
17
+
18
+ namespace xsimd
19
+ {
20
+ /**
21
+ * @ingroup architectures
22
+ *
23
+ * emulated instructions
24
+ */
25
+ template <size_t N>
26
+ struct emulated : common
27
+ {
28
+ static constexpr bool supported() noexcept { return true; }
29
+ static constexpr bool available() noexcept { return true; }
30
+ static constexpr bool requires_alignment() noexcept { return false; }
31
+ static constexpr std::size_t alignment() noexcept { return 8; }
32
+ static constexpr char const* name() noexcept { return "emulated"; }
33
+ };
34
+
35
+ namespace types
36
+ {
37
+ template <size_t N>
38
+ struct simd_emulated_bool_register
39
+ {
40
+ using register_type = std::array<bool, N>;
41
+ register_type data;
42
+ simd_emulated_bool_register() = default;
43
+ simd_emulated_bool_register(register_type r) { data = r; }
44
+ operator register_type() const noexcept { return data; }
45
+ };
46
+ template <typename T, size_t N>
47
+ struct get_bool_simd_register<T, emulated<N>>
48
+ {
49
+ using type = simd_emulated_bool_register<N / (8 * sizeof(T))>;
50
+ };
51
+
52
+ template <typename T, size_t N>
53
+ struct simd_register<T, emulated<N>>
54
+ {
55
+ static_assert(N % (8 * sizeof(T)) == 0, "bit width must be a multiple of scalar width");
56
+ using register_type = std::array<T, N / (8 * sizeof(T))>;
57
+ register_type data;
58
+ XSIMD_INLINE operator register_type() const noexcept
59
+ {
60
+ return data;
61
+ }
62
+ };
63
+ template <typename T, size_t N>
64
+ struct has_simd_register<T, emulated<N>> : std::is_scalar<T>
65
+ {
66
+ };
67
+ template <typename T, size_t N>
68
+ struct has_simd_register<std::complex<T>, emulated<N>> : std::true_type
69
+ {
70
+ };
71
+ #ifdef XSIMD_ENABLE_XTL_COMPLEX
72
+ template <typename T, bool i3ec, size_t N>
73
+ struct has_simd_register<xtl::complex<T, T, i3ec>, emulated<N>> : std::true_type
74
+ {
75
+ };
76
+ #endif
77
+ }
78
+ }
79
+
80
+ #endif
@@ -0,0 +1,50 @@
1
+ /***************************************************************************
2
+ * Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and *
3
+ * Martin Renou *
4
+ * Copyright (c) QuantStack *
5
+ * Copyright (c) Serge Guelton *
6
+ * *
7
+ * Distributed under the terms of the BSD 3-Clause License. *
8
+ * *
9
+ * The full license is in the file LICENSE, distributed with this software. *
10
+ ****************************************************************************/
11
+
12
+ #ifndef XSIMD_FMA3_AVX2_REGISTER_HPP
13
+ #define XSIMD_FMA3_AVX2_REGISTER_HPP
14
+
15
+ #include "./xsimd_avx2_register.hpp"
16
+
17
+ namespace xsimd
18
+ {
19
+ template <typename arch>
20
+ struct fma3;
21
+
22
+ /**
23
+ * @ingroup architectures
24
+ *
25
+ * AVX2 + FMA instructions
26
+ */
27
+ template <>
28
+ struct fma3<avx2> : avx2
29
+ {
30
+ static constexpr bool supported() noexcept { return XSIMD_WITH_FMA3_AVX2; }
31
+ static constexpr bool available() noexcept { return true; }
32
+ static constexpr char const* name() noexcept { return "fma3+avx2"; }
33
+ };
34
+
35
+ #if XSIMD_WITH_FMA3_AVX2
36
+
37
+ #if !XSIMD_WITH_AVX2
38
+ #error "architecture inconsistency: fma3+avx2 requires avx2"
39
+ #endif
40
+
41
+ namespace types
42
+ {
43
+
44
+ XSIMD_DECLARE_SIMD_REGISTER_ALIAS(fma3<avx2>, avx2);
45
+
46
+ }
47
+ #endif
48
+
49
+ }
50
+ #endif
@@ -0,0 +1,50 @@
1
+ /***************************************************************************
2
+ * Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and *
3
+ * Martin Renou *
4
+ * Copyright (c) QuantStack *
5
+ * Copyright (c) Serge Guelton *
6
+ * *
7
+ * Distributed under the terms of the BSD 3-Clause License. *
8
+ * *
9
+ * The full license is in the file LICENSE, distributed with this software. *
10
+ ****************************************************************************/
11
+
12
+ #ifndef XSIMD_FMA3_AVX_REGISTER_HPP
13
+ #define XSIMD_FMA3_AVX_REGISTER_HPP
14
+
15
+ #include "./xsimd_avx_register.hpp"
16
+
17
+ namespace xsimd
18
+ {
19
+ template <typename arch>
20
+ struct fma3;
21
+
22
+ /**
23
+ * @ingroup architectures
24
+ *
25
+ * AVX + FMA instructions
26
+ */
27
+ template <>
28
+ struct fma3<avx> : avx
29
+ {
30
+ static constexpr bool supported() noexcept { return XSIMD_WITH_FMA3_AVX; }
31
+ static constexpr bool available() noexcept { return true; }
32
+ static constexpr char const* name() noexcept { return "fma3+avx"; }
33
+ };
34
+
35
+ #if XSIMD_WITH_FMA3_AVX
36
+
37
+ #if !XSIMD_WITH_AVX
38
+ #error "architecture inconsistency: fma3+avx requires avx"
39
+ #endif
40
+
41
+ namespace types
42
+ {
43
+
44
+ XSIMD_DECLARE_SIMD_REGISTER_ALIAS(fma3<avx>, avx);
45
+
46
+ }
47
+ #endif
48
+
49
+ }
50
+ #endif
@@ -0,0 +1,50 @@
1
+ /***************************************************************************
2
+ * Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and *
3
+ * Martin Renou *
4
+ * Copyright (c) QuantStack *
5
+ * Copyright (c) Serge Guelton *
6
+ * *
7
+ * Distributed under the terms of the BSD 3-Clause License. *
8
+ * *
9
+ * The full license is in the file LICENSE, distributed with this software. *
10
+ ****************************************************************************/
11
+
12
+ #ifndef XSIMD_FMA3_SSE_REGISTER_HPP
13
+ #define XSIMD_FMA3_SSE_REGISTER_HPP
14
+
15
+ #include "./xsimd_sse4_2_register.hpp"
16
+
17
+ namespace xsimd
18
+ {
19
+ template <typename arch>
20
+ struct fma3;
21
+
22
+ /**
23
+ * @ingroup architectures
24
+ *
25
+ * SSE4.2 + FMA instructions
26
+ */
27
+ template <>
28
+ struct fma3<sse4_2> : sse4_2
29
+ {
30
+ static constexpr bool supported() noexcept { return XSIMD_WITH_FMA3_SSE; }
31
+ static constexpr bool available() noexcept { return true; }
32
+ static constexpr char const* name() noexcept { return "fma3+sse4.2"; }
33
+ };
34
+
35
+ #if XSIMD_WITH_FMA3_SSE
36
+
37
+ #if !XSIMD_WITH_SSE4_2
38
+ #error "architecture inconsistency: fma3+sse4.2 requires sse4.2"
39
+ #endif
40
+
41
+ namespace types
42
+ {
43
+
44
+ XSIMD_DECLARE_SIMD_REGISTER_ALIAS(fma3<sse4_2>, sse4_2);
45
+
46
+ }
47
+ #endif
48
+
49
+ }
50
+ #endif
@@ -0,0 +1,50 @@
1
+ /***************************************************************************
2
+ * Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and *
3
+ * Martin Renou *
4
+ * Copyright (c) QuantStack *
5
+ * Copyright (c) Serge Guelton *
6
+ * *
7
+ * Distributed under the terms of the BSD 3-Clause License. *
8
+ * *
9
+ * The full license is in the file LICENSE, distributed with this software. *
10
+ ****************************************************************************/
11
+
12
+ #ifndef XSIMD_FMA4_REGISTER_HPP
13
+ #define XSIMD_FMA4_REGISTER_HPP
14
+
15
+ #include "./xsimd_sse4_2_register.hpp"
16
+
17
+ #if XSIMD_WITH_FMA4
18
+ #include <x86intrin.h>
19
+ #endif
20
+
21
+ namespace xsimd
22
+ {
23
+ /**
24
+ * @ingroup architectures
25
+ *
26
+ * SSE4.2 + FMA4 instructions
27
+ */
28
+ struct fma4 : sse4_2
29
+ {
30
+ static constexpr bool supported() noexcept { return XSIMD_WITH_FMA4; }
31
+ static constexpr bool available() noexcept { return true; }
32
+ static constexpr char const* name() noexcept { return "fma4"; }
33
+ };
34
+
35
+ #if XSIMD_WITH_FMA4
36
+
37
+ #if !XSIMD_WITH_SSE4_2
38
+ #error "architecture inconsistency: fma4 requires sse4.2"
39
+ #endif
40
+
41
+ namespace types
42
+ {
43
+
44
+ XSIMD_DECLARE_SIMD_REGISTER_ALIAS(fma4, sse4_2);
45
+
46
+ }
47
+ #endif
48
+
49
+ }
50
+ #endif
@@ -0,0 +1,55 @@
1
+ /***************************************************************************
2
+ * Copyright (c) Johan Mabille, Sylvain Corlay, Wolf Vollprecht and *
3
+ * Martin Renou *
4
+ * Copyright (c) QuantStack *
5
+ * Copyright (c) Serge Guelton *
6
+ * *
7
+ * Distributed under the terms of the BSD 3-Clause License. *
8
+ * *
9
+ * The full license is in the file LICENSE, distributed with this software. *
10
+ ****************************************************************************/
11
+
12
+ #ifndef XSIMD_I8MM_NEON64_REGISTER_HPP
13
+ #define XSIMD_I8MM_NEON64_REGISTER_HPP
14
+
15
+ #include "./xsimd_neon64_register.hpp"
16
+
17
+ namespace xsimd
18
+ {
19
+ template <typename arch>
20
+ struct i8mm;
21
+
22
+ /**
23
+ * @ingroup architectures
24
+ *
25
+ * Neon64 + i8mm instructions
26
+ */
27
+ template <>
28
+ struct i8mm<neon64> : neon64
29
+ {
30
+ static constexpr bool supported() noexcept { return XSIMD_WITH_I8MM_NEON64; }
31
+ static constexpr bool available() noexcept { return true; }
32
+ static constexpr char const* name() noexcept { return "i8mm+neon64"; }
33
+ };
34
+
35
+ #if XSIMD_WITH_I8MM_NEON64
36
+
37
+ #if !XSIMD_WITH_NEON64
38
+ #error "architecture inconsistency: i8mm+neon64 requires neon64"
39
+ #endif
40
+
41
+ namespace types
42
+ {
43
+
44
+ XSIMD_DECLARE_SIMD_REGISTER_ALIAS(i8mm<neon64>, neon64);
45
+
46
+ template <class T>
47
+ struct get_bool_simd_register<T, i8mm<neon64>>
48
+ : detail::neon_bool_simd_register<T, i8mm<neon64>>
49
+ {
50
+ };
51
+ }
52
+ #endif
53
+
54
+ }
55
+ #endif