mixle 0.6.0__tar.gz

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 (794) hide show
  1. mixle-0.6.0/LICENSE +21 -0
  2. mixle-0.6.0/MANIFEST.in +1 -0
  3. mixle-0.6.0/NOTICE +21 -0
  4. mixle-0.6.0/PKG-INFO +435 -0
  5. mixle-0.6.0/README.md +349 -0
  6. mixle-0.6.0/mixle/__init__.py +62 -0
  7. mixle-0.6.0/mixle/analysis/__init__.py +112 -0
  8. mixle-0.6.0/mixle/analysis/covariance_shrinkage.py +171 -0
  9. mixle-0.6.0/mixle/analysis/coverage.py +334 -0
  10. mixle-0.6.0/mixle/analysis/extreme.py +229 -0
  11. mixle-0.6.0/mixle/analysis/kde.py +201 -0
  12. mixle-0.6.0/mixle/analysis/kriging.py +306 -0
  13. mixle-0.6.0/mixle/analysis/max_stable.py +115 -0
  14. mixle-0.6.0/mixle/analysis/rank_aggregation.py +210 -0
  15. mixle-0.6.0/mixle/analysis/spatial_mixture.py +124 -0
  16. mixle-0.6.0/mixle/capability.py +854 -0
  17. mixle-0.6.0/mixle/contracts.py +131 -0
  18. mixle-0.6.0/mixle/data/__init__.py +113 -0
  19. mixle-0.6.0/mixle/data/core.py +116 -0
  20. mixle-0.6.0/mixle/data/encoded_io.py +54 -0
  21. mixle-0.6.0/mixle/data/hashing.py +106 -0
  22. mixle-0.6.0/mixle/data/partition.py +59 -0
  23. mixle-0.6.0/mixle/data/schema.py +194 -0
  24. mixle-0.6.0/mixle/data/sources/__init__.py +46 -0
  25. mixle-0.6.0/mixle/data/sources/arrow_source.py +66 -0
  26. mixle-0.6.0/mixle/data/sources/graph_source.py +299 -0
  27. mixle-0.6.0/mixle/data/sources/hadoop_source.py +71 -0
  28. mixle-0.6.0/mixle/data/sources/mongo_source.py +48 -0
  29. mixle-0.6.0/mixle/data/sources/pandas_source.py +110 -0
  30. mixle-0.6.0/mixle/data/sources/spark_source.py +46 -0
  31. mixle-0.6.0/mixle/data/sources/sql_source.py +45 -0
  32. mixle-0.6.0/mixle/data/sources/text_source.py +78 -0
  33. mixle-0.6.0/mixle/data/structure.py +122 -0
  34. mixle-0.6.0/mixle/data/validate.py +69 -0
  35. mixle-0.6.0/mixle/dist.py +13 -0
  36. mixle-0.6.0/mixle/doe/__init__.py +198 -0
  37. mixle-0.6.0/mixle/doe/_contracts.py +67 -0
  38. mixle-0.6.0/mixle/doe/active.py +167 -0
  39. mixle-0.6.0/mixle/doe/analysis.py +234 -0
  40. mixle-0.6.0/mixle/doe/batch.py +185 -0
  41. mixle-0.6.0/mixle/doe/bayesopt.py +482 -0
  42. mixle-0.6.0/mixle/doe/calibrate.py +115 -0
  43. mixle-0.6.0/mixle/doe/constrained.py +207 -0
  44. mixle-0.6.0/mixle/doe/designs.py +288 -0
  45. mixle-0.6.0/mixle/doe/entropy.py +117 -0
  46. mixle-0.6.0/mixle/doe/factorial.py +197 -0
  47. mixle-0.6.0/mixle/doe/mixture.py +85 -0
  48. mixle-0.6.0/mixle/doe/multifidelity.py +117 -0
  49. mixle-0.6.0/mixle/doe/multiobjective.py +126 -0
  50. mixle-0.6.0/mixle/doe/optimal.py +288 -0
  51. mixle-0.6.0/mixle/doe/optimizer.py +171 -0
  52. mixle-0.6.0/mixle/doe/propagate.py +145 -0
  53. mixle-0.6.0/mixle/doe/sensitivity.py +215 -0
  54. mixle-0.6.0/mixle/doe/trust_region.py +198 -0
  55. mixle-0.6.0/mixle/engines/__init__.py +128 -0
  56. mixle-0.6.0/mixle/engines/arithmetic.py +191 -0
  57. mixle-0.6.0/mixle/engines/base.py +179 -0
  58. mixle-0.6.0/mixle/engines/jax_engine.py +142 -0
  59. mixle-0.6.0/mixle/engines/numpy_engine.py +127 -0
  60. mixle-0.6.0/mixle/engines/precision.py +170 -0
  61. mixle-0.6.0/mixle/engines/symbolic_engine.py +567 -0
  62. mixle-0.6.0/mixle/engines/symbolic_export.py +279 -0
  63. mixle-0.6.0/mixle/engines/torch_engine.py +297 -0
  64. mixle-0.6.0/mixle/enumeration/__init__.py +94 -0
  65. mixle-0.6.0/mixle/enumeration/algorithms.py +53 -0
  66. mixle-0.6.0/mixle/enumeration/assignment.py +104 -0
  67. mixle-0.6.0/mixle/enumeration/best_first.py +651 -0
  68. mixle-0.6.0/mixle/enumeration/density_rank.py +943 -0
  69. mixle-0.6.0/mixle/enumeration/hmm_paths.py +101 -0
  70. mixle-0.6.0/mixle/enumeration/model_enumeration.py +327 -0
  71. mixle-0.6.0/mixle/enumeration/quantization/__init__.py +1 -0
  72. mixle-0.6.0/mixle/enumeration/quantization/core.py +634 -0
  73. mixle-0.6.0/mixle/enumeration/quantization/parallel.py +189 -0
  74. mixle-0.6.0/mixle/enumeration/quantization/seek.py +384 -0
  75. mixle-0.6.0/mixle/enumeration/quantization/semiring.py +370 -0
  76. mixle-0.6.0/mixle/enumeration/spanning.py +110 -0
  77. mixle-0.6.0/mixle/enumeration/streams.py +107 -0
  78. mixle-0.6.0/mixle/inference/__init__.py +387 -0
  79. mixle-0.6.0/mixle/inference/_advi.py +103 -0
  80. mixle-0.6.0/mixle/inference/backends.py +127 -0
  81. mixle-0.6.0/mixle/inference/block_gibbs.py +84 -0
  82. mixle-0.6.0/mixle/inference/calibration.py +368 -0
  83. mixle-0.6.0/mixle/inference/conformal.py +233 -0
  84. mixle-0.6.0/mixle/inference/cross_validation.py +336 -0
  85. mixle-0.6.0/mixle/inference/diagnostics.py +250 -0
  86. mixle-0.6.0/mixle/inference/em.py +781 -0
  87. mixle-0.6.0/mixle/inference/errors_in_variables.py +150 -0
  88. mixle-0.6.0/mixle/inference/estimation.py +1074 -0
  89. mixle-0.6.0/mixle/inference/fisher.py +788 -0
  90. mixle-0.6.0/mixle/inference/glm.py +491 -0
  91. mixle-0.6.0/mixle/inference/gradient_fit.py +656 -0
  92. mixle-0.6.0/mixle/inference/mcmc/__init__.py +85 -0
  93. mixle-0.6.0/mixle/inference/mcmc/conjugate.py +158 -0
  94. mixle-0.6.0/mixle/inference/mcmc/gradients.py +91 -0
  95. mixle-0.6.0/mixle/inference/mcmc/nuts_numba.py +245 -0
  96. mixle-0.6.0/mixle/inference/mcmc/nuts_torch.py +249 -0
  97. mixle-0.6.0/mixle/inference/mcmc/parameter_bridge.py +467 -0
  98. mixle-0.6.0/mixle/inference/mcmc/proposals.py +372 -0
  99. mixle-0.6.0/mixle/inference/mcmc/samplers.py +1077 -0
  100. mixle-0.6.0/mixle/inference/model_comparison.py +174 -0
  101. mixle-0.6.0/mixle/inference/multiple_testing.py +224 -0
  102. mixle-0.6.0/mixle/inference/nonparametric.py +510 -0
  103. mixle-0.6.0/mixle/inference/objectives.py +756 -0
  104. mixle-0.6.0/mixle/inference/ordinal.py +186 -0
  105. mixle-0.6.0/mixle/inference/posterior.py +223 -0
  106. mixle-0.6.0/mixle/inference/priors.py +274 -0
  107. mixle-0.6.0/mixle/inference/production/__init__.py +43 -0
  108. mixle-0.6.0/mixle/inference/production/drift.py +181 -0
  109. mixle-0.6.0/mixle/inference/production/monitor.py +84 -0
  110. mixle-0.6.0/mixle/inference/production/provenance.py +307 -0
  111. mixle-0.6.0/mixle/inference/production/registry.py +176 -0
  112. mixle-0.6.0/mixle/inference/production/serving.py +113 -0
  113. mixle-0.6.0/mixle/inference/resampling.py +442 -0
  114. mixle-0.6.0/mixle/inference/robust.py +215 -0
  115. mixle-0.6.0/mixle/inference/scoring.py +349 -0
  116. mixle-0.6.0/mixle/inference/streaming.py +248 -0
  117. mixle-0.6.0/mixle/inference/survival.py +543 -0
  118. mixle-0.6.0/mixle/inference/target.py +581 -0
  119. mixle-0.6.0/mixle/models/__init__.py +98 -0
  120. mixle-0.6.0/mixle/models/_forest.py +246 -0
  121. mixle-0.6.0/mixle/models/_kernels.py +100 -0
  122. mixle-0.6.0/mixle/models/_result.py +30 -0
  123. mixle-0.6.0/mixle/models/dependence.py +193 -0
  124. mixle-0.6.0/mixle/models/dirichlet_process_mixture.py +317 -0
  125. mixle-0.6.0/mixle/models/gaussian_process.py +238 -0
  126. mixle-0.6.0/mixle/models/grammar.py +196 -0
  127. mixle-0.6.0/mixle/models/knowledge_graph.py +197 -0
  128. mixle-0.6.0/mixle/models/neural.py +320 -0
  129. mixle-0.6.0/mixle/models/partially_observable_markov_decision_process.py +324 -0
  130. mixle-0.6.0/mixle/models/random_forest.py +301 -0
  131. mixle-0.6.0/mixle/models/random_graph.py +361 -0
  132. mixle-0.6.0/mixle/models/sparse_gaussian_process.py +110 -0
  133. mixle-0.6.0/mixle/ops.py +134 -0
  134. mixle-0.6.0/mixle/ppl/__init__.py +249 -0
  135. mixle-0.6.0/mixle/ppl/_grid.py +52 -0
  136. mixle-0.6.0/mixle/ppl/_lowering.py +634 -0
  137. mixle-0.6.0/mixle/ppl/_result.py +88 -0
  138. mixle-0.6.0/mixle/ppl/autograd.py +523 -0
  139. mixle-0.6.0/mixle/ppl/conformal.py +305 -0
  140. mixle-0.6.0/mixle/ppl/core.py +1882 -0
  141. mixle-0.6.0/mixle/ppl/diagnostics.py +285 -0
  142. mixle-0.6.0/mixle/ppl/distributions.py +357 -0
  143. mixle-0.6.0/mixle/ppl/field.py +1186 -0
  144. mixle-0.6.0/mixle/ppl/inference.py +2455 -0
  145. mixle-0.6.0/mixle/ppl/predictive.py +143 -0
  146. mixle-0.6.0/mixle/ppl/priors.py +72 -0
  147. mixle-0.6.0/mixle/ppl/provenance.py +47 -0
  148. mixle-0.6.0/mixle/ppl/regression.py +734 -0
  149. mixle-0.6.0/mixle/ppl/rough_paths.py +75 -0
  150. mixle-0.6.0/mixle/ppl/statespace.py +127 -0
  151. mixle-0.6.0/mixle/ppl/summarize.py +75 -0
  152. mixle-0.6.0/mixle/ppl/survival.py +154 -0
  153. mixle-0.6.0/mixle/ppl/vmp.py +527 -0
  154. mixle-0.6.0/mixle/process.py +28 -0
  155. mixle-0.6.0/mixle/relations.py +1126 -0
  156. mixle-0.6.0/mixle/stats/__init__.py +1966 -0
  157. mixle-0.6.0/mixle/stats/bayes/__init__.py +1 -0
  158. mixle-0.6.0/mixle/stats/bayes/conjugate.py +1133 -0
  159. mixle-0.6.0/mixle/stats/bayes/dict_dirichlet.py +196 -0
  160. mixle-0.6.0/mixle/stats/bayes/dirichlet.py +1010 -0
  161. mixle-0.6.0/mixle/stats/bayes/dirichlet_process_mixture.py +758 -0
  162. mixle-0.6.0/mixle/stats/bayes/hierarchical_dirichlet_process_mixture.py +688 -0
  163. mixle-0.6.0/mixle/stats/bayes/multivariate_normal_gamma.py +211 -0
  164. mixle-0.6.0/mixle/stats/bayes/normal_gamma.py +195 -0
  165. mixle-0.6.0/mixle/stats/bayes/normal_wishart.py +232 -0
  166. mixle-0.6.0/mixle/stats/bayes/pitman_yor.py +372 -0
  167. mixle-0.6.0/mixle/stats/bayes/symmetric_dirichlet.py +141 -0
  168. mixle-0.6.0/mixle/stats/combinator/__init__.py +1 -0
  169. mixle-0.6.0/mixle/stats/combinator/_base.py +88 -0
  170. mixle-0.6.0/mixle/stats/combinator/censored.py +291 -0
  171. mixle-0.6.0/mixle/stats/combinator/composite.py +1170 -0
  172. mixle-0.6.0/mixle/stats/combinator/conditional.py +1494 -0
  173. mixle-0.6.0/mixle/stats/combinator/exponential_tilt.py +539 -0
  174. mixle-0.6.0/mixle/stats/combinator/finite_stochastic_transform.py +296 -0
  175. mixle-0.6.0/mixle/stats/combinator/hurdle.py +294 -0
  176. mixle-0.6.0/mixle/stats/combinator/ignored.py +288 -0
  177. mixle-0.6.0/mixle/stats/combinator/null_dist.py +457 -0
  178. mixle-0.6.0/mixle/stats/combinator/optional.py +893 -0
  179. mixle-0.6.0/mixle/stats/combinator/record.py +598 -0
  180. mixle-0.6.0/mixle/stats/combinator/select.py +823 -0
  181. mixle-0.6.0/mixle/stats/combinator/sequence.py +1366 -0
  182. mixle-0.6.0/mixle/stats/combinator/survival.py +257 -0
  183. mixle-0.6.0/mixle/stats/combinator/transform.py +558 -0
  184. mixle-0.6.0/mixle/stats/combinator/truncated.py +316 -0
  185. mixle-0.6.0/mixle/stats/combinator/weighted.py +481 -0
  186. mixle-0.6.0/mixle/stats/combinator/zero_inflated.py +266 -0
  187. mixle-0.6.0/mixle/stats/compute/__init__.py +1 -0
  188. mixle-0.6.0/mixle/stats/compute/_sampling.py +48 -0
  189. mixle-0.6.0/mixle/stats/compute/backend.py +65 -0
  190. mixle-0.6.0/mixle/stats/compute/capabilities.py +110 -0
  191. mixle-0.6.0/mixle/stats/compute/declarations.py +1493 -0
  192. mixle-0.6.0/mixle/stats/compute/decomposition.py +122 -0
  193. mixle-0.6.0/mixle/stats/compute/encoded.py +93 -0
  194. mixle-0.6.0/mixle/stats/compute/exp_family.py +501 -0
  195. mixle-0.6.0/mixle/stats/compute/fused_codegen.py +1238 -0
  196. mixle-0.6.0/mixle/stats/compute/fused_kernels.py +1415 -0
  197. mixle-0.6.0/mixle/stats/compute/fused_nested.py +341 -0
  198. mixle-0.6.0/mixle/stats/compute/gradient.py +622 -0
  199. mixle-0.6.0/mixle/stats/compute/kernel.py +677 -0
  200. mixle-0.6.0/mixle/stats/compute/pdist.py +1220 -0
  201. mixle-0.6.0/mixle/stats/compute/posterior.py +279 -0
  202. mixle-0.6.0/mixle/stats/compute/sampling_api.py +103 -0
  203. mixle-0.6.0/mixle/stats/compute/sequence.py +606 -0
  204. mixle-0.6.0/mixle/stats/compute/stacked.py +657 -0
  205. mixle-0.6.0/mixle/stats/compute/torch_mixture.py +278 -0
  206. mixle-0.6.0/mixle/stats/directional/__init__.py +1 -0
  207. mixle-0.6.0/mixle/stats/directional/bingham.py +260 -0
  208. mixle-0.6.0/mixle/stats/directional/kent.py +295 -0
  209. mixle-0.6.0/mixle/stats/directional/projected_normal.py +224 -0
  210. mixle-0.6.0/mixle/stats/directional/von_mises.py +413 -0
  211. mixle-0.6.0/mixle/stats/directional/von_mises_fisher.py +775 -0
  212. mixle-0.6.0/mixle/stats/directional/watson.py +246 -0
  213. mixle-0.6.0/mixle/stats/directional/wrapped_cauchy.py +208 -0
  214. mixle-0.6.0/mixle/stats/directional/wrapped_normal.py +215 -0
  215. mixle-0.6.0/mixle/stats/graphs/__init__.py +1 -0
  216. mixle-0.6.0/mixle/stats/graphs/erdos_renyi_graph.py +380 -0
  217. mixle-0.6.0/mixle/stats/graphs/hyperedge_replacement_grammar.py +603 -0
  218. mixle-0.6.0/mixle/stats/graphs/knowledge_graph.py +602 -0
  219. mixle-0.6.0/mixle/stats/graphs/random_dot_product_graph.py +274 -0
  220. mixle-0.6.0/mixle/stats/graphs/stochastic_block_graph.py +596 -0
  221. mixle-0.6.0/mixle/stats/graphs/temporal_graph_grammar.py +2311 -0
  222. mixle-0.6.0/mixle/stats/graphs/vertex_replacement_grammar.py +954 -0
  223. mixle-0.6.0/mixle/stats/latent/__init__.py +1 -0
  224. mixle-0.6.0/mixle/stats/latent/_hidden_markov_numba_kernels.py +298 -0
  225. mixle-0.6.0/mixle/stats/latent/chained_attention.py +353 -0
  226. mixle-0.6.0/mixle/stats/latent/dirac_length.py +1023 -0
  227. mixle-0.6.0/mixle/stats/latent/gaussian_mixture.py +368 -0
  228. mixle-0.6.0/mixle/stats/latent/heterogeneous_mixture.py +1180 -0
  229. mixle-0.6.0/mixle/stats/latent/heterogeneous_pcfg.py +1439 -0
  230. mixle-0.6.0/mixle/stats/latent/hidden_association.py +951 -0
  231. mixle-0.6.0/mixle/stats/latent/hidden_markov.py +4060 -0
  232. mixle-0.6.0/mixle/stats/latent/hierarchical.py +189 -0
  233. mixle-0.6.0/mixle/stats/latent/hierarchical_mixture.py +1251 -0
  234. mixle-0.6.0/mixle/stats/latent/hmm_determinize.py +426 -0
  235. mixle-0.6.0/mixle/stats/latent/indian_buffet_process.py +638 -0
  236. mixle-0.6.0/mixle/stats/latent/integer_hidden_association.py +1508 -0
  237. mixle-0.6.0/mixle/stats/latent/integer_probabilistic_latent_semantic_indexing.py +1375 -0
  238. mixle-0.6.0/mixle/stats/latent/joint_mixture.py +1316 -0
  239. mixle-0.6.0/mixle/stats/latent/labeled_lda.py +1611 -0
  240. mixle-0.6.0/mixle/stats/latent/lda.py +1728 -0
  241. mixle-0.6.0/mixle/stats/latent/lookback_hidden_markov_model.py +1378 -0
  242. mixle-0.6.0/mixle/stats/latent/mixture.py +1883 -0
  243. mixle-0.6.0/mixle/stats/latent/probabilistic_pca.py +318 -0
  244. mixle-0.6.0/mixle/stats/latent/quantized_hidden_markov_model.py +958 -0
  245. mixle-0.6.0/mixle/stats/latent/responsibility_attention.py +461 -0
  246. mixle-0.6.0/mixle/stats/latent/segmental_hidden_markov_model.py +751 -0
  247. mixle-0.6.0/mixle/stats/latent/semi_supervised_hidden_markov_model.py +507 -0
  248. mixle-0.6.0/mixle/stats/latent/semi_supervised_mixture.py +1070 -0
  249. mixle-0.6.0/mixle/stats/latent/tree_hidden_markov_model.py +2564 -0
  250. mixle-0.6.0/mixle/stats/latent/variational_embedding_attention.py +427 -0
  251. mixle-0.6.0/mixle/stats/latent/variational_multihop_attention.py +365 -0
  252. mixle-0.6.0/mixle/stats/matrix/__init__.py +1 -0
  253. mixle-0.6.0/mixle/stats/matrix/inverse_wishart.py +165 -0
  254. mixle-0.6.0/mixle/stats/matrix/lkj.py +264 -0
  255. mixle-0.6.0/mixle/stats/matrix/matrix_normal.py +253 -0
  256. mixle-0.6.0/mixle/stats/matrix/wishart.py +325 -0
  257. mixle-0.6.0/mixle/stats/missing.py +94 -0
  258. mixle-0.6.0/mixle/stats/multivariate/__init__.py +1 -0
  259. mixle-0.6.0/mixle/stats/multivariate/categorical_multinomial.py +1097 -0
  260. mixle-0.6.0/mixle/stats/multivariate/composition.py +212 -0
  261. mixle-0.6.0/mixle/stats/multivariate/diagonal_gaussian.py +887 -0
  262. mixle-0.6.0/mixle/stats/multivariate/dirichlet_multinomial.py +231 -0
  263. mixle-0.6.0/mixle/stats/multivariate/gaussian_copula.py +223 -0
  264. mixle-0.6.0/mixle/stats/multivariate/integer_multinomial.py +1206 -0
  265. mixle-0.6.0/mixle/stats/multivariate/multivariate_gaussian.py +965 -0
  266. mixle-0.6.0/mixle/stats/multivariate/multivariate_student_t.py +472 -0
  267. mixle-0.6.0/mixle/stats/processes/__init__.py +1 -0
  268. mixle-0.6.0/mixle/stats/processes/birth_death.py +335 -0
  269. mixle-0.6.0/mixle/stats/processes/chinese_restaurant_process.py +236 -0
  270. mixle-0.6.0/mixle/stats/processes/hawkes_process.py +430 -0
  271. mixle-0.6.0/mixle/stats/processes/inhomogeneous_poisson.py +336 -0
  272. mixle-0.6.0/mixle/stats/processes/multivariate_hawkes.py +390 -0
  273. mixle-0.6.0/mixle/stats/processes/power_law_hawkes.py +279 -0
  274. mixle-0.6.0/mixle/stats/processes/renewal_process.py +289 -0
  275. mixle-0.6.0/mixle/stats/processes/temporal.py +353 -0
  276. mixle-0.6.0/mixle/stats/rankings/__init__.py +1 -0
  277. mixle-0.6.0/mixle/stats/rankings/_permutation_kernels.py +271 -0
  278. mixle-0.6.0/mixle/stats/rankings/bradley_terry.py +272 -0
  279. mixle-0.6.0/mixle/stats/rankings/ewens.py +268 -0
  280. mixle-0.6.0/mixle/stats/rankings/generalized_mallows.py +612 -0
  281. mixle-0.6.0/mixle/stats/rankings/generalized_mallows_model.py +308 -0
  282. mixle-0.6.0/mixle/stats/rankings/low_rank_permutation.py +309 -0
  283. mixle-0.6.0/mixle/stats/rankings/mallows.py +387 -0
  284. mixle-0.6.0/mixle/stats/rankings/matching.py +369 -0
  285. mixle-0.6.0/mixle/stats/rankings/paired_comparison.py +515 -0
  286. mixle-0.6.0/mixle/stats/rankings/plackett_luce.py +530 -0
  287. mixle-0.6.0/mixle/stats/rankings/spearman_rho.py +655 -0
  288. mixle-0.6.0/mixle/stats/rankings/thurstone.py +341 -0
  289. mixle-0.6.0/mixle/stats/sequences/__init__.py +1 -0
  290. mixle-0.6.0/mixle/stats/sequences/_keyed_accumulator.py +56 -0
  291. mixle-0.6.0/mixle/stats/sequences/integer_markov_chain.py +1390 -0
  292. mixle-0.6.0/mixle/stats/sequences/markov_chain.py +2001 -0
  293. mixle-0.6.0/mixle/stats/sequences/markov_transform.py +848 -0
  294. mixle-0.6.0/mixle/stats/sequences/sparse_markov_transform.py +942 -0
  295. mixle-0.6.0/mixle/stats/sets/__init__.py +1 -0
  296. mixle-0.6.0/mixle/stats/sets/bernoulli_set.py +898 -0
  297. mixle-0.6.0/mixle/stats/sets/integer_bernoulli_edit.py +1001 -0
  298. mixle-0.6.0/mixle/stats/sets/integer_bernoulli_set.py +555 -0
  299. mixle-0.6.0/mixle/stats/sets/integer_step_bernoulli_edit.py +352 -0
  300. mixle-0.6.0/mixle/stats/trees/__init__.py +1 -0
  301. mixle-0.6.0/mixle/stats/trees/chow_liu_tree.py +713 -0
  302. mixle-0.6.0/mixle/stats/trees/integer_chow_liu_tree.py +733 -0
  303. mixle-0.6.0/mixle/stats/trees/spanning_tree.py +413 -0
  304. mixle-0.6.0/mixle/stats/univariate/__init__.py +1 -0
  305. mixle-0.6.0/mixle/stats/univariate/continuous/__init__.py +1 -0
  306. mixle-0.6.0/mixle/stats/univariate/continuous/beta.py +448 -0
  307. mixle-0.6.0/mixle/stats/univariate/continuous/exgaussian.py +343 -0
  308. mixle-0.6.0/mixle/stats/univariate/continuous/exponential.py +675 -0
  309. mixle-0.6.0/mixle/stats/univariate/continuous/gamma.py +770 -0
  310. mixle-0.6.0/mixle/stats/univariate/continuous/gaussian.py +815 -0
  311. mixle-0.6.0/mixle/stats/univariate/continuous/generalized_extreme_value.py +309 -0
  312. mixle-0.6.0/mixle/stats/univariate/continuous/generalized_gaussian.py +266 -0
  313. mixle-0.6.0/mixle/stats/univariate/continuous/generalized_pareto.py +267 -0
  314. mixle-0.6.0/mixle/stats/univariate/continuous/gumbel.py +342 -0
  315. mixle-0.6.0/mixle/stats/univariate/continuous/half_normal.py +382 -0
  316. mixle-0.6.0/mixle/stats/univariate/continuous/inverse_gamma.py +425 -0
  317. mixle-0.6.0/mixle/stats/univariate/continuous/inverse_gaussian.py +452 -0
  318. mixle-0.6.0/mixle/stats/univariate/continuous/laplace.py +325 -0
  319. mixle-0.6.0/mixle/stats/univariate/continuous/log_gaussian.py +797 -0
  320. mixle-0.6.0/mixle/stats/univariate/continuous/logistic.py +302 -0
  321. mixle-0.6.0/mixle/stats/univariate/continuous/nakagami.py +220 -0
  322. mixle-0.6.0/mixle/stats/univariate/continuous/pareto.py +378 -0
  323. mixle-0.6.0/mixle/stats/univariate/continuous/rayleigh.py +331 -0
  324. mixle-0.6.0/mixle/stats/univariate/continuous/rician.py +238 -0
  325. mixle-0.6.0/mixle/stats/univariate/continuous/skew_normal.py +271 -0
  326. mixle-0.6.0/mixle/stats/univariate/continuous/student_t.py +310 -0
  327. mixle-0.6.0/mixle/stats/univariate/continuous/tweedie.py +298 -0
  328. mixle-0.6.0/mixle/stats/univariate/continuous/uniform.py +317 -0
  329. mixle-0.6.0/mixle/stats/univariate/continuous/weibull.py +385 -0
  330. mixle-0.6.0/mixle/stats/univariate/discrete/__init__.py +1 -0
  331. mixle-0.6.0/mixle/stats/univariate/discrete/bernoulli.py +450 -0
  332. mixle-0.6.0/mixle/stats/univariate/discrete/beta_binomial.py +214 -0
  333. mixle-0.6.0/mixle/stats/univariate/discrete/binomial.py +1128 -0
  334. mixle-0.6.0/mixle/stats/univariate/discrete/categorical.py +994 -0
  335. mixle-0.6.0/mixle/stats/univariate/discrete/geometric.py +784 -0
  336. mixle-0.6.0/mixle/stats/univariate/discrete/integer_categorical.py +1046 -0
  337. mixle-0.6.0/mixle/stats/univariate/discrete/integer_uniform_spike.py +805 -0
  338. mixle-0.6.0/mixle/stats/univariate/discrete/logseries.py +384 -0
  339. mixle-0.6.0/mixle/stats/univariate/discrete/negative_binomial.py +522 -0
  340. mixle-0.6.0/mixle/stats/univariate/discrete/point_mass.py +251 -0
  341. mixle-0.6.0/mixle/stats/univariate/discrete/poisson.py +813 -0
  342. mixle-0.6.0/mixle/stats/univariate/discrete/skellam.py +284 -0
  343. mixle-0.6.0/mixle/tests/admm_test.py +46 -0
  344. mixle-0.6.0/mixle/tests/anisotropic_kernel_test.py +46 -0
  345. mixle-0.6.0/mixle/tests/api_naming_aliases_test.py +234 -0
  346. mixle-0.6.0/mixle/tests/arithmetic_constants_test.py +78 -0
  347. mixle-0.6.0/mixle/tests/assignment_kbest_test.py +75 -0
  348. mixle-0.6.0/mixle/tests/audit_fixes_regression_test.py +175 -0
  349. mixle-0.6.0/mixle/tests/auto_precision_test.py +88 -0
  350. mixle-0.6.0/mixle/tests/automatic_beta_test.py +39 -0
  351. mixle-0.6.0/mixle/tests/automatic_detectors_test.py +38 -0
  352. mixle-0.6.0/mixle/tests/automatic_exgaussian_test.py +36 -0
  353. mixle-0.6.0/mixle/tests/automatic_generalized_extreme_value_test.py +46 -0
  354. mixle-0.6.0/mixle/tests/automatic_generalized_gaussian_test.py +44 -0
  355. mixle-0.6.0/mixle/tests/automatic_generalized_pareto_test.py +46 -0
  356. mixle-0.6.0/mixle/tests/automatic_gof_test.py +43 -0
  357. mixle-0.6.0/mixle/tests/automatic_gumbel_test.py +34 -0
  358. mixle-0.6.0/mixle/tests/automatic_input_types_test.py +34 -0
  359. mixle-0.6.0/mixle/tests/automatic_inverse_gaussian_test.py +40 -0
  360. mixle-0.6.0/mixle/tests/automatic_logistic_test.py +38 -0
  361. mixle-0.6.0/mixle/tests/automatic_lognormal_test.py +64 -0
  362. mixle-0.6.0/mixle/tests/automatic_mixture_test.py +37 -0
  363. mixle-0.6.0/mixle/tests/automatic_model_weights_test.py +49 -0
  364. mixle-0.6.0/mixle/tests/automatic_negative_binomial_test.py +28 -0
  365. mixle-0.6.0/mixle/tests/automatic_pareto_test.py +38 -0
  366. mixle-0.6.0/mixle/tests/automatic_scientific_test.py +419 -0
  367. mixle-0.6.0/mixle/tests/automatic_skew_normal_test.py +37 -0
  368. mixle-0.6.0/mixle/tests/automatic_studentt_test.py +39 -0
  369. mixle-0.6.0/mixle/tests/automatic_test.py +211 -0
  370. mixle-0.6.0/mixle/tests/automatic_tweedie_test.py +43 -0
  371. mixle-0.6.0/mixle/tests/automatic_weibull_test.py +37 -0
  372. mixle-0.6.0/mixle/tests/backend_scoring_test.py +1814 -0
  373. mixle-0.6.0/mixle/tests/balance_test.py +238 -0
  374. mixle-0.6.0/mixle/tests/base_dist_test.py +446 -0
  375. mixle-0.6.0/mixle/tests/bayes_streaming_test.py +387 -0
  376. mixle-0.6.0/mixle/tests/bayes_test.py +886 -0
  377. mixle-0.6.0/mixle/tests/bernoulli_conjugate_boundary_test.py +34 -0
  378. mixle-0.6.0/mixle/tests/beta_binomial_test.py +47 -0
  379. mixle-0.6.0/mixle/tests/bingham_test.py +88 -0
  380. mixle-0.6.0/mixle/tests/birth_death_test.py +57 -0
  381. mixle-0.6.0/mixle/tests/block_gibbs_test.py +67 -0
  382. mixle-0.6.0/mixle/tests/bradley_terry_test.py +72 -0
  383. mixle-0.6.0/mixle/tests/calibration_diagnostics_test.py +133 -0
  384. mixle-0.6.0/mixle/tests/calibration_test.py +60 -0
  385. mixle-0.6.0/mixle/tests/capability_test.py +306 -0
  386. mixle-0.6.0/mixle/tests/cardinality_milp_test.py +57 -0
  387. mixle-0.6.0/mixle/tests/categorical_expfamily_test.py +86 -0
  388. mixle-0.6.0/mixle/tests/categorical_test.py +52 -0
  389. mixle-0.6.0/mixle/tests/cdf_coverage_test.py +47 -0
  390. mixle-0.6.0/mixle/tests/cdf_discrete_test.py +42 -0
  391. mixle-0.6.0/mixle/tests/censored_test.py +100 -0
  392. mixle-0.6.0/mixle/tests/chained_attention_test.py +137 -0
  393. mixle-0.6.0/mixle/tests/checkpoint_test.py +85 -0
  394. mixle-0.6.0/mixle/tests/chinese_restaurant_process_test.py +65 -0
  395. mixle-0.6.0/mixle/tests/chisquare_gof_test.py +39 -0
  396. mixle-0.6.0/mixle/tests/chow_liu_tree_test.py +209 -0
  397. mixle-0.6.0/mixle/tests/clique_test.py +47 -0
  398. mixle-0.6.0/mixle/tests/composition_test.py +71 -0
  399. mixle-0.6.0/mixle/tests/compute_kernel_test.py +767 -0
  400. mixle-0.6.0/mixle/tests/compute_metadata_test.py +1815 -0
  401. mixle-0.6.0/mixle/tests/conditional_audit_test.py +63 -0
  402. mixle-0.6.0/mixle/tests/conformal_array_test.py +123 -0
  403. mixle-0.6.0/mixle/tests/conformal_test.py +226 -0
  404. mixle-0.6.0/mixle/tests/conftest.py +253 -0
  405. mixle-0.6.0/mixle/tests/conjugate_test.py +342 -0
  406. mixle-0.6.0/mixle/tests/consistency_fixes_regression_test.py +113 -0
  407. mixle-0.6.0/mixle/tests/continuous_cdf_test.py +147 -0
  408. mixle-0.6.0/mixle/tests/count_dp_seek_logprob_test.py +49 -0
  409. mixle-0.6.0/mixle/tests/coupled_multiset_enum_test.py +230 -0
  410. mixle-0.6.0/mixle/tests/covariance_shrinkage_test.py +69 -0
  411. mixle-0.6.0/mixle/tests/coverage_estimation_test.py +145 -0
  412. mixle-0.6.0/mixle/tests/cross_validation_test.py +151 -0
  413. mixle-0.6.0/mixle/tests/dask_encoded_data_test.py +175 -0
  414. mixle-0.6.0/mixle/tests/data_layer_test.py +176 -0
  415. mixle-0.6.0/mixle/tests/dataframe_adapter_test.py +171 -0
  416. mixle-0.6.0/mixle/tests/decomposition_test.py +138 -0
  417. mixle-0.6.0/mixle/tests/dense_mass_hmc_test.py +36 -0
  418. mixle-0.6.0/mixle/tests/density_rank_test.py +324 -0
  419. mixle-0.6.0/mixle/tests/dirac_length_engine_test.py +40 -0
  420. mixle-0.6.0/mixle/tests/dirichlet_multinomial_test.py +46 -0
  421. mixle-0.6.0/mixle/tests/distribution_additions_test.py +420 -0
  422. mixle-0.6.0/mixle/tests/docstring_references_test.py +54 -0
  423. mixle-0.6.0/mixle/tests/doe_active_test.py +64 -0
  424. mixle-0.6.0/mixle/tests/doe_analysis_test.py +81 -0
  425. mixle-0.6.0/mixle/tests/doe_batch_test.py +73 -0
  426. mixle-0.6.0/mixle/tests/doe_bayesopt_test.py +201 -0
  427. mixle-0.6.0/mixle/tests/doe_constrained_test.py +93 -0
  428. mixle-0.6.0/mixle/tests/doe_criteria_sensitivity_test.py +75 -0
  429. mixle-0.6.0/mixle/tests/doe_designs_test.py +150 -0
  430. mixle-0.6.0/mixle/tests/doe_entropy_test.py +53 -0
  431. mixle-0.6.0/mixle/tests/doe_factorial_test.py +78 -0
  432. mixle-0.6.0/mixle/tests/doe_mixture_test.py +56 -0
  433. mixle-0.6.0/mixle/tests/doe_multifidelity_test.py +44 -0
  434. mixle-0.6.0/mixle/tests/doe_multiobjective_test.py +66 -0
  435. mixle-0.6.0/mixle/tests/doe_optimal_test.py +132 -0
  436. mixle-0.6.0/mixle/tests/doe_optimizer_test.py +108 -0
  437. mixle-0.6.0/mixle/tests/doe_turbo_test.py +68 -0
  438. mixle-0.6.0/mixle/tests/drift_test.py +74 -0
  439. mixle-0.6.0/mixle/tests/em_nonfinite_guard_test.py +109 -0
  440. mixle-0.6.0/mixle/tests/em_strategies_test.py +331 -0
  441. mixle-0.6.0/mixle/tests/encoded_data_backend_registry_test.py +66 -0
  442. mixle-0.6.0/mixle/tests/engine_accumulate_parity_test.py +90 -0
  443. mixle-0.6.0/mixle/tests/engine_op_parity_test.py +141 -0
  444. mixle-0.6.0/mixle/tests/engine_test.py +205 -0
  445. mixle-0.6.0/mixle/tests/entropy_methods_test.py +57 -0
  446. mixle-0.6.0/mixle/tests/enumeration_test.py +639 -0
  447. mixle-0.6.0/mixle/tests/enumerator_coverage_test.py +207 -0
  448. mixle-0.6.0/mixle/tests/enumerator_methods_test.py +51 -0
  449. mixle-0.6.0/mixle/tests/errors_in_variables_test.py +44 -0
  450. mixle-0.6.0/mixle/tests/estimator_stability_test.py +104 -0
  451. mixle-0.6.0/mixle/tests/ewens_test.py +64 -0
  452. mixle-0.6.0/mixle/tests/exgaussian_test.py +143 -0
  453. mixle-0.6.0/mixle/tests/exp_family_fisher_test.py +53 -0
  454. mixle-0.6.0/mixle/tests/exp_family_test.py +276 -0
  455. mixle-0.6.0/mixle/tests/exponential_tilt_test.py +177 -0
  456. mixle-0.6.0/mixle/tests/extreme_value_test.py +115 -0
  457. mixle-0.6.0/mixle/tests/field_sample_test.py +93 -0
  458. mixle-0.6.0/mixle/tests/field_test.py +225 -0
  459. mixle-0.6.0/mixle/tests/finite_stochastic_transform_test.py +118 -0
  460. mixle-0.6.0/mixle/tests/fisher_view_test.py +740 -0
  461. mixle-0.6.0/mixle/tests/fused_codegen_test.py +612 -0
  462. mixle-0.6.0/mixle/tests/fused_em_association_test.py +209 -0
  463. mixle-0.6.0/mixle/tests/fused_em_hmm_family_test.py +194 -0
  464. mixle-0.6.0/mixle/tests/fused_em_mixtures_test.py +188 -0
  465. mixle-0.6.0/mixle/tests/fused_em_support_bound_merge_test.py +58 -0
  466. mixle-0.6.0/mixle/tests/fused_em_test.py +176 -0
  467. mixle-0.6.0/mixle/tests/fused_em_variational_test.py +164 -0
  468. mixle-0.6.0/mixle/tests/gamma_audit_test.py +59 -0
  469. mixle-0.6.0/mixle/tests/gaussian_copula_test.py +42 -0
  470. mixle-0.6.0/mixle/tests/gaussian_process_matern_test.py +80 -0
  471. mixle-0.6.0/mixle/tests/gaussian_process_monotone_test.py +65 -0
  472. mixle-0.6.0/mixle/tests/generalized_extreme_value_test.py +41 -0
  473. mixle-0.6.0/mixle/tests/generalized_gaussian_test.py +54 -0
  474. mixle-0.6.0/mixle/tests/generalized_mallows_model_test.py +58 -0
  475. mixle-0.6.0/mixle/tests/generalized_mallows_test.py +101 -0
  476. mixle-0.6.0/mixle/tests/generalized_pareto_test.py +45 -0
  477. mixle-0.6.0/mixle/tests/generated_kernel_parity_test.py +160 -0
  478. mixle-0.6.0/mixle/tests/gev_gpd_moments_test.py +40 -0
  479. mixle-0.6.0/mixle/tests/geweke_test.py +29 -0
  480. mixle-0.6.0/mixle/tests/glm_test.py +152 -0
  481. mixle-0.6.0/mixle/tests/gradient_fit_test.py +612 -0
  482. mixle-0.6.0/mixle/tests/gradient_gamma_prior_audit_test.py +68 -0
  483. mixle-0.6.0/mixle/tests/graph_coloring_test.py +51 -0
  484. mixle-0.6.0/mixle/tests/graph_distribution_test.py +218 -0
  485. mixle-0.6.0/mixle/tests/graph_engine_test.py +51 -0
  486. mixle-0.6.0/mixle/tests/graph_source_audit_test.py +38 -0
  487. mixle-0.6.0/mixle/tests/gumbel_test.py +61 -0
  488. mixle-0.6.0/mixle/tests/half_normal_test.py +67 -0
  489. mixle-0.6.0/mixle/tests/hawkes_process_test.py +121 -0
  490. mixle-0.6.0/mixle/tests/heterogeneous_pcfg_test.py +239 -0
  491. mixle-0.6.0/mixle/tests/hidden_association_empty_given_audit_test.py +97 -0
  492. mixle-0.6.0/mixle/tests/hidden_association_engine_test.py +80 -0
  493. mixle-0.6.0/mixle/tests/hidden_association_keys_test.py +93 -0
  494. mixle-0.6.0/mixle/tests/hierarchical_test.py +62 -0
  495. mixle-0.6.0/mixle/tests/hmixture_engine_test.py +57 -0
  496. mixle-0.6.0/mixle/tests/hmm_determinize_test.py +132 -0
  497. mixle-0.6.0/mixle/tests/hmm_engine_test.py +193 -0
  498. mixle-0.6.0/mixle/tests/hmm_keys_test.py +36 -0
  499. mixle-0.6.0/mixle/tests/hmm_numba_parity_test.py +63 -0
  500. mixle-0.6.0/mixle/tests/hmm_sampler_batching_test.py +217 -0
  501. mixle-0.6.0/mixle/tests/hmm_steady_state_test.py +73 -0
  502. mixle-0.6.0/mixle/tests/hmm_terminal_states_test.py +223 -0
  503. mixle-0.6.0/mixle/tests/hmm_zero_prob_test.py +92 -0
  504. mixle-0.6.0/mixle/tests/hurdle_test.py +53 -0
  505. mixle-0.6.0/mixle/tests/hvis_test.py +1319 -0
  506. mixle-0.6.0/mixle/tests/hyperedge_replacement_grammar_test.py +122 -0
  507. mixle-0.6.0/mixle/tests/ibp_test.py +117 -0
  508. mixle-0.6.0/mixle/tests/iis_test.py +56 -0
  509. mixle-0.6.0/mixle/tests/infer_backends_test.py +177 -0
  510. mixle-0.6.0/mixle/tests/infer_facade_test.py +186 -0
  511. mixle-0.6.0/mixle/tests/infer_parallel_chains_test.py +52 -0
  512. mixle-0.6.0/mixle/tests/inhomogeneous_poisson_test.py +57 -0
  513. mixle-0.6.0/mixle/tests/int_hidden_association_engine_test.py +63 -0
  514. mixle-0.6.0/mixle/tests/int_hidden_association_test.py +117 -0
  515. mixle-0.6.0/mixle/tests/int_plsi_engine_test.py +49 -0
  516. mixle-0.6.0/mixle/tests/integer_categorical_expfamily_test.py +71 -0
  517. mixle-0.6.0/mixle/tests/integer_markov_chain_audit_test.py +78 -0
  518. mixle-0.6.0/mixle/tests/integer_markov_chain_support_test.py +40 -0
  519. mixle-0.6.0/mixle/tests/integer_multinomial_expfamily_test.py +92 -0
  520. mixle-0.6.0/mixle/tests/inverse_gamma_test.py +76 -0
  521. mixle-0.6.0/mixle/tests/inverse_wishart_test.py +44 -0
  522. mixle-0.6.0/mixle/tests/jax_engine_test.py +100 -0
  523. mixle-0.6.0/mixle/tests/jmixture_engine_test.py +56 -0
  524. mixle-0.6.0/mixle/tests/kde_test.py +95 -0
  525. mixle-0.6.0/mixle/tests/kent_test.py +82 -0
  526. mixle-0.6.0/mixle/tests/kernels_ext_test.py +375 -0
  527. mixle-0.6.0/mixle/tests/kernels_test.py +258 -0
  528. mixle-0.6.0/mixle/tests/key_validation_test.py +59 -0
  529. mixle-0.6.0/mixle/tests/knowledge_gradient_test.py +49 -0
  530. mixle-0.6.0/mixle/tests/knowledge_graph_test.py +176 -0
  531. mixle-0.6.0/mixle/tests/kriging_test.py +138 -0
  532. mixle-0.6.0/mixle/tests/ks_gof_test.py +39 -0
  533. mixle-0.6.0/mixle/tests/latent_posterior_test.py +176 -0
  534. mixle-0.6.0/mixle/tests/lda_engine_test.py +64 -0
  535. mixle-0.6.0/mixle/tests/lda_len_test.py +144 -0
  536. mixle-0.6.0/mixle/tests/leaf_engine_test.py +80 -0
  537. mixle-0.6.0/mixle/tests/lightning_encoded_data_test.py +55 -0
  538. mixle-0.6.0/mixle/tests/lineage_test.py +98 -0
  539. mixle-0.6.0/mixle/tests/lkj_test.py +74 -0
  540. mixle-0.6.0/mixle/tests/llda_alpha_test.py +222 -0
  541. mixle-0.6.0/mixle/tests/llda_engine_test.py +90 -0
  542. mixle-0.6.0/mixle/tests/local_parallel_chunks_test.py +79 -0
  543. mixle-0.6.0/mixle/tests/log_density_convenience_test.py +68 -0
  544. mixle-0.6.0/mixle/tests/logei_acquisition_test.py +51 -0
  545. mixle-0.6.0/mixle/tests/logseries_test.py +72 -0
  546. mixle-0.6.0/mixle/tests/lookback_hmm_engine_test.py +109 -0
  547. mixle-0.6.0/mixle/tests/lookback_lag0_test.py +284 -0
  548. mixle-0.6.0/mixle/tests/lookback_terminal_states_test.py +93 -0
  549. mixle-0.6.0/mixle/tests/low_rank_permutation_test.py +59 -0
  550. mixle-0.6.0/mixle/tests/mallows_test.py +107 -0
  551. mixle-0.6.0/mixle/tests/marginal_seek_test.py +220 -0
  552. mixle-0.6.0/mixle/tests/markov_chain_audit_test.py +117 -0
  553. mixle-0.6.0/mixle/tests/markov_transform_engine_test.py +85 -0
  554. mixle-0.6.0/mixle/tests/matching_test.py +87 -0
  555. mixle-0.6.0/mixle/tests/matrix_normal_test.py +49 -0
  556. mixle-0.6.0/mixle/tests/max_flow_test.py +46 -0
  557. mixle-0.6.0/mixle/tests/max_stable_test.py +48 -0
  558. mixle-0.6.0/mixle/tests/mcmc_autograd_test.py +110 -0
  559. mixle-0.6.0/mixle/tests/mcmc_convergence_test.py +125 -0
  560. mixle-0.6.0/mixle/tests/mcmc_diagnostics_test.py +57 -0
  561. mixle-0.6.0/mixle/tests/mcmc_summary_test.py +39 -0
  562. mixle-0.6.0/mixle/tests/mcmc_test.py +772 -0
  563. mixle-0.6.0/mixle/tests/measurement_error_test.py +79 -0
  564. mixle-0.6.0/mixle/tests/milp_test.py +48 -0
  565. mixle-0.6.0/mixle/tests/min_arborescence_test.py +67 -0
  566. mixle-0.6.0/mixle/tests/missing_data_test.py +193 -0
  567. mixle-0.6.0/mixle/tests/mixture_conditional_test.py +100 -0
  568. mixle-0.6.0/mixle/tests/mixture_heterogeneous_test.py +104 -0
  569. mixle-0.6.0/mixle/tests/mixture_stability_test.py +203 -0
  570. mixle-0.6.0/mixle/tests/mode_methods_test.py +59 -0
  571. mixle-0.6.0/mixle/tests/model_comparison_test.py +88 -0
  572. mixle-0.6.0/mixle/tests/model_decomposition_test.py +155 -0
  573. mixle-0.6.0/mixle/tests/model_enumeration_test.py +201 -0
  574. mixle-0.6.0/mixle/tests/model_helpers_test.py +226 -0
  575. mixle-0.6.0/mixle/tests/model_parallel_test.py +455 -0
  576. mixle-0.6.0/mixle/tests/moment_methods_test.py +97 -0
  577. mixle-0.6.0/mixle/tests/multi_field_test.py +141 -0
  578. mixle-0.6.0/mixle/tests/multiple_testing_test.py +120 -0
  579. mixle-0.6.0/mixle/tests/multivariate_gaussian_audit_test.py +43 -0
  580. mixle-0.6.0/mixle/tests/multivariate_hawkes_test.py +75 -0
  581. mixle-0.6.0/mixle/tests/mvn_conditional_test.py +53 -0
  582. mixle-0.6.0/mixle/tests/mvt_conditional_test.py +49 -0
  583. mixle-0.6.0/mixle/tests/mvt_test.py +71 -0
  584. mixle-0.6.0/mixle/tests/nakagami_test.py +56 -0
  585. mixle-0.6.0/mixle/tests/namespaces_test.py +58 -0
  586. mixle-0.6.0/mixle/tests/negative_binomial_estimator_test.py +105 -0
  587. mixle-0.6.0/mixle/tests/nonparametric_test.py +133 -0
  588. mixle-0.6.0/mixle/tests/numerical_guards_test.py +113 -0
  589. mixle-0.6.0/mixle/tests/numerics_test.py +422 -0
  590. mixle-0.6.0/mixle/tests/nuts_mass_adaptation_test.py +67 -0
  591. mixle-0.6.0/mixle/tests/nuts_torch_test.py +77 -0
  592. mixle-0.6.0/mixle/tests/objective_resolution_test.py +84 -0
  593. mixle-0.6.0/mixle/tests/objectives_test.py +498 -0
  594. mixle-0.6.0/mixle/tests/ops_project_test.py +42 -0
  595. mixle-0.6.0/mixle/tests/ops_test.py +75 -0
  596. mixle-0.6.0/mixle/tests/ordinal_test.py +88 -0
  597. mixle-0.6.0/mixle/tests/paired_comparison_test.py +79 -0
  598. mixle-0.6.0/mixle/tests/parallel_test.py +221 -0
  599. mixle-0.6.0/mixle/tests/pareto_expfamily_test.py +59 -0
  600. mixle-0.6.0/mixle/tests/particle_filter_test.py +61 -0
  601. mixle-0.6.0/mixle/tests/pcfg_engine_test.py +68 -0
  602. mixle-0.6.0/mixle/tests/permutation_kernels_test.py +106 -0
  603. mixle-0.6.0/mixle/tests/pitman_yor_test.py +119 -0
  604. mixle-0.6.0/mixle/tests/placement_test.py +390 -0
  605. mixle-0.6.0/mixle/tests/plackett_luce_partial_mle_test.py +57 -0
  606. mixle-0.6.0/mixle/tests/plackett_luce_partial_test.py +59 -0
  607. mixle-0.6.0/mixle/tests/plackett_luce_test.py +84 -0
  608. mixle-0.6.0/mixle/tests/posterior_test.py +94 -0
  609. mixle-0.6.0/mixle/tests/power_law_hawkes_test.py +63 -0
  610. mixle-0.6.0/mixle/tests/ppca_test.py +77 -0
  611. mixle-0.6.0/mixle/tests/ppl_composite_sampling_test.py +207 -0
  612. mixle-0.6.0/mixle/tests/ppl_constraints_test.py +232 -0
  613. mixle-0.6.0/mixle/tests/ppl_convergence_diagnostics_test.py +81 -0
  614. mixle-0.6.0/mixle/tests/ppl_core_test.py +281 -0
  615. mixle-0.6.0/mixle/tests/ppl_engine_test.py +52 -0
  616. mixle-0.6.0/mixle/tests/ppl_hetero_regression_test.py +64 -0
  617. mixle-0.6.0/mixle/tests/ppl_hierarchical_test.py +126 -0
  618. mixle-0.6.0/mixle/tests/ppl_inference_test.py +484 -0
  619. mixle-0.6.0/mixle/tests/ppl_lda_test.py +33 -0
  620. mixle-0.6.0/mixle/tests/ppl_leaf_families_test.py +234 -0
  621. mixle-0.6.0/mixle/tests/ppl_loo_stacking_test.py +44 -0
  622. mixle-0.6.0/mixle/tests/ppl_model_comparison_test.py +132 -0
  623. mixle-0.6.0/mixle/tests/ppl_new_distributions_test.py +111 -0
  624. mixle-0.6.0/mixle/tests/ppl_plate_test.py +102 -0
  625. mixle-0.6.0/mixle/tests/ppl_predictive_test.py +50 -0
  626. mixle-0.6.0/mixle/tests/ppl_provenance_test.py +39 -0
  627. mixle-0.6.0/mixle/tests/ppl_regression_test.py +296 -0
  628. mixle-0.6.0/mixle/tests/ppl_relabel_test.py +60 -0
  629. mixle-0.6.0/mixle/tests/ppl_semimix_test.py +48 -0
  630. mixle-0.6.0/mixle/tests/ppl_separation_test.py +45 -0
  631. mixle-0.6.0/mixle/tests/ppl_soft_constraints_test.py +132 -0
  632. mixle-0.6.0/mixle/tests/ppl_statespace_test.py +65 -0
  633. mixle-0.6.0/mixle/tests/ppl_summarize_test.py +48 -0
  634. mixle-0.6.0/mixle/tests/ppl_survival_test.py +65 -0
  635. mixle-0.6.0/mixle/tests/ppl_vector_params_test.py +178 -0
  636. mixle-0.6.0/mixle/tests/ppl_vmp_test.py +152 -0
  637. mixle-0.6.0/mixle/tests/priors_test.py +69 -0
  638. mixle-0.6.0/mixle/tests/projected_normal_test.py +61 -0
  639. mixle-0.6.0/mixle/tests/propagate_test.py +58 -0
  640. mixle-0.6.0/mixle/tests/provenance_test.py +140 -0
  641. mixle-0.6.0/mixle/tests/quantization_test.py +486 -0
  642. mixle-0.6.0/mixle/tests/quantized_hmm_test.py +339 -0
  643. mixle-0.6.0/mixle/tests/quantized_index_test.py +378 -0
  644. mixle-0.6.0/mixle/tests/quantized_triangular_hmm_test.py +174 -0
  645. mixle-0.6.0/mixle/tests/random_forest_leaf_test.py +123 -0
  646. mixle-0.6.0/mixle/tests/random_graph_models_test.py +85 -0
  647. mixle-0.6.0/mixle/tests/rank_aggregation_test.py +117 -0
  648. mixle-0.6.0/mixle/tests/ranking_lazy_enumerator_test.py +73 -0
  649. mixle-0.6.0/mixle/tests/ray_encoded_data_test.py +64 -0
  650. mixle-0.6.0/mixle/tests/rdpg_test.py +62 -0
  651. mixle-0.6.0/mixle/tests/reflective_hmc_test.py +68 -0
  652. mixle-0.6.0/mixle/tests/relation_sample_test.py +72 -0
  653. mixle-0.6.0/mixle/tests/relations_test.py +229 -0
  654. mixle-0.6.0/mixle/tests/renewal_process_test.py +54 -0
  655. mixle-0.6.0/mixle/tests/resampling_test.py +181 -0
  656. mixle-0.6.0/mixle/tests/responsibility_attention_test.py +231 -0
  657. mixle-0.6.0/mixle/tests/rician_test.py +55 -0
  658. mixle-0.6.0/mixle/tests/robust_covariance_test.py +154 -0
  659. mixle-0.6.0/mixle/tests/rough_paths_test.py +58 -0
  660. mixle-0.6.0/mixle/tests/sampler_accuracy_test.py +215 -0
  661. mixle-0.6.0/mixle/tests/sampler_batching_test.py +89 -0
  662. mixle-0.6.0/mixle/tests/sampler_seed_test.py +574 -0
  663. mixle-0.6.0/mixle/tests/sampler_vectorization_test.py +68 -0
  664. mixle-0.6.0/mixle/tests/sampling_api_test.py +58 -0
  665. mixle-0.6.0/mixle/tests/scipy_golden_test.py +80 -0
  666. mixle-0.6.0/mixle/tests/scoring_rules_test.py +152 -0
  667. mixle-0.6.0/mixle/tests/segmental_engine_test.py +49 -0
  668. mixle-0.6.0/mixle/tests/segmental_hmm_test.py +126 -0
  669. mixle-0.6.0/mixle/tests/segmental_terminal_states_test.py +69 -0
  670. mixle-0.6.0/mixle/tests/semi_supervised_hmm_test.py +123 -0
  671. mixle-0.6.0/mixle/tests/semi_supervised_terminal_states_test.py +70 -0
  672. mixle-0.6.0/mixle/tests/sensitivity_test.py +51 -0
  673. mixle-0.6.0/mixle/tests/serialization_test.py +352 -0
  674. mixle-0.6.0/mixle/tests/serving_test.py +88 -0
  675. mixle-0.6.0/mixle/tests/skellam_logseries_methods_test.py +36 -0
  676. mixle-0.6.0/mixle/tests/skellam_test.py +78 -0
  677. mixle-0.6.0/mixle/tests/skew_kurtosis_test.py +44 -0
  678. mixle-0.6.0/mixle/tests/skew_normal_test.py +46 -0
  679. mixle-0.6.0/mixle/tests/spanning_tree_test.py +159 -0
  680. mixle-0.6.0/mixle/tests/spark_encoded_data_test.py +142 -0
  681. mixle-0.6.0/mixle/tests/sparse_gaussian_process_test.py +71 -0
  682. mixle-0.6.0/mixle/tests/sparse_markov_engine_test.py +61 -0
  683. mixle-0.6.0/mixle/tests/sparse_markov_transform_test.py +117 -0
  684. mixle-0.6.0/mixle/tests/spatial_mixture_test.py +79 -0
  685. mixle-0.6.0/mixle/tests/spearman_rho_test.py +80 -0
  686. mixle-0.6.0/mixle/tests/spherical_kernels_test.py +94 -0
  687. mixle-0.6.0/mixle/tests/ss_mixture_engine_test.py +55 -0
  688. mixle-0.6.0/mixle/tests/stable_matching_test.py +52 -0
  689. mixle-0.6.0/mixle/tests/stats_bayes_beta_group_test.py +144 -0
  690. mixle-0.6.0/mixle/tests/stats_bayes_dirichlet_group_test.py +214 -0
  691. mixle-0.6.0/mixle/tests/stats_bayes_dpm_test.py +334 -0
  692. mixle-0.6.0/mixle/tests/stats_bayes_gamma_group_test.py +207 -0
  693. mixle-0.6.0/mixle/tests/stats_bayes_gaussian_test.py +97 -0
  694. mixle-0.6.0/mixle/tests/stats_bayes_markov_test.py +228 -0
  695. mixle-0.6.0/mixle/tests/stats_bayes_mixture_test.py +198 -0
  696. mixle-0.6.0/mixle/tests/stats_bayes_mvgaussian_group_test.py +225 -0
  697. mixle-0.6.0/mixle/tests/stats_bayes_setdist_test.py +135 -0
  698. mixle-0.6.0/mixle/tests/stats_bayes_wrappers_test.py +299 -0
  699. mixle-0.6.0/mixle/tests/streaming_estimation_test.py +276 -0
  700. mixle-0.6.0/mixle/tests/summarize_test.py +38 -0
  701. mixle-0.6.0/mixle/tests/survival_regression_test.py +164 -0
  702. mixle-0.6.0/mixle/tests/survival_test.py +51 -0
  703. mixle-0.6.0/mixle/tests/symbolic_export_test.py +164 -0
  704. mixle-0.6.0/mixle/tests/temporal_audit_test.py +93 -0
  705. mixle-0.6.0/mixle/tests/temporal_graph_grammar_test.py +539 -0
  706. mixle-0.6.0/mixle/tests/temporal_test.py +129 -0
  707. mixle-0.6.0/mixle/tests/thompson_acquisition_test.py +47 -0
  708. mixle-0.6.0/mixle/tests/thurstone_test.py +55 -0
  709. mixle-0.6.0/mixle/tests/torch_engine_ext_test.py +372 -0
  710. mixle-0.6.0/mixle/tests/torch_engine_test.py +241 -0
  711. mixle-0.6.0/mixle/tests/torchrun_encoded_data_test.py +239 -0
  712. mixle-0.6.0/mixle/tests/tree_hmm_engine_test.py +66 -0
  713. mixle-0.6.0/mixle/tests/tree_hmm_len_test.py +121 -0
  714. mixle-0.6.0/mixle/tests/tree_hmm_sampler_guard_test.py +72 -0
  715. mixle-0.6.0/mixle/tests/tree_hmm_zero_prob_test.py +62 -0
  716. mixle-0.6.0/mixle/tests/truncated_distribution_test.py +78 -0
  717. mixle-0.6.0/mixle/tests/truncation_bound_test.py +90 -0
  718. mixle-0.6.0/mixle/tests/tsp_test.py +44 -0
  719. mixle-0.6.0/mixle/tests/tweedie_test.py +87 -0
  720. mixle-0.6.0/mixle/tests/utils_test.py +66 -0
  721. mixle-0.6.0/mixle/tests/variational_embedding_attention_test.py +143 -0
  722. mixle-0.6.0/mixle/tests/variational_multihop_attention_test.py +101 -0
  723. mixle-0.6.0/mixle/tests/vmf_test.py +123 -0
  724. mixle-0.6.0/mixle/tests/von_mises_test.py +79 -0
  725. mixle-0.6.0/mixle/tests/watson_test.py +49 -0
  726. mixle-0.6.0/mixle/tests/wave_bayes1_test.py +294 -0
  727. mixle-0.6.0/mixle/tests/wave_bayes2_test.py +299 -0
  728. mixle-0.6.0/mixle/tests/wave_bayes3_test.py +276 -0
  729. mixle-0.6.0/mixle/tests/wave_bayes4_test.py +186 -0
  730. mixle-0.6.0/mixle/tests/wave_core_test.py +247 -0
  731. mixle-0.6.0/mixle/tests/wave_hmmlegacy_test.py +148 -0
  732. mixle-0.6.0/mixle/tests/wave_latent_test.py +298 -0
  733. mixle-0.6.0/mixle/tests/wave_lookback_test.py +166 -0
  734. mixle-0.6.0/mixle/tests/wave_markov_test.py +467 -0
  735. mixle-0.6.0/mixle/tests/wave_multinomial_enum_test.py +221 -0
  736. mixle-0.6.0/mixle/tests/wave_mvn_test.py +270 -0
  737. mixle-0.6.0/mixle/tests/wave_select_test.py +297 -0
  738. mixle-0.6.0/mixle/tests/wave_setdist_test.py +313 -0
  739. mixle-0.6.0/mixle/tests/wishart_test.py +72 -0
  740. mixle-0.6.0/mixle/tests/wrapped_cauchy_test.py +48 -0
  741. mixle-0.6.0/mixle/tests/wrapped_normal_test.py +53 -0
  742. mixle-0.6.0/mixle/tests/zero_count_estimate_test.py +123 -0
  743. mixle-0.6.0/mixle/tests/zero_inflated_test.py +112 -0
  744. mixle-0.6.0/mixle/utils/__init__.py +52 -0
  745. mixle-0.6.0/mixle/utils/aliasing.py +95 -0
  746. mixle-0.6.0/mixle/utils/automatic/__init__.py +30 -0
  747. mixle-0.6.0/mixle/utils/automatic/detectors/__init__.py +83 -0
  748. mixle-0.6.0/mixle/utils/automatic/detectors/beta.py +68 -0
  749. mixle-0.6.0/mixle/utils/automatic/detectors/exgaussian.py +106 -0
  750. mixle-0.6.0/mixle/utils/automatic/detectors/generalized_extreme_value.py +77 -0
  751. mixle-0.6.0/mixle/utils/automatic/detectors/generalized_gaussian.py +90 -0
  752. mixle-0.6.0/mixle/utils/automatic/detectors/generalized_pareto.py +108 -0
  753. mixle-0.6.0/mixle/utils/automatic/detectors/gumbel.py +82 -0
  754. mixle-0.6.0/mixle/utils/automatic/detectors/inverse_gaussian.py +80 -0
  755. mixle-0.6.0/mixle/utils/automatic/detectors/laplace.py +43 -0
  756. mixle-0.6.0/mixle/utils/automatic/detectors/logistic.py +62 -0
  757. mixle-0.6.0/mixle/utils/automatic/detectors/negative_binomial.py +71 -0
  758. mixle-0.6.0/mixle/utils/automatic/detectors/pareto.py +80 -0
  759. mixle-0.6.0/mixle/utils/automatic/detectors/skew_normal.py +90 -0
  760. mixle-0.6.0/mixle/utils/automatic/detectors/tweedie.py +82 -0
  761. mixle-0.6.0/mixle/utils/automatic/detectors/weibull.py +70 -0
  762. mixle-0.6.0/mixle/utils/automatic/factories.py +449 -0
  763. mixle-0.6.0/mixle/utils/automatic/profiling.py +2000 -0
  764. mixle-0.6.0/mixle/utils/builder.py +53 -0
  765. mixle-0.6.0/mixle/utils/evaluation.py +186 -0
  766. mixle-0.6.0/mixle/utils/hvis/__init__.py +295 -0
  767. mixle-0.6.0/mixle/utils/hvis/affinity.py +725 -0
  768. mixle-0.6.0/mixle/utils/hvis/embed.py +380 -0
  769. mixle-0.6.0/mixle/utils/hvis/neighbors.py +341 -0
  770. mixle-0.6.0/mixle/utils/hvis/tsne.py +797 -0
  771. mixle-0.6.0/mixle/utils/metrics.py +170 -0
  772. mixle-0.6.0/mixle/utils/optional_deps.py +73 -0
  773. mixle-0.6.0/mixle/utils/optsutil.py +191 -0
  774. mixle-0.6.0/mixle/utils/parallel/__init__.py +29 -0
  775. mixle-0.6.0/mixle/utils/parallel/balance.py +192 -0
  776. mixle-0.6.0/mixle/utils/parallel/lightning_data.py +138 -0
  777. mixle-0.6.0/mixle/utils/parallel/model_decomposition.py +371 -0
  778. mixle-0.6.0/mixle/utils/parallel/model_parallel.py +410 -0
  779. mixle-0.6.0/mixle/utils/parallel/mpi.py +205 -0
  780. mixle-0.6.0/mixle/utils/parallel/multiprocessing.py +284 -0
  781. mixle-0.6.0/mixle/utils/parallel/planner.py +1860 -0
  782. mixle-0.6.0/mixle/utils/parallel/ray_data.py +159 -0
  783. mixle-0.6.0/mixle/utils/parallel/torchrun.py +250 -0
  784. mixle-0.6.0/mixle/utils/pvalues.py +116 -0
  785. mixle-0.6.0/mixle/utils/serialization.py +402 -0
  786. mixle-0.6.0/mixle/utils/special.py +349 -0
  787. mixle-0.6.0/mixle/utils/vector.py +606 -0
  788. mixle-0.6.0/mixle.egg-info/PKG-INFO +435 -0
  789. mixle-0.6.0/mixle.egg-info/SOURCES.txt +792 -0
  790. mixle-0.6.0/mixle.egg-info/dependency_links.txt +1 -0
  791. mixle-0.6.0/mixle.egg-info/requires.txt +84 -0
  792. mixle-0.6.0/mixle.egg-info/top_level.txt +1 -0
  793. mixle-0.6.0/pyproject.toml +168 -0
  794. mixle-0.6.0/setup.cfg +4 -0
mixle-0.6.0/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2023, Lawrence Livermore National Security, LLC
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
@@ -0,0 +1 @@
1
+ include README.md
mixle-0.6.0/NOTICE ADDED
@@ -0,0 +1,21 @@
1
+ This work was produced under the auspices of the U.S. Department of
2
+ Energy by Lawrence Livermore National Laboratory under Contract
3
+ DE-AC52-07NA27344.
4
+
5
+ This work was prepared as an account of work sponsored by an agency of
6
+ the United States Government. Neither the United States Government nor
7
+ Lawrence Livermore National Security, LLC, nor any of their employees
8
+ makes any warranty, expressed or implied, or assumes any legal liability
9
+ or responsibility for the accuracy, completeness, or usefulness of any
10
+ information, apparatus, product, or process disclosed, or represents that
11
+ its use would not infringe privately owned rights.
12
+
13
+ Reference herein to any specific commercial product, process, or service
14
+ by trade name, trademark, manufacturer, or otherwise does not necessarily
15
+ constitute or imply its endorsement, recommendation, or favoring by the
16
+ United States Government or Lawrence Livermore National Security, LLC.
17
+
18
+ The views and opinions of authors expressed herein do not necessarily
19
+ state or reflect those of the United States Government or Lawrence
20
+ Livermore National Security, LLC, and shall not be used for advertising
21
+ or product endorsement purposes.
mixle-0.6.0/PKG-INFO ADDED
@@ -0,0 +1,435 @@
1
+ Metadata-Version: 2.4
2
+ Name: mixle
3
+ Version: 0.6.0
4
+ Summary: A package for estimating heterogeneous probability density functions.
5
+ Author-email: Grant Boquet <grant.boquet@gmail.com>
6
+ License-Expression: MIT
7
+ Project-URL: Homepage, https://github.com/gmboquet/mixle
8
+ Project-URL: Repository, https://github.com/gmboquet/mixle
9
+ Keywords: machine learning,density estimation,statistics,heterogeneous data
10
+ Classifier: Programming Language :: Python
11
+ Classifier: Programming Language :: Python :: 3
12
+ Classifier: Programming Language :: Python :: 3.10
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Development Status :: 4 - Beta
16
+ Classifier: Intended Audience :: Developers
17
+ Requires-Python: >=3.10
18
+ Description-Content-Type: text/markdown
19
+ License-File: LICENSE
20
+ License-File: NOTICE
21
+ Requires-Dist: numpy>=1.26
22
+ Requires-Dist: scipy>=1.11
23
+ Requires-Dist: mpmath>=1.3
24
+ Provides-Extra: numba
25
+ Requires-Dist: numba>=0.59; extra == "numba"
26
+ Requires-Dist: tbb>=2021.6; extra == "numba"
27
+ Provides-Extra: pandas
28
+ Requires-Dist: pandas>=2.0; extra == "pandas"
29
+ Provides-Extra: arrow
30
+ Requires-Dist: pyarrow>=14; extra == "arrow"
31
+ Provides-Extra: sql
32
+ Requires-Dist: sqlalchemy>=2.0; extra == "sql"
33
+ Provides-Extra: mongo
34
+ Requires-Dist: pymongo>=4.3; extra == "mongo"
35
+ Provides-Extra: hadoop
36
+ Requires-Dist: pyarrow>=14; extra == "hadoop"
37
+ Requires-Dist: fsspec>=2023.1.0; extra == "hadoop"
38
+ Provides-Extra: data
39
+ Requires-Dist: pandas>=2.0; extra == "data"
40
+ Requires-Dist: pyarrow>=14; extra == "data"
41
+ Requires-Dist: sqlalchemy>=2.0; extra == "data"
42
+ Requires-Dist: pymongo>=4.3; extra == "data"
43
+ Requires-Dist: fsspec>=2023.1.0; extra == "data"
44
+ Provides-Extra: grammar
45
+ Requires-Dist: networkx>=3.0; extra == "grammar"
46
+ Provides-Extra: gmpy2
47
+ Requires-Dist: gmpy2>=2.1; extra == "gmpy2"
48
+ Provides-Extra: spark
49
+ Requires-Dist: pyspark>=3.4; extra == "spark"
50
+ Provides-Extra: dask
51
+ Requires-Dist: dask>=2023.5.0; extra == "dask"
52
+ Requires-Dist: distributed>=2023.5.0; extra == "dask"
53
+ Provides-Extra: torch
54
+ Requires-Dist: torch>=2.0; extra == "torch"
55
+ Provides-Extra: jax
56
+ Requires-Dist: jax>=0.4; extra == "jax"
57
+ Requires-Dist: numpyro>=0.13; extra == "jax"
58
+ Provides-Extra: mpi
59
+ Requires-Dist: mpi4py>=3.1; extra == "mpi"
60
+ Provides-Extra: umap
61
+ Requires-Dist: umap-learn>=0.5.4; extra == "umap"
62
+ Provides-Extra: sympy
63
+ Requires-Dist: sympy>=1.12; extra == "sympy"
64
+ Provides-Extra: sage
65
+ Requires-Dist: passagemath-symbolics>=10.4; extra == "sage"
66
+ Provides-Extra: test
67
+ Requires-Dist: pytest>=8; extra == "test"
68
+ Requires-Dist: pytest-xdist>=3.0; extra == "test"
69
+ Provides-Extra: lint
70
+ Requires-Dist: ruff==0.15.17; extra == "lint"
71
+ Requires-Dist: mypy>=1.0; extra == "lint"
72
+ Provides-Extra: all
73
+ Requires-Dist: numba>=0.59; extra == "all"
74
+ Requires-Dist: tbb>=2021.6; extra == "all"
75
+ Requires-Dist: pyspark>=3.4; extra == "all"
76
+ Requires-Dist: dask>=2023.5.0; extra == "all"
77
+ Requires-Dist: distributed>=2023.5.0; extra == "all"
78
+ Requires-Dist: torch>=2.0; extra == "all"
79
+ Requires-Dist: mpi4py>=3.1; extra == "all"
80
+ Requires-Dist: umap-learn>=0.5.4; extra == "all"
81
+ Requires-Dist: pandas>=2.0; extra == "all"
82
+ Requires-Dist: pyarrow>=14; extra == "all"
83
+ Requires-Dist: sqlalchemy>=2.0; extra == "all"
84
+ Requires-Dist: networkx>=3.0; extra == "all"
85
+ Dynamic: license-file
86
+
87
+ <p align="left">
88
+ <img src="https://raw.githubusercontent.com/gmboquet/mixle/main/mixle_logo.png" alt="mixle" width="120"/>
89
+ </p>
90
+
91
+ # mixle
92
+
93
+ ![python](https://img.shields.io/badge/python-3.10%2B-blue)
94
+ ![license](https://img.shields.io/badge/license-MIT-green)
95
+ ![tests](https://img.shields.io/badge/tests-2700%2B-brightgreen)
96
+
97
+ **Automatic inference for composable models of heterogeneous data.** A single observation can be a
98
+ tuple of a category, a real, a count sequence, a vector, a set, or a tree — and mixle fits a
99
+ probabilistic model to a dataset of them, *choosing the inference from the model itself* (conjugate /
100
+ EM / MAP / variational / MCMC), locally on vectorized NumPy/Numba or distributed across Spark, Dask,
101
+ Ray, MPI, or Torch (GPU).
102
+
103
+ The unit of composition is the distribution: leaves (Gaussian, categorical, Poisson, …) combine into
104
+ tuples, tuples become mixture components, mixtures become HMM emissions, to any depth. A model and the
105
+ estimator that fits it have the same shape — so **what you can express, you can fit**.
106
+
107
+ ## Contents
108
+
109
+ [Installation](#installation) · [Quickstart](#quickstart) · [Core concepts](#core-concepts) ·
110
+ [Distribution catalog](#distribution-catalog) · [Probabilistic programming](#probabilistic-programming-mixleppl) ·
111
+ [Frequentist & Bayesian](#frequentist--bayesian) · [Engines & orchestration](#engines--orchestration) ·
112
+ [Enumeration & ranking](#enumeration--ranking) · [Beyond fitting](#beyond-fitting) ·
113
+ [Examples](#examples) · [Tests](#tests) · [Maintainers & contributors](#maintainers--contributors) · [License](#license)
114
+
115
+ ## Installation
116
+
117
+ Python 3.10+ (developed on 3.12). On PyPI as `mixle`; the import name is `mixle`.
118
+
119
+ ```sh
120
+ pip install mixle # base (numpy, scipy, mpmath): every distribution + local EM
121
+ pip install "mixle[all]" # acceleration, scale-out, and connectors
122
+ ```
123
+
124
+ The base install fits every distribution locally. Acceleration and scale-out are opt-in extras:
125
+
126
+ | Extra | Adds |
127
+ | --- | --- |
128
+ | `numba` | JIT-compiled hot paths (falls back to pure NumPy when absent) |
129
+ | `torch` | GPU / autograd engine |
130
+ | `spark` · `dask` · `mpi` | distributed estimation backends |
131
+ | `pandas` · `arrow` · `sql` · `mongo` · `hadoop` · `data` | data-source connectors |
132
+ | `gmpy2` | GMP-FFT big-integer multiply for count-DP ranking |
133
+ | `umap` | model-based UMAP embeddings |
134
+ | `sympy` · `sage` | symbolic / closed-form export |
135
+ | `grammar` | graph-grammar models (networkx) |
136
+
137
+ Development: `git clone … && pip install -e ".[all]"`.
138
+
139
+ ## Quickstart
140
+
141
+ Each record here is a `(category, real, variable-length count sequence)`. Fit a two-component mixture
142
+ straight from a list of records:
143
+
144
+ ```python
145
+ from mixle.stats import *
146
+ from mixle.inference import optimize
147
+
148
+ data = [
149
+ ('a', -0.4, [5, 7]), ('b', 4.9, [11, 9]),
150
+ ('a', 0.2, [6, 5, 4]), ('b', 5.3, [10, 12, 11]),
151
+ ('a', -1.1, [4, 6]), ('b', 4.5, [9, 10]),
152
+ ('a', 0.7, [5, 5]), ('b', 5.1, [12, 8]),
153
+ ('a', -0.2, [7, 6, 5]), ('b', 4.7, [9, 11]),
154
+ ]
155
+
156
+ # The estimator mirrors the distribution's structure exactly.
157
+ est = MixtureEstimator([CompositeEstimator((
158
+ CategoricalEstimator(),
159
+ GaussianEstimator(),
160
+ SequenceEstimator(PoissonEstimator(), len_estimator=CategoricalEstimator()),
161
+ ))] * 2)
162
+
163
+ model = optimize(data, est, max_its=100)
164
+ model.sampler(seed=0).sample(3) # draw new records from the fitted model
165
+ ```
166
+
167
+ You don't have to spell the estimator out. `optimize` (and `fit`) also accept a **prototype
168
+ distribution** — its matching estimator is taken automatically — or just the data, from which an
169
+ estimator is inferred:
170
+
171
+ ```python
172
+ proto = MixtureDistribution([GaussianDistribution(-1, 1), GaussianDistribution(1, 1)], [0.5, 0.5])
173
+ optimize(reals, proto) # build the model's shape once, fit it directly
174
+ optimize(reals) # or let mixle infer the estimator from the data
175
+ ```
176
+
177
+ The same model in the shorter [`mixle.ppl`](#probabilistic-programming-mixleppl) dialect is a few lines.
178
+
179
+ ## Core concepts
180
+
181
+ Each family is five cooperating pieces:
182
+
183
+ | Piece | Role |
184
+ | ----------------- | ------------------------------------------------------------------------- |
185
+ | `...Distribution` | parameters + `log_density(x)` and vectorized `seq_log_density(encoded)` |
186
+ | `...Sampler` | draw observations — `dist.sampler(seed).sample(size)` |
187
+ | `...Estimator` | declares the model to fit; closed-form M-step in `estimate()` |
188
+ | `...Accumulator` | sufficient statistics for the E-step, mergeable across data partitions |
189
+ | `...DataEncoder` | packs raw Python records into arrays for the fast path |
190
+
191
+ `optimize(data, est)` (in `mixle.inference`) runs EM to convergence — vectorized locally, or
192
+ distributed via `backend=`. It also accepts a distribution **prototype** (`optimize(data, proto)`) or
193
+ nothing but the data (`optimize(data)`, which infers the estimator). Related entry points:
194
+
195
+ - `best_of` — multi-restart EM
196
+ - `StreamingEstimator` — online EM
197
+ - `fit_mle` / `fit_map` — autograd fitting with typed priors
198
+ - `mixle.utils.automatic.get_estimator(data)` — infer an estimator from raw data
199
+
200
+ Families live in `mixle.stats`; operations on them are grouped by concern:
201
+
202
+ - `mixle.inference` — fit: MLE / EM / MAP / conjugate / NUTS / VI / Fisher
203
+ - `mixle.enumeration` — rank / top-k / unranking
204
+ - `mixle.ops` — quantize / condition / marginalize / project
205
+ - `mixle.describe(x)` — report what any object supports
206
+
207
+ Drawing is a method, not a concern: `dist.sampler(seed).sample(n)`.
208
+
209
+ ## Distribution catalog
210
+
211
+ About 90 families in `mixle.stats`. The distinguishing feature: the **combinators model a whole
212
+ heterogeneous record as one distribution**. One observation under each:
213
+
214
+ | Model | One observation |
215
+ | --- | --- |
216
+ | `GaussianDistribution` / `PoissonDistribution` / `CategoricalDistribution` | `-0.31` / `7` / `'b'` |
217
+ | `MultivariateGaussianDistribution` | `[1.2, -0.4, 0.8]` |
218
+ | `CompositeDistribution((Cat, Gaussian, Poisson))` | `('a', -0.31, 7)` |
219
+ | `RecordDistribution({...})` | `{'country': 'US', 'age': 41, 'spend': 12.5}` |
220
+ | `SequenceDistribution(Poisson)` | `[5, 4, 6]` (variable length) |
221
+ | `OptionalDistribution(Gaussian)` | `-0.31` or `None` |
222
+ | `MixtureDistribution([...])` / `HiddenMarkovModelDistribution` | a component's shape, with the cluster / state latent |
223
+
224
+ - **Univariate:** Gaussian, Student-t/Cauchy, Logistic, LogGaussian, Laplace, Uniform, Exponential,
225
+ Gamma, Inverse Gamma/Gaussian, Half-Normal, Gumbel, Beta, Weibull, Rayleigh, Pareto, Poisson,
226
+ Bernoulli, Geometric, Binomial, Negative Binomial, Log-Series, von Mises, Dirichlet, categorical;
227
+ multivariate/diagonal Gaussian, von Mises–Fisher, multivariate Student-t.
228
+ - **Combinators:** Composite (tuples), Record (named fields), Sequence, Optional (missing data),
229
+ Transform, Conditional, Weighted.
230
+ - **Latent structure:** mixtures (plain, heterogeneous, hierarchical, joint, semi-supervised), LDA,
231
+ PLSI, probabilistic PCA, HMMs (standard, segmental, lookback, tree, quantized), PCFGs, Markov chains,
232
+ hidden associations, IBP, Pitman-Yor processes, Bernoulli sets.
233
+ - **Permutations & graphs:** Mallows / Plackett-Luce, matchings, spanning trees, random graphs
234
+ (Erdős–Rényi, stochastic block, random dot-product), Spearman ranking, and graph grammars over
235
+ networks (vertex-replacement / NLC and hyperedge-replacement) — `log_density` is the marginal
236
+ likelihood, computed by parsing the graph back to the start symbol.
237
+ - **Bayesian:** conjugate priors (NormalGamma, NormalWishart, MvnGamma, Dirichlet, SymmetricDirichlet)
238
+ and variational Dirichlet-process / hierarchical-DP mixtures.
239
+
240
+ Estimator knobs (every family): `pseudo_count` (regularization) · `prior=` (conjugate; `None` is MLE) ·
241
+ `keys` (tie statistics across parts). One stem per family — `<Stem>Distribution`, `<Stem>Estimator`,
242
+ `<Stem>Sampler`, and so on.
243
+
244
+ ## Probabilistic programming (`mixle.ppl`)
245
+
246
+ A concise dialect over the same distributions. **One rule:** any parameter slot is a value, the token
247
+ `free` (estimate it), or another distribution (a prior).
248
+
249
+ ```python
250
+ from mixle.ppl import Normal, Mix, Markov, Field, free
251
+
252
+ Normal(0.0, 1.0) # fixed parameters
253
+ Normal(free, free) # estimate the mean and standard deviation
254
+ Normal(Normal(0, 10), 1.0) # a prior on the mean (hierarchical)
255
+
256
+ data = [-2.1, 1.9, -1.8, 2.3, -2.0, 2.1] # reals from two clusters
257
+ m = Mix([Normal(free, free), Normal(free, free)]).fit(data)
258
+ m.posterior(data) # per-point responsibilities
259
+
260
+ seqs = [[0.1, 5.1, 4.9], [4.8, 5.0], [0.0, 0.2]] # variable-length real sequences
261
+ Markov(Normal(free, free), states=2).fit(seqs) # 2-state Gaussian HMM
262
+
263
+ # y[i] ~ Normal(b0 + b1*x[i] + b2*z[i], sd) — a linear model
264
+ Normal(free * Field("x") + free * Field("z") + free, free).fit(y, given={"x": x, "z": z})
265
+
266
+ a, b = Normal(0, 10, name="a"), Normal(0, 10, name="b")
267
+ Mix([Normal(a, 1), Normal(b, 1)]).fit(data, constraints=a < b) # ordered means break label-switching
268
+ ```
269
+
270
+ - **`how=`** selects the route: `auto` takes an exact path when one exists, else
271
+ `conjugate | em | map | vi | vmp | mcmc | hmc | nuts | ensemble`.
272
+ - **Constraints** among named variables are plain comparisons (combine with `& | ~`) and shape both
273
+ inference and sampling.
274
+ - **Closed form:** for conjugate / exponential-family / mixture models, `.fit(...)` returns the exact
275
+ posterior.
276
+ - **Constructors:** `Mix · Seq · Markov · LDA · MVN · DiagGaussian · LocalLevel · AR1 · Graph`;
277
+ `compare([m1, m2], data)` ranks fitted models.
278
+
279
+ A slot is not limited to a single value/`free`/prior — it can be an **expression over latents**, and
280
+ latents can be coupled, indexed, or grouped. All of the below fit through the same `how=` routes:
281
+
282
+ ```python
283
+ from mixle.ppl import Normal, Poisson, Field, Group, free, potential
284
+
285
+ a, b = Normal(0, 10, name="a"), Normal(0, 10, name="b")
286
+ Normal(a + b, 1.0).fit(data) # deterministic expressions over latents
287
+ Normal(0.0, a.exp()).fit(data) # …and transforms of them
288
+ Normal(a, 1.0).fit(data, potentials=potential(lambda av, bv: -0.5 * (av - bv) ** 2, a, b)) # custom log-factors
289
+
290
+ Normal(Normal(0, 5).each(), free).fit(groups) # random effects: one list per group
291
+ Normal(Normal(0, 5).each(by="school"), free).fit(y, given={"school": labels}) # …or a flat array + index
292
+ Poisson(free * Field("x") + Group("g")).fit(counts, given={"x": x, "g": g}) # non-Normal GLMM (PQL)
293
+
294
+ theta = free(8) # a latent vector, indexed by data
295
+ Normal(theta[Field("g")], free).fit(y, given={"g": labels}) # y[i] ~ Normal(theta[g[i]], sd)
296
+
297
+ Categorical(free).fit(labels) # the category set is inferred from the data
298
+ ```
299
+
300
+ - **Custom factors:** `potential(fn, *vars)` adds an arbitrary `fn(*values)` log-term to the joint
301
+ (the equivalent of Stan's `target +=`), and may introduce auxiliary latents.
302
+ - **Hierarchies & GLMMs:** `.each()` / `.each(by=...)` are random effects; `Group(...)` is the same in a
303
+ regression predictor, for a Normal, Poisson, or Bernoulli response.
304
+ - **Diagnostics:** a multi-chain fit (`how="nuts", chains=4`) folds per-parameter R̂ and ESS straight
305
+ into `m.result.summary()`; `waic` / `loo` / `compare` rank fitted models.
306
+
307
+ The dialect is thin — the `mixle.stats` classes underneath are untouched.
308
+
309
+ ## Frequentist & Bayesian
310
+
311
+ The prior is the only switch — no prior is MLE; a conjugate `prior=` makes the same machinery Bayesian:
312
+
313
+ ```python
314
+ from mixle.inference.priors import NormalGammaPrior
315
+
316
+ GaussianEstimator() # MLE
317
+ GaussianEstimator(prior=NormalGammaPrior()) # closed-form conjugate posterior — same optimize() call
318
+ ```
319
+
320
+ - `optimize` / `fit` pick the objective from the model — likelihood, MAP, or variational ELBO.
321
+ - `BayesianStreamingEstimator` carries a posterior across batches; `mixle.stats.bayes` adds
322
+ (hierarchical) Dirichlet-process mixtures.
323
+ - Gradient MAP with typed priors: `mixle.inference.gradient_fit.fit_map`
324
+ (`NormalGammaPrior` / `DirichletPrior` / `MixturePrior`).
325
+ - **Honest densities:** `supports(x, ExactDensity)` / `describe(x)` flag when a model's `log_density`
326
+ is a variational bound (e.g. LDA's per-document ELBO) rather than the exact `log p(x)`.
327
+
328
+ ## Engines & orchestration
329
+
330
+ Distributions own the likelihood and sufficient-statistic math; **compute engines** supply the array
331
+ ops, device, and precision — so **scale-out is a backend argument, not a rewrite**:
332
+
333
+ ```python
334
+ from mixle.engines import TorchEngine
335
+
336
+ optimize(data, est, engine=TorchEngine(device="cuda", dtype="float32")) # GPU
337
+ optimize(data, est, precision="auto") # stats still accumulate in float64
338
+ optimize(rdd, est, backend="spark") # also: mp · dask · mpi · ray · lightning
339
+ ```
340
+
341
+ - The same EM contract runs unchanged on NumPy, Numba, Torch, or a symbolic backend.
342
+ - New frameworks register a factory (`register_encoded_data_backend`) — no dispatch to edit.
343
+ - The planner (`mixle.utils.parallel.planner`) turns a hardware budget into a memory-aware placement
344
+ (chunking, device assignment, Torch sharding) you compute once and reuse.
345
+ - The `SymbolicEngine` runs a density through SymPy, so a model can emit its closed-form log-density
346
+ as LaTeX / SymPy / Sage.
347
+
348
+ ## Enumeration & ranking
349
+
350
+ Discrete and structured models **enumerate their support in descending-probability order** and answer
351
+ exact **rank / cumulative-probability** queries — even when the support is enormous or unbounded:
352
+
353
+ ```python
354
+ e = dist.enumerator()
355
+ e.top_k(5) # the 5 most probable (value, log_prob)
356
+ e.top_p(0.95) # smallest set covering 95% of the mass (the nucleus)
357
+ e.rank(value) # how many values are strictly more probable than `value`
358
+ e.seek(10_000) # the ~10,000th most probable value, by structural count-DP
359
+ ```
360
+
361
+ - **Decomposable families** (Composite / Record / Sequence / MarkovChain): rank ↔ value is an exact
362
+ count-DP at any depth (`count_dp_rank`, `count_dp_seek`); budget-bounded quantized indexes
363
+ (`count_budget_index`) seek the most-probable region of an infinite support (the `gmpy2` extra uses
364
+ GMP's FFT multiply for the big-integer convolution).
365
+ - **Non-decomposable families** (mixtures, HMMs): exact marginal rank is provably hard, so they return
366
+ the Viterbi bound or a certified Monte-Carlo estimate (`density_rank`, with a standard error) — never
367
+ a silent approximation.
368
+ - **Continuous families** realize the same operations through `cdf(x)` / `quantile(q)`.
369
+
370
+ ## Beyond fitting
371
+
372
+ - **Inference** (`mixle.inference`): `mcmc` (MH / HMC / NUTS / VMP), `em` (hard, annealed, ECM,
373
+ Monte-Carlo, variational, online, restart), `fisher` (geometry views), and the `Posterior` algebra —
374
+ `posterior(model, data, over="latent"|"params"|"predictive")` returns one object you `sample` /
375
+ `mean` / `interval`. An engine-agnostic facade runs NUTS/ADVI on any differentiable target with
376
+ parallel chains (R̂ + pooled ESS).
377
+ - **Design & analysis of experiments** (`mixle.doe`): space-filling designs, GP Bayesian optimization,
378
+ and the analysis half — Sobol/Morris sensitivity, uncertainty propagation, Kennedy-O'Hagan calibration.
379
+ - **Embeddings** (`mixle.utils.hvis`): model-based t-SNE / UMAP over per-record posteriors.
380
+ - **Supervised & non-iid models** (`mixle.models`): GP regression, neural regressors, random forests
381
+ (a conditional `p(y | x)` leaf), random graphs, grammars, knowledge graphs.
382
+ - **MLOps** (`mixle.inference.production`): reproducible model artifacts (`fit_with_provenance` → a
383
+ `Header` with config, data hash, model-hash lineage, convergence, timing, resources, env), drift
384
+ detection + a `Monitor` (retrain-and-swap), and a versioned `Registry` + `Service` (scoring +
385
+ activity logging). A container / Kubernetes serving layer lives in the separate
386
+ [mixle-deploy](https://github.com/gmboquet/mixle-deploy) package.
387
+
388
+ ## Examples
389
+
390
+ Self-contained scripts in [examples/](https://github.com/gmboquet/mixle/tree/main/examples)
391
+ — each samples from a known model, refits, and recovers it (no downloads):
392
+
393
+ ```sh
394
+ cd examples
395
+ python gallery_univariate_example.py # tour the scalar families (also gallery_{multivariate,combinators,…})
396
+ python gallery_structured_example.py # mixtures / HMMs / LDA / latent-variable models
397
+ python ppl_example.py # the equation-style mixle.ppl surface
398
+ python production_example.py # provenance, registry, serving, drift, checkpoints
399
+ python scaling_example.py # the same fit distributed by backend= (local / mp / mpi / spark)
400
+ ```
401
+
402
+ **Distributed backends** (see `scaling_example.py`): `local` and `mp` run out of the box; `mpi` and Spark
403
+ need a launcher. Spark also needs a JVM (Java 17/21) with workers on the driver's Python:
404
+
405
+ ```sh
406
+ export JAVA_HOME=$(/usr/libexec/java_home -v 17)
407
+ export PYSPARK_PYTHON=/path/to/venv/bin/python PYSPARK_DRIVER_PYTHON=$PYSPARK_PYTHON
408
+ ```
409
+
410
+ ## Tests
411
+
412
+ ```sh
413
+ python -m pytest # fast gate (parallel), ~25 s
414
+ python -m pytest -m "not optional and not benchmark" # full suite incl. slow tests
415
+ ```
416
+
417
+ `base_dist_test.py` exercises each family end to end: sampler repeatability, `str`/`eval` round-trips,
418
+ vectorized-vs-scalar density agreement, EM convergence. See
419
+ [`mixle/tests/README.md`](https://github.com/gmboquet/mixle/blob/main/mixle/tests/README.md).
420
+
421
+ ## Maintainers & contributors
422
+
423
+ Maintained by **Grant Boquet** ([@gmboquet](https://github.com/gmboquet) ·
424
+ grant.boquet@gmail.com).
425
+
426
+ mixle began life as **pysparkplug**, developed at Lawrence Livermore National Laboratory; thanks to the
427
+ LLNL contributors who built the original library and to everyone in the
428
+ [git history](https://github.com/gmboquet/mixle/graphs/contributors). Contributions, issues, and
429
+ discussion are welcome — open a PR or an issue.
430
+
431
+ ## License
432
+
433
+ MIT — see [LICENSE](https://github.com/gmboquet/mixle/blob/main/LICENSE).
434
+
435
+ © 2014–2025, developed at Lawrence Livermore National Laboratory (LLNL-CODE-844837).