pytensor 3.2.4__tar.gz → 3.3.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 (618) hide show
  1. {pytensor-3.2.4/pytensor.egg-info → pytensor-3.3.0}/PKG-INFO +2 -1
  2. {pytensor-3.2.4 → pytensor-3.3.0}/pyproject.toml +11 -3
  3. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/_version.py +3 -3
  4. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/subtensor.py +7 -1
  5. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/basic.py +23 -7
  6. pytensor-3.3.0/pytensor/link/mlx/dispatch/scalar/__init__.py +1 -0
  7. pytensor-3.2.4/pytensor/link/mlx/dispatch/scalar.py → pytensor-3.3.0/pytensor/link/mlx/dispatch/scalar/basic.py +9 -51
  8. pytensor-3.3.0/pytensor/link/mlx/dispatch/scalar/bessel.py +525 -0
  9. pytensor-3.3.0/pytensor/link/mlx/dispatch/scalar/erf.py +333 -0
  10. pytensor-3.3.0/pytensor/link/mlx/dispatch/scalar/erfcinv.py +150 -0
  11. pytensor-3.3.0/pytensor/link/mlx/dispatch/scalar/gamma.py +56 -0
  12. pytensor-3.3.0/pytensor/link/mlx/dispatch/scalar/helpers.py +62 -0
  13. pytensor-3.3.0/pytensor/link/mlx/dispatch/scalar/math.py +174 -0
  14. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/vectorize_codegen.py +6 -11
  15. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scalar/basic.py +6 -6
  16. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/sparse/math.py +8 -1
  17. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/extra_ops.py +4 -0
  18. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/pad.py +214 -226
  19. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/math.py +31 -13
  20. {pytensor-3.2.4 → pytensor-3.3.0/pytensor.egg-info}/PKG-INFO +2 -1
  21. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor.egg-info/SOURCES.txt +8 -1
  22. {pytensor-3.2.4 → pytensor-3.3.0}/LICENSE.txt +0 -0
  23. {pytensor-3.2.4 → pytensor-3.3.0}/MANIFEST.in +0 -0
  24. {pytensor-3.2.4 → pytensor-3.3.0}/README.rst +0 -0
  25. {pytensor-3.2.4 → pytensor-3.3.0}/doc/.templates/PLACEHOLDER +0 -0
  26. {pytensor-3.2.4 → pytensor-3.3.0}/doc/.templates/layout.html +0 -0
  27. {pytensor-3.2.4 → pytensor-3.3.0}/doc/.templates/nb-badges.html +0 -0
  28. {pytensor-3.2.4 → pytensor-3.3.0}/doc/.templates/rendered_citation.html +0 -0
  29. {pytensor-3.2.4 → pytensor-3.3.0}/doc/LICENSE.txt +0 -0
  30. {pytensor-3.2.4 → pytensor-3.3.0}/doc/README.md +0 -0
  31. {pytensor-3.2.4 → pytensor-3.3.0}/doc/_drafts/benchmark_mlx_v_jax_corrected.ipynb +0 -0
  32. {pytensor-3.2.4 → pytensor-3.3.0}/doc/_thumbnails/autodiff/vector_jacobian_product.png +0 -0
  33. {pytensor-3.2.4 → pytensor-3.3.0}/doc/acknowledgement.rst +0 -0
  34. {pytensor-3.2.4 → pytensor-3.3.0}/doc/bcast.png +0 -0
  35. {pytensor-3.2.4 → pytensor-3.3.0}/doc/bcast.svg +0 -0
  36. {pytensor-3.2.4 → pytensor-3.3.0}/doc/blog.md +0 -0
  37. {pytensor-3.2.4 → pytensor-3.3.0}/doc/conf.py +0 -0
  38. {pytensor-3.2.4 → pytensor-3.3.0}/doc/core_development_guide.rst +0 -0
  39. {pytensor-3.2.4 → pytensor-3.3.0}/doc/css.inc +0 -0
  40. {pytensor-3.2.4 → pytensor-3.3.0}/doc/dev_start_guide.rst +0 -0
  41. {pytensor-3.2.4 → pytensor-3.3.0}/doc/environment.yml +0 -0
  42. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/apply.png +0 -0
  43. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/apply.svg +0 -0
  44. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/apply2.svg +0 -0
  45. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/creating_a_c_op.rst +0 -0
  46. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/creating_a_numba_jax_op.rst +0 -0
  47. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/creating_an_op.rst +0 -0
  48. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/ctype.rst +0 -0
  49. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/extending_faq.rst +0 -0
  50. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/extending_pytensor_solution_1.py +0 -0
  51. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/graph_rewriting.rst +0 -0
  52. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/graphstructures.rst +0 -0
  53. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/index.rst +0 -0
  54. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/inplace.rst +0 -0
  55. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/op.rst +0 -0
  56. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/other_ops.rst +0 -0
  57. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/pics/symbolic_graph_opt.png +0 -0
  58. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/pics/symbolic_graph_unopt.png +0 -0
  59. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/pipeline.rst +0 -0
  60. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/scan.rst +0 -0
  61. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/tips.rst +0 -0
  62. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/type.rst +0 -0
  63. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/unification_kanren.rst +0 -0
  64. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/unittest.rst +0 -0
  65. {pytensor-3.2.4 → pytensor-3.3.0}/doc/extending/using_params.rst +0 -0
  66. {pytensor-3.2.4 → pytensor-3.3.0}/doc/faq.rst +0 -0
  67. {pytensor-3.2.4 → pytensor-3.3.0}/doc/gallery/applications/normalizing_flows_in_pytensor.ipynb +0 -0
  68. {pytensor-3.2.4 → pytensor-3.3.0}/doc/gallery/applications/tiny_transformer_llm.ipynb +0 -0
  69. {pytensor-3.2.4 → pytensor-3.3.0}/doc/gallery/autodiff/vector_jacobian_product.ipynb +0 -0
  70. {pytensor-3.2.4 → pytensor-3.3.0}/doc/gallery/introduction/pytensor_intro.ipynb +0 -0
  71. {pytensor-3.2.4 → pytensor-3.3.0}/doc/gallery/optimize/root.ipynb +0 -0
  72. {pytensor-3.2.4 → pytensor-3.3.0}/doc/gallery/page_footer.md +0 -0
  73. {pytensor-3.2.4 → pytensor-3.3.0}/doc/gallery/rewrites/graph_rewrites.ipynb +0 -0
  74. {pytensor-3.2.4 → pytensor-3.3.0}/doc/gallery/scan/scan_tutorial.ipynb +0 -0
  75. {pytensor-3.2.4 → pytensor-3.3.0}/doc/generate_dtype_tensor_table.py +0 -0
  76. {pytensor-3.2.4 → pytensor-3.3.0}/doc/glossary.rst +0 -0
  77. {pytensor-3.2.4 → pytensor-3.3.0}/doc/images/Elman_srnn.png +0 -0
  78. {pytensor-3.2.4 → pytensor-3.3.0}/doc/images/PyTensor.png +0 -0
  79. {pytensor-3.2.4 → pytensor-3.3.0}/doc/images/PyTensor_RGB.svg +0 -0
  80. {pytensor-3.2.4 → pytensor-3.3.0}/doc/images/PyTensor_logo.png +0 -0
  81. {pytensor-3.2.4 → pytensor-3.3.0}/doc/images/binder.svg +0 -0
  82. {pytensor-3.2.4 → pytensor-3.3.0}/doc/images/blocksparse.png +0 -0
  83. {pytensor-3.2.4 → pytensor-3.3.0}/doc/images/colab.svg +0 -0
  84. {pytensor-3.2.4 → pytensor-3.3.0}/doc/images/github.svg +0 -0
  85. {pytensor-3.2.4 → pytensor-3.3.0}/doc/images/lstm.png +0 -0
  86. {pytensor-3.2.4 → pytensor-3.3.0}/doc/images/lstm_memorycell.png +0 -0
  87. {pytensor-3.2.4 → pytensor-3.3.0}/doc/images/talk2010.gif +0 -0
  88. {pytensor-3.2.4 → pytensor-3.3.0}/doc/images/talk2010.png +0 -0
  89. {pytensor-3.2.4 → pytensor-3.3.0}/doc/index.rst +0 -0
  90. {pytensor-3.2.4 → pytensor-3.3.0}/doc/install.rst +0 -0
  91. {pytensor-3.2.4 → pytensor-3.3.0}/doc/internal/how_to_release.rst +0 -0
  92. {pytensor-3.2.4 → pytensor-3.3.0}/doc/internal/index.rst +0 -0
  93. {pytensor-3.2.4 → pytensor-3.3.0}/doc/internal/metadocumentation.rst +0 -0
  94. {pytensor-3.2.4 → pytensor-3.3.0}/doc/introduction.rst +0 -0
  95. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/compile/debugmode.rst +0 -0
  96. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/compile/function.rst +0 -0
  97. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/compile/index.rst +0 -0
  98. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/compile/io.rst +0 -0
  99. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/compile/mode.rst +0 -0
  100. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/compile/nanguardmode.rst +0 -0
  101. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/compile/opfromgraph.rst +0 -0
  102. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/compile/ops.rst +0 -0
  103. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/compile/profilemode.rst +0 -0
  104. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/compile/shared.rst +0 -0
  105. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/config.rst +0 -0
  106. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/d3viz/examples/d3viz/css/d3-context-menu.css +0 -0
  107. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/d3viz/examples/d3viz/css/d3viz.css +0 -0
  108. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/d3viz/examples/d3viz/js/d3-context-menu.js +0 -0
  109. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/d3viz/examples/d3viz/js/d3.v3.min.js +0 -0
  110. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/d3viz/examples/d3viz/js/d3viz.js +0 -0
  111. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/d3viz/examples/d3viz/js/dagre-d3.min.js +0 -0
  112. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/d3viz/examples/d3viz/js/graphlib-dot.min.js +0 -0
  113. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/d3viz/examples/mlp.html +0 -0
  114. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/d3viz/examples/mlp.png +0 -0
  115. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/d3viz/examples/mlp2.html +0 -0
  116. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/d3viz/examples/mlp2.pdf +0 -0
  117. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/d3viz/examples/mlp2.png +0 -0
  118. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/d3viz/examples/ofg.html +0 -0
  119. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/d3viz/examples/ofg2.html +0 -0
  120. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/d3viz/index.ipynb +0 -0
  121. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/d3viz/index.rst +0 -0
  122. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/d3viz/index_files/index_10_0.png +0 -0
  123. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/d3viz/index_files/index_11_0.png +0 -0
  124. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/d3viz/index_files/index_24_0.png +0 -0
  125. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/d3viz/index_files/index_25_0.png +0 -0
  126. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/graph/features.rst +0 -0
  127. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/graph/fgraph.rst +0 -0
  128. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/graph/graph.rst +0 -0
  129. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/graph/index.rst +0 -0
  130. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/graph/op.rst +0 -0
  131. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/graph/replace.rst +0 -0
  132. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/graph/type.rst +0 -0
  133. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/graph/utils.rst +0 -0
  134. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/index.rst +0 -0
  135. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/misc/pkl_utils.rst +0 -0
  136. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/printing.rst +0 -0
  137. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/scalar/index.rst +0 -0
  138. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/scan.rst +0 -0
  139. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/sparse/index.rst +0 -0
  140. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/sparse/sandbox.rst +0 -0
  141. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/tensor/basic.rst +0 -0
  142. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/tensor/basic_opt.rst +0 -0
  143. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/tensor/bcast.png +0 -0
  144. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/tensor/bcast.svg +0 -0
  145. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/tensor/elemwise.rst +0 -0
  146. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/tensor/extra_ops.rst +0 -0
  147. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/tensor/fft.rst +0 -0
  148. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/tensor/functional.rst +0 -0
  149. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/tensor/index.rst +0 -0
  150. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/tensor/io.rst +0 -0
  151. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/tensor/linalg.rst +0 -0
  152. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/tensor/math_opt.rst +0 -0
  153. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/tensor/nlinalg.rst +0 -0
  154. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/tensor/optimize.rst +0 -0
  155. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/tensor/plot_fft.png +0 -0
  156. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/tensor/random.rst +0 -0
  157. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/tensor/slinalg.rst +0 -0
  158. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/tensor/utils.rst +0 -0
  159. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/typed_list.rst +0 -0
  160. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/xtensor/index.md +0 -0
  161. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/xtensor/linalg.md +0 -0
  162. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/xtensor/math.md +0 -0
  163. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/xtensor/module_functions.md +0 -0
  164. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/xtensor/random.md +0 -0
  165. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/xtensor/signal.md +0 -0
  166. {pytensor-3.2.4 → pytensor-3.3.0}/doc/library/xtensor/type.md +0 -0
  167. {pytensor-3.2.4 → pytensor-3.3.0}/doc/links.rst +0 -0
  168. {pytensor-3.2.4 → pytensor-3.3.0}/doc/optimizations.rst +0 -0
  169. {pytensor-3.2.4 → pytensor-3.3.0}/doc/pylintrc +0 -0
  170. {pytensor-3.2.4 → pytensor-3.3.0}/doc/robots.txt +0 -0
  171. {pytensor-3.2.4 → pytensor-3.3.0}/doc/troubleshooting.rst +0 -0
  172. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/adding.rst +0 -0
  173. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/adding_solution_1.py +0 -0
  174. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/aliasing.rst +0 -0
  175. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/apply.png +0 -0
  176. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/apply.svg +0 -0
  177. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/bcast.png +0 -0
  178. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/broadcasting.rst +0 -0
  179. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/conditions.rst +0 -0
  180. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/debug_faq.rst +0 -0
  181. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/dlogistic.png +0 -0
  182. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/examples.rst +0 -0
  183. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/faq_tutorial.rst +0 -0
  184. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/gradients.rst +0 -0
  185. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/index.rst +0 -0
  186. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/loading_and_saving.rst +0 -0
  187. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/logistic.gp +0 -0
  188. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/logistic.png +0 -0
  189. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/loop.rst +0 -0
  190. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/loop_solution_1.py +0 -0
  191. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/modes.rst +0 -0
  192. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/modes_solution_1.py +0 -0
  193. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/multi_cores.rst +0 -0
  194. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/nan_tutorial.rst +0 -0
  195. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/pics/d3viz.png +0 -0
  196. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/pics/logreg_pydotprint_predict.png +0 -0
  197. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/pics/logreg_pydotprint_prediction.png +0 -0
  198. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/pics/logreg_pydotprint_train.png +0 -0
  199. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/printing_drawing.rst +0 -0
  200. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/prng.rst +0 -0
  201. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/profiling.rst +0 -0
  202. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/profiling_example.py +0 -0
  203. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/profiling_example_out.prof +0 -0
  204. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/shape_info.rst +0 -0
  205. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/sparse.rst +0 -0
  206. {pytensor-3.2.4 → pytensor-3.3.0}/doc/tutorial/symbolic_graphs.rst +0 -0
  207. {pytensor-3.2.4 → pytensor-3.3.0}/doc/user_guide.rst +0 -0
  208. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/__init__.py +0 -0
  209. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/_sparse_lazy.py +0 -0
  210. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/assumptions/__init__.py +0 -0
  211. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/assumptions/alloc.py +0 -0
  212. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/assumptions/blockwise.py +0 -0
  213. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/assumptions/core.py +0 -0
  214. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/assumptions/diagonal.py +0 -0
  215. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/assumptions/dimshuffle.py +0 -0
  216. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/assumptions/dot.py +0 -0
  217. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/assumptions/elemwise.py +0 -0
  218. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/assumptions/orthogonal.py +0 -0
  219. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/assumptions/permutation.py +0 -0
  220. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/assumptions/positive_definite.py +0 -0
  221. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/assumptions/reshape.py +0 -0
  222. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/assumptions/selection.py +0 -0
  223. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/assumptions/shape.py +0 -0
  224. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/assumptions/specify.py +0 -0
  225. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/assumptions/subtensor.py +0 -0
  226. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/assumptions/symmetric.py +0 -0
  227. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/assumptions/triangular.py +0 -0
  228. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/basic.py +0 -0
  229. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/bin/__init__.py +0 -0
  230. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/bin/pytensor_cache.py +0 -0
  231. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/breakpoint.py +0 -0
  232. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/compile/__init__.py +0 -0
  233. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/compile/aliasing.py +0 -0
  234. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/compile/builders.py +0 -0
  235. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/compile/compiledir.py +0 -0
  236. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/compile/compilelock.py +0 -0
  237. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/compile/debug/__init__.py +0 -0
  238. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/compile/debug/debugmode.py +0 -0
  239. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/compile/debug/dump.py +0 -0
  240. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/compile/debug/monitormode.py +0 -0
  241. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/compile/debug/nanguardmode.py +0 -0
  242. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/compile/debug/profiling.py +0 -0
  243. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/compile/executor.py +0 -0
  244. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/compile/inner_function.py +0 -0
  245. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/compile/io.py +0 -0
  246. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/compile/maker.py +0 -0
  247. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/compile/mode.py +0 -0
  248. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/compile/ops.py +0 -0
  249. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/compile/rebuild.py +0 -0
  250. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/compile/rewriting.py +0 -0
  251. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/compile/sharedvalue.py +0 -0
  252. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/configdefaults.py +0 -0
  253. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/configparser.py +0 -0
  254. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/d3viz/__init__.py +0 -0
  255. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/d3viz/css/d3-context-menu.css +0 -0
  256. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/d3viz/css/d3viz.css +0 -0
  257. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/d3viz/d3viz.py +0 -0
  258. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/d3viz/formatting.py +0 -0
  259. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/d3viz/html/template.html +0 -0
  260. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/d3viz/js/d3-context-menu.js +0 -0
  261. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/d3viz/js/d3.v3.min.js +0 -0
  262. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/d3viz/js/d3viz.js +0 -0
  263. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/d3viz/js/dagre-d3.min.js +0 -0
  264. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/d3viz/js/graphlib-dot.min.js +0 -0
  265. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/gradient.py +0 -0
  266. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/graph/__init__.py +0 -0
  267. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/graph/basic.py +0 -0
  268. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/graph/destroyhandler.py +0 -0
  269. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/graph/features.py +0 -0
  270. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/graph/fg.py +0 -0
  271. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/graph/null_type.py +0 -0
  272. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/graph/op.py +0 -0
  273. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/graph/replace.py +0 -0
  274. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/graph/rewriting/__init__.py +0 -0
  275. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/graph/rewriting/basic.py +0 -0
  276. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/graph/rewriting/db.py +0 -0
  277. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/graph/rewriting/kanren.py +0 -0
  278. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/graph/rewriting/reachability.py +0 -0
  279. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/graph/rewriting/unify.py +0 -0
  280. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/graph/rewriting/utils.py +0 -0
  281. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/graph/traversal.py +0 -0
  282. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/graph/type.py +0 -0
  283. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/graph/utils.py +0 -0
  284. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/ifelse.py +0 -0
  285. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/ipython.py +0 -0
  286. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/__init__.py +0 -0
  287. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/basic.py +0 -0
  288. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/c/__init__.py +0 -0
  289. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/c/basic.py +0 -0
  290. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/c/c_code/lazylinker_c.c +0 -0
  291. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/c/c_code/pytensor_mod_helper.h +0 -0
  292. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/c/cmodule.py +0 -0
  293. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/c/cutils.py +0 -0
  294. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/c/cvm.py +0 -0
  295. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/c/exceptions.py +0 -0
  296. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/c/interface.py +0 -0
  297. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/c/lazylinker_c.py +0 -0
  298. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/c/op.py +0 -0
  299. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/c/params_type.py +0 -0
  300. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/c/type.py +0 -0
  301. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/__init__.py +0 -0
  302. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/__init__.py +0 -0
  303. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/basic.py +0 -0
  304. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/blas.py +0 -0
  305. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/blockwise.py +0 -0
  306. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/einsum.py +0 -0
  307. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/elemwise.py +0 -0
  308. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/extra_ops.py +0 -0
  309. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/linalg/__init__.py +0 -0
  310. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/linalg/constructors.py +0 -0
  311. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/linalg/decomposition.py +0 -0
  312. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/linalg/inverse.py +0 -0
  313. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/linalg/products.py +0 -0
  314. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/linalg/solvers.py +0 -0
  315. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/linalg/summary.py +0 -0
  316. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/math.py +0 -0
  317. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/pad.py +0 -0
  318. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/random.py +0 -0
  319. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/scalar.py +0 -0
  320. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/scan.py +0 -0
  321. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/shape.py +0 -0
  322. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/signal/__init__.py +0 -0
  323. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/signal/conv.py +0 -0
  324. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/sort.py +0 -0
  325. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/sparse.py +0 -0
  326. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/dispatch/tensor_basic.py +0 -0
  327. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/linker.py +0 -0
  328. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/jax/ops.py +0 -0
  329. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/__init__.py +0 -0
  330. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/__init__.py +0 -0
  331. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/blas.py +0 -0
  332. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/blockwise.py +0 -0
  333. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/einsum.py +0 -0
  334. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/elemwise.py +0 -0
  335. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/extra_ops.py +0 -0
  336. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/linalg/__init__.py +0 -0
  337. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/linalg/decomposition.py +0 -0
  338. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/linalg/inverse.py +0 -0
  339. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/linalg/products.py +0 -0
  340. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/linalg/solvers.py +0 -0
  341. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/linalg/summary.py +0 -0
  342. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/math.py +0 -0
  343. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/pad.py +0 -0
  344. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/shape.py +0 -0
  345. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/signal/__init__.py +0 -0
  346. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/signal/conv.py +0 -0
  347. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/sort.py +0 -0
  348. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/subtensor.py +0 -0
  349. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/dispatch/tensor_basic.py +0 -0
  350. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/mlx/linker.py +0 -0
  351. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/__init__.py +0 -0
  352. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/cache.py +0 -0
  353. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/__init__.py +0 -0
  354. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/_llvmlite_self_ref.py +0 -0
  355. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/_patch_pointer_add.py +0 -0
  356. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/basic.py +0 -0
  357. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/blockwise.py +0 -0
  358. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/compile_ops.py +0 -0
  359. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/cython_support.py +0 -0
  360. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/elemwise.py +0 -0
  361. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/extra_ops.py +0 -0
  362. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/_LAPACK.py +0 -0
  363. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/__init__.py +0 -0
  364. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/constructors.py +0 -0
  365. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/decomposition/__init__.py +0 -0
  366. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/decomposition/cholesky.py +0 -0
  367. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/decomposition/dispatch.py +0 -0
  368. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/decomposition/eigen.py +0 -0
  369. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/decomposition/lu.py +0 -0
  370. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/decomposition/lu_factor.py +0 -0
  371. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/decomposition/qr.py +0 -0
  372. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/decomposition/qz.py +0 -0
  373. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/decomposition/schur.py +0 -0
  374. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/decomposition/svd.py +0 -0
  375. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/inverse.py +0 -0
  376. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/products.py +0 -0
  377. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/solvers/__init__.py +0 -0
  378. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/solvers/cholesky.py +0 -0
  379. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/solvers/dispatch.py +0 -0
  380. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/solvers/general.py +0 -0
  381. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/solvers/hermitian.py +0 -0
  382. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/solvers/linear_control.py +0 -0
  383. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/solvers/lu_solve.py +0 -0
  384. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/solvers/posdef.py +0 -0
  385. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/solvers/symmetric.py +0 -0
  386. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/solvers/triangular.py +0 -0
  387. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/solvers/tridiagonal.py +0 -0
  388. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/solvers/utils.py +0 -0
  389. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/summary.py +0 -0
  390. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/linalg/utils.py +0 -0
  391. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/random.py +0 -0
  392. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/scalar.py +0 -0
  393. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/scan.py +0 -0
  394. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/shape.py +0 -0
  395. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/signal/__init__.py +0 -0
  396. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/signal/conv.py +0 -0
  397. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/sort.py +0 -0
  398. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/sparse/__init__.py +0 -0
  399. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/sparse/basic.py +0 -0
  400. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/sparse/math.py +0 -0
  401. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/sparse/variable.py +0 -0
  402. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/string_codegen.py +0 -0
  403. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/subtensor.py +0 -0
  404. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/tensor_basic.py +0 -0
  405. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/dispatch/typed_list.py +0 -0
  406. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/numba/linker.py +0 -0
  407. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/pytorch/dispatch/__init__.py +0 -0
  408. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/pytorch/dispatch/basic.py +0 -0
  409. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/pytorch/dispatch/blas.py +0 -0
  410. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/pytorch/dispatch/blockwise.py +0 -0
  411. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/pytorch/dispatch/elemwise.py +0 -0
  412. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/pytorch/dispatch/extra_ops.py +0 -0
  413. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/pytorch/dispatch/linalg/__init__.py +0 -0
  414. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/pytorch/dispatch/linalg/decomposition.py +0 -0
  415. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/pytorch/dispatch/linalg/inverse.py +0 -0
  416. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/pytorch/dispatch/linalg/products.py +0 -0
  417. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/pytorch/dispatch/linalg/summary.py +0 -0
  418. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/pytorch/dispatch/math.py +0 -0
  419. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/pytorch/dispatch/scalar.py +0 -0
  420. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/pytorch/dispatch/shape.py +0 -0
  421. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/pytorch/dispatch/sort.py +0 -0
  422. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/pytorch/dispatch/subtensor.py +0 -0
  423. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/pytorch/linker.py +0 -0
  424. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/utils.py +0 -0
  425. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/link/vm.py +0 -0
  426. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/misc/__init__.py +0 -0
  427. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/misc/check_blas.py +0 -0
  428. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/misc/check_blas_many.sh +0 -0
  429. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/misc/check_duplicate_key.py +0 -0
  430. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/misc/elemwise_openmp_speedup.py +0 -0
  431. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/misc/elemwise_time_test.py +0 -0
  432. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/misc/frozendict.py +0 -0
  433. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/misc/may_share_memory.py +0 -0
  434. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/misc/ordered_set.py +0 -0
  435. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/misc/pkl_utils.py +0 -0
  436. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/npy_2_compat.py +0 -0
  437. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/printing.py +0 -0
  438. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/py.typed +0 -0
  439. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/raise_op.py +0 -0
  440. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scalar/__init__.py +0 -0
  441. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scalar/c_code/Faddeeva.cc +0 -0
  442. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scalar/c_code/Faddeeva.hh +0 -0
  443. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scalar/c_code/gamma.c +0 -0
  444. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scalar/c_code/incbet.c +0 -0
  445. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scalar/loop.py +0 -0
  446. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scalar/math.py +0 -0
  447. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scalar/sharedvar.py +0 -0
  448. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scan/__init__.py +0 -0
  449. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scan/basic.py +0 -0
  450. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scan/checkpoints.py +0 -0
  451. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scan/op.py +0 -0
  452. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scan/rewriting/__init__.py +0 -0
  453. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scan/rewriting/db.py +0 -0
  454. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scan/rewriting/inner_graph.py +0 -0
  455. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scan/rewriting/inplace.py +0 -0
  456. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scan/rewriting/io.py +0 -0
  457. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scan/rewriting/merge.py +0 -0
  458. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scan/rewriting/push_out.py +0 -0
  459. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scan/rewriting/trace.py +0 -0
  460. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scan/rewriting/utils.py +0 -0
  461. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scan/scan_perform.pyx +0 -0
  462. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scan/scan_perform_ext.py +0 -0
  463. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scan/utils.py +0 -0
  464. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/scan/views.py +0 -0
  465. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/sparse/__init__.py +0 -0
  466. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/sparse/basic.py +0 -0
  467. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/sparse/linalg.py +0 -0
  468. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/sparse/rewriting.py +0 -0
  469. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/sparse/sharedvar.py +0 -0
  470. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/sparse/type.py +0 -0
  471. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/sparse/utils.py +0 -0
  472. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/sparse/variable.py +0 -0
  473. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/__init__.py +0 -0
  474. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/basic.py +0 -0
  475. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/blas/__init__.py +0 -0
  476. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/blas/_core.py +0 -0
  477. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/blas/batched.py +0 -0
  478. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/blas/blas_c.py +0 -0
  479. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/blas/c_code/__init__.py +0 -0
  480. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/blas/c_code/alt_blas_common.h +0 -0
  481. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/blas/c_code/alt_blas_template.c +0 -0
  482. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/blas/c_code/blas_headers.py +0 -0
  483. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/blas/c_code/codegen.py +0 -0
  484. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/blas/gemm.py +0 -0
  485. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/blas/gemv.py +0 -0
  486. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/blas/ger.py +0 -0
  487. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/blockwise.py +0 -0
  488. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/einsum.py +0 -0
  489. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/elemwise.py +0 -0
  490. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/elemwise_cgen.py +0 -0
  491. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/exceptions.py +0 -0
  492. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/fft.py +0 -0
  493. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/fourier.py +0 -0
  494. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/functional.py +0 -0
  495. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/interpolate.py +0 -0
  496. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/__init__.py +0 -0
  497. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/_lazy.py +0 -0
  498. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/constructors.py +0 -0
  499. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/decomposition/__init__.py +0 -0
  500. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/decomposition/cholesky.py +0 -0
  501. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/decomposition/eigen.py +0 -0
  502. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/decomposition/lu.py +0 -0
  503. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/decomposition/qr.py +0 -0
  504. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/decomposition/schur.py +0 -0
  505. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/decomposition/svd.py +0 -0
  506. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/dtype_utils.py +0 -0
  507. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/inverse.py +0 -0
  508. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/products.py +0 -0
  509. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/solvers/__init__.py +0 -0
  510. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/solvers/core.py +0 -0
  511. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/solvers/general.py +0 -0
  512. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/solvers/linear_control.py +0 -0
  513. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/solvers/lstsq.py +0 -0
  514. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/solvers/psd.py +0 -0
  515. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/solvers/triangular.py +0 -0
  516. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/solvers/tridiagonal.py +0 -0
  517. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/linalg/summary.py +0 -0
  518. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/math.py +0 -0
  519. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/nlinalg.py +0 -0
  520. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/optimize.py +0 -0
  521. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/random/__init__.py +0 -0
  522. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/random/basic.py +0 -0
  523. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/random/op.py +0 -0
  524. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/random/rewriting/__init__.py +0 -0
  525. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/random/rewriting/basic.py +0 -0
  526. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/random/rewriting/jax.py +0 -0
  527. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/random/rewriting/numba.py +0 -0
  528. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/random/type.py +0 -0
  529. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/random/utils.py +0 -0
  530. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/random/variable.py +0 -0
  531. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/reshape.py +0 -0
  532. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/__init__.py +0 -0
  533. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/assumptions.py +0 -0
  534. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/basic.py +0 -0
  535. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/blas.py +0 -0
  536. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/blas_c.py +0 -0
  537. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/blockwise.py +0 -0
  538. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/einsum.py +0 -0
  539. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/elemwise.py +0 -0
  540. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/extra_ops.py +0 -0
  541. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/fused_elemwise.py +0 -0
  542. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/jax.py +0 -0
  543. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/linalg/__init__.py +0 -0
  544. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/linalg/decomposition.py +0 -0
  545. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/linalg/inverse.py +0 -0
  546. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/linalg/products.py +0 -0
  547. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/linalg/solvers.py +0 -0
  548. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/linalg/summary.py +0 -0
  549. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/linalg/utils.py +0 -0
  550. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/numba.py +0 -0
  551. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/ofg.py +0 -0
  552. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/optimize.py +0 -0
  553. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/reshape.py +0 -0
  554. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/shape.py +0 -0
  555. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/special.py +0 -0
  556. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/subtensor.py +0 -0
  557. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/subtensor_lift.py +0 -0
  558. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/rewriting/uncanonicalize.py +0 -0
  559. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/shape.py +0 -0
  560. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/sharedvar.py +0 -0
  561. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/signal/__init__.py +0 -0
  562. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/signal/conv.py +0 -0
  563. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/slinalg.py +0 -0
  564. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/sort.py +0 -0
  565. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/special.py +0 -0
  566. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/subtensor.py +0 -0
  567. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/symbolic.py +0 -0
  568. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/type.py +0 -0
  569. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/type_other.py +0 -0
  570. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/utils.py +0 -0
  571. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/var.py +0 -0
  572. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/variable.py +0 -0
  573. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/tensor/xlogx.py +0 -0
  574. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/typed_list/__init__.py +0 -0
  575. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/typed_list/basic.py +0 -0
  576. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/typed_list/rewriting.py +0 -0
  577. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/typed_list/type.py +0 -0
  578. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/utils.py +0 -0
  579. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/__init__.py +0 -0
  580. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/basic.py +0 -0
  581. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/indexing.py +0 -0
  582. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/linalg.py +0 -0
  583. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/math.py +0 -0
  584. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/random/__init__.py +0 -0
  585. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/random/basic.py +0 -0
  586. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/random/type.py +0 -0
  587. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/random/variable.py +0 -0
  588. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/reduction.py +0 -0
  589. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/rewriting/__init__.py +0 -0
  590. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/rewriting/basic.py +0 -0
  591. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/rewriting/indexing.py +0 -0
  592. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/rewriting/math.py +0 -0
  593. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/rewriting/reduction.py +0 -0
  594. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/rewriting/shape.py +0 -0
  595. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/rewriting/utils.py +0 -0
  596. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/rewriting/vectorization.py +0 -0
  597. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/shape.py +0 -0
  598. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/signal.py +0 -0
  599. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/type.py +0 -0
  600. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor/xtensor/vectorization.py +0 -0
  601. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor.egg-info/dependency_links.txt +0 -0
  602. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor.egg-info/entry_points.txt +0 -0
  603. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor.egg-info/requires.txt +0 -0
  604. {pytensor-3.2.4 → pytensor-3.3.0}/pytensor.egg-info/top_level.txt +0 -0
  605. {pytensor-3.2.4 → pytensor-3.3.0}/scripts/mypy-failing.txt +0 -0
  606. {pytensor-3.2.4 → pytensor-3.3.0}/scripts/slowest_tests/update-slowest-times-issue.sh +0 -0
  607. {pytensor-3.2.4 → pytensor-3.3.0}/setup.cfg +0 -0
  608. {pytensor-3.2.4 → pytensor-3.3.0}/setup.py +0 -0
  609. {pytensor-3.2.4 → pytensor-3.3.0}/tests/link/c/c_code/test_cenum.h +0 -0
  610. {pytensor-3.2.4 → pytensor-3.3.0}/tests/link/c/c_code/test_quadratic_function.c +0 -0
  611. {pytensor-3.2.4 → pytensor-3.3.0}/tests/test_basic.py +0 -0
  612. {pytensor-3.2.4 → pytensor-3.3.0}/tests/test_breakpoint.py +0 -0
  613. {pytensor-3.2.4 → pytensor-3.3.0}/tests/test_config.py +0 -0
  614. {pytensor-3.2.4 → pytensor-3.3.0}/tests/test_gradient.py +0 -0
  615. {pytensor-3.2.4 → pytensor-3.3.0}/tests/test_ifelse.py +0 -0
  616. {pytensor-3.2.4 → pytensor-3.3.0}/tests/test_printing.py +0 -0
  617. {pytensor-3.2.4 → pytensor-3.3.0}/tests/test_raise_op.py +0 -0
  618. {pytensor-3.2.4 → pytensor-3.3.0}/tests/test_rop.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pytensor
3
- Version: 3.2.4
3
+ Version: 3.3.0
4
4
  Summary: Optimizing compiler for evaluating mathematical expressions on CPUs and GPUs.
5
5
  Author-email: pymc-devs <pymc.devs@gmail.com>
6
6
  License-Expression: BSD-3-Clause
@@ -24,6 +24,7 @@ Classifier: Programming Language :: Python :: 3
24
24
  Classifier: Programming Language :: Python :: 3.12
25
25
  Classifier: Programming Language :: Python :: 3.13
26
26
  Classifier: Programming Language :: Python :: 3.14
27
+ Classifier: Programming Language :: Python :: Free Threading :: 1 - Unstable
27
28
  Requires-Python: <3.15,>=3.12
28
29
  Description-Content-Type: text/x-rst
29
30
  License-File: LICENSE.txt
@@ -33,6 +33,7 @@ classifiers = [
33
33
  "Programming Language :: Python :: 3.12",
34
34
  "Programming Language :: Python :: 3.13",
35
35
  "Programming Language :: Python :: 3.14",
36
+ "Programming Language :: Python :: Free Threading :: 1 - Unstable",
36
37
  ]
37
38
 
38
39
  keywords = [
@@ -185,11 +186,18 @@ files = ["pytensor", "tests"]
185
186
  build = "*"
186
187
  # Uncomment to skip builds that compile but fail when trying to test (maybe due to incompatibility with runner)
187
188
  # archs = ["auto64"]
188
- # Disable any-platform (pp*), 32-bit builds, and free-threaded builds (cp*t-*)
189
+ # Disable any-platform (pp*) and 32-bit builds
189
190
  # Additional options to consider: "*musllinux*"
190
- skip = ["pp*", "*-win32", "*-manylinux_i686", "cp*t-*"]
191
+ skip = ["pp*", "*-win32", "*-manylinux_i686"]
192
+ # Free-threaded (cp*t-*) wheels are built by default. The compiled extensions
193
+ # are not marked free-threading-safe, so importing them re-enables the GIL
194
+ # (with a warning). That's fine: they're no longer loaded by default.
191
195
  build-frontend = "build"
192
- test-command = 'python -c "import pytensor; print(pytensor.__version__); from pytensor.scan import scan_perform; print(scan_perform.get_version())"'
196
+ # Import the compiled extensions and evaluate a function to check the wheel loads and
197
+ # runs everywhere, including free-threaded builds. cxx="" disables the C backend (the
198
+ # minimal wheel-test env has no libpython to link a runtime-compiled thunk against) and
199
+ # FAST_COMPILE avoids numba, which crashes on free-threaded Windows.
200
+ test-command = '''python -c "import pytensor; pytensor.config.cxx = ''; import pytensor.tensor as pt; print(pytensor.__version__); from pytensor.scan import scan_perform; print(scan_perform.get_version()); x = pt.vector(); f = pytensor.function([x], (x * 2).sum(), mode='FAST_COMPILE'); assert float(f([1.0, 2.0, 3.0])) == 12.0"'''
193
201
  test-skip = ["*musllinux*", "*i686*"]
194
202
 
195
203
  # Testing seems to be running into issues locating libs where expected
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2026-08-02T00:12:33+0200",
11
+ "date": "2026-08-12T10:16:27+0200",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "7175f7cadf3934a03f63e6e7b187fa1519e6d85f",
15
- "version": "3.2.4"
14
+ "full-revisionid": "aa1bc7772eb11ed8def2814374aeb5da03da590c",
15
+ "version": "3.3.0"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -1,3 +1,5 @@
1
+ import jax.numpy as jnp
2
+
1
3
  from pytensor.link.jax.dispatch.basic import jax_funcify
2
4
  from pytensor.tensor.subtensor import (
3
5
  AdvancedIncSubtensor,
@@ -60,7 +62,11 @@ def jax_funcify_IncSubtensor(op, node, **kwargs):
60
62
  indices = indices[0]
61
63
 
62
64
  if isinstance(op, AdvancedIncSubtensor):
63
- op._check_runtime_broadcast_of_vector_index(node, x, y, indices)
65
+ # jax_typify downgrades 0d arrays to Python scalars, which have no .shape,
66
+ # so re-arrayify y for a check that is written against array values.
67
+ op._check_runtime_broadcast_of_vector_index(
68
+ node, x, jnp.asarray(y), indices
69
+ )
64
70
 
65
71
  return jax_fn(x, indices, y)
66
72
 
@@ -15,25 +15,36 @@ from pytensor.link.utils import fgraph_to_python
15
15
  from pytensor.raise_op import Assert, CheckAndRaise
16
16
 
17
17
 
18
+ def float64_supported():
19
+ """Return whether the current default device can operate on float64.
20
+
21
+ MLX implements float64 on the CPU only; the Metal backend rejects it outright.
22
+ """
23
+ return mx.default_device() == mx.cpu
24
+
25
+
18
26
  def convert_dtype_to_mlx(dtype_str, auto_cast_unsupported=True):
19
27
  """Convert PyTensor dtype strings to MLX dtype objects.
20
28
 
21
29
  MLX expects dtype objects rather than string literals for type conversion.
22
30
  This function maps common dtype strings to their MLX equivalents.
23
31
 
32
+ float64 survives when the default device supports it and is narrowed to float32
33
+ otherwise. complex128 is always narrowed, MLX having no wider complex type.
34
+
24
35
  Parameters
25
36
  ----------
26
37
  dtype_str : str or MLX dtype
27
38
  The dtype to convert
28
- auto_cast_unsupported : bool
29
- If True, automatically cast unsupported dtypes to supported ones with warnings
39
+ auto_cast_unsupported : bool, optional
40
+ If True, narrow dtypes the current device cannot handle, warning as it does so.
41
+ If False, return the requested dtype and let any later failure surface. Default
42
+ True.
30
43
 
31
44
  Returns
32
45
  -------
33
46
  MLX dtype object
34
47
  """
35
- import warnings
36
-
37
48
  if isinstance(dtype_str, str):
38
49
  if dtype_str == "bool":
39
50
  return mx.bool_
@@ -58,11 +69,12 @@ def convert_dtype_to_mlx(dtype_str, auto_cast_unsupported=True):
58
69
  elif dtype_str == "float32":
59
70
  return mx.float32
60
71
  elif dtype_str == "float64":
61
- if auto_cast_unsupported:
72
+ if auto_cast_unsupported and not float64_supported():
62
73
  warnings.warn(
63
74
  "MLX does not support float64 on GPU. Automatically casting to float32. "
64
- "This may result in reduced precision. To avoid this warning, "
65
- "explicitly use float32 in your code or set floatX='float32' in PyTensor config.",
75
+ "This may result in reduced precision. To keep float64, run on the CPU "
76
+ "device with mx.set_default_device(mx.cpu); to avoid this warning, use "
77
+ "float32 or set floatX='float32' in PyTensor config.",
66
78
  UserWarning,
67
79
  stacklevel=3,
68
80
  )
@@ -116,6 +128,10 @@ def mlx_typify(data, **kwargs):
116
128
 
117
129
  @mlx_typify.register(np.ndarray)
118
130
  def mlx_typify_tensor(data, dtype=None, **kwargs):
131
+ # mx.array narrows float64 input to float32 unless the dtype is named explicitly,
132
+ # and it does so on the CPU too, where float64 is perfectly usable
133
+ if dtype is None and data.dtype == np.float64 and float64_supported():
134
+ dtype = mx.float64
119
135
  return _nan_safe_constant(data, dtype=dtype)
120
136
 
121
137
 
@@ -0,0 +1 @@
1
+ from pytensor.link.mlx.dispatch.scalar import basic, bessel, erf, erfcinv, gamma, math
@@ -5,16 +5,15 @@ import mlx.core as mx
5
5
  from pytensor.link.mlx.dispatch.basic import convert_dtype_to_mlx, mlx_funcify
6
6
  from pytensor.scalar.basic import (
7
7
  Cast,
8
+ Clip,
8
9
  Composite,
9
10
  Identity,
10
11
  Mod,
11
12
  ScalarOp,
12
13
  Second,
13
14
  )
14
- from pytensor.scalar.math import Erfc, Erfcx, Log1mexp, Sigmoid, Softplus
15
15
 
16
16
 
17
- # MLX name overrides for nfunc_spec names that don't match mlx.core
18
17
  MLX_NFUNC_OVERRIDES = {
19
18
  "true_divide": "divide",
20
19
  "invert": "bitwise_invert",
@@ -96,6 +95,14 @@ def mlx_funcify_Mod(op, **kwargs):
96
95
  return mlx_mod
97
96
 
98
97
 
98
+ @mlx_funcify.register(Clip)
99
+ def mlx_funcify_Clip(op, **kwargs):
100
+ def clip(x, min, max):
101
+ return mx.where(x < min, min, mx.where(x > max, max, x))
102
+
103
+ return clip
104
+
105
+
99
106
  @mlx_funcify.register(Identity)
100
107
  def mlx_funcify_Identity(op, **kwargs):
101
108
  def identity(x):
@@ -115,55 +122,6 @@ def mlx_funcify_Second(op, **kwargs):
115
122
  return second
116
123
 
117
124
 
118
- @mlx_funcify.register(Sigmoid)
119
- def mlx_funcify_Sigmoid(op, **kwargs):
120
- return mx.sigmoid
121
-
122
-
123
- @mlx_funcify.register(Erfc)
124
- def mlx_funcify_Erfc(op, **kwargs):
125
- def erfc(x):
126
- return 1.0 - mx.erf(x)
127
-
128
- return erfc
129
-
130
-
131
- @mlx_funcify.register(Erfcx)
132
- def mlx_funcify_Erfcx(op, **kwargs):
133
- def erfcx(x):
134
- return mx.exp(x * x) * (1.0 - mx.erf(x))
135
-
136
- return erfcx
137
-
138
-
139
- @mlx_funcify.register(Softplus)
140
- def mlx_funcify_Softplus(op, **kwargs):
141
- def softplus(x):
142
- return mx.where(
143
- x < -37.0,
144
- mx.exp(x),
145
- mx.where(
146
- x < 18.0,
147
- mx.log1p(mx.exp(x)),
148
- mx.where(
149
- x < 33.3,
150
- x + mx.exp(-x),
151
- x,
152
- ),
153
- ),
154
- )
155
-
156
- return softplus
157
-
158
-
159
- @mlx_funcify.register(Log1mexp)
160
- def mlx_funcify_Log1mexp(op, node, **kwargs):
161
- def log1mexp(x):
162
- return mx.where(x < mx.log(0.5), mx.log1p(-mx.exp(x)), mx.log(-mx.expm1(x)))
163
-
164
- return log1mexp
165
-
166
-
167
125
  @mlx_funcify.register(Composite)
168
126
  def mlx_funcify_Composite(op, node=None, **kwargs):
169
127
  return mlx_funcify(op.fgraph, squeeze_output=True)