pytensor 2.30.1__tar.gz → 2.30.2__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 (447) hide show
  1. {pytensor-2.30.1/pytensor.egg-info → pytensor-2.30.2}/PKG-INFO +1 -1
  2. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/_version.py +3 -3
  3. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/compile/mode.py +0 -1
  4. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/random.py +3 -1
  5. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/rewriting/subtensor.py +25 -11
  6. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/signal/conv.py +2 -2
  7. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/subtensor.py +7 -82
  8. {pytensor-2.30.1 → pytensor-2.30.2/pytensor.egg-info}/PKG-INFO +1 -1
  9. {pytensor-2.30.1 → pytensor-2.30.2}/LICENSE.txt +0 -0
  10. {pytensor-2.30.1 → pytensor-2.30.2}/MANIFEST.in +0 -0
  11. {pytensor-2.30.1 → pytensor-2.30.2}/README.rst +0 -0
  12. {pytensor-2.30.1 → pytensor-2.30.2}/doc/.templates/PLACEHOLDER +0 -0
  13. {pytensor-2.30.1 → pytensor-2.30.2}/doc/.templates/layout.html +0 -0
  14. {pytensor-2.30.1 → pytensor-2.30.2}/doc/.templates/nb-badges.html +0 -0
  15. {pytensor-2.30.1 → pytensor-2.30.2}/doc/.templates/rendered_citation.html +0 -0
  16. {pytensor-2.30.1 → pytensor-2.30.2}/doc/LICENSE.txt +0 -0
  17. {pytensor-2.30.1 → pytensor-2.30.2}/doc/README.md +0 -0
  18. {pytensor-2.30.1 → pytensor-2.30.2}/doc/acknowledgement.rst +0 -0
  19. {pytensor-2.30.1 → pytensor-2.30.2}/doc/bcast.png +0 -0
  20. {pytensor-2.30.1 → pytensor-2.30.2}/doc/bcast.svg +0 -0
  21. {pytensor-2.30.1 → pytensor-2.30.2}/doc/blog.md +0 -0
  22. {pytensor-2.30.1 → pytensor-2.30.2}/doc/conf.py +0 -0
  23. {pytensor-2.30.1 → pytensor-2.30.2}/doc/core_development_guide.rst +0 -0
  24. {pytensor-2.30.1 → pytensor-2.30.2}/doc/css.inc +0 -0
  25. {pytensor-2.30.1 → pytensor-2.30.2}/doc/dev_start_guide.rst +0 -0
  26. {pytensor-2.30.1 → pytensor-2.30.2}/doc/environment.yml +0 -0
  27. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/apply.png +0 -0
  28. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/apply.svg +0 -0
  29. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/apply2.svg +0 -0
  30. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/creating_a_c_op.rst +0 -0
  31. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/creating_a_numba_jax_op.rst +0 -0
  32. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/creating_an_op.rst +0 -0
  33. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/ctype.rst +0 -0
  34. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/extending_faq.rst +0 -0
  35. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/extending_pytensor_solution_1.py +0 -0
  36. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/graph_rewriting.rst +0 -0
  37. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/graphstructures.rst +0 -0
  38. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/index.rst +0 -0
  39. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/inplace.rst +0 -0
  40. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/op.rst +0 -0
  41. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/other_ops.rst +0 -0
  42. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/pics/symbolic_graph_opt.png +0 -0
  43. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/pics/symbolic_graph_unopt.png +0 -0
  44. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/pipeline.rst +0 -0
  45. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/scan.rst +0 -0
  46. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/tips.rst +0 -0
  47. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/type.rst +0 -0
  48. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/unittest.rst +0 -0
  49. {pytensor-2.30.1 → pytensor-2.30.2}/doc/extending/using_params.rst +0 -0
  50. {pytensor-2.30.1 → pytensor-2.30.2}/doc/faq.rst +0 -0
  51. {pytensor-2.30.1 → pytensor-2.30.2}/doc/gallery/page_footer.md +0 -0
  52. {pytensor-2.30.1 → pytensor-2.30.2}/doc/gallery/rewrites/graph_rewrites.ipynb +0 -0
  53. {pytensor-2.30.1 → pytensor-2.30.2}/doc/gallery/scan/scan_tutorial.ipynb +0 -0
  54. {pytensor-2.30.1 → pytensor-2.30.2}/doc/generate_dtype_tensor_table.py +0 -0
  55. {pytensor-2.30.1 → pytensor-2.30.2}/doc/glossary.rst +0 -0
  56. {pytensor-2.30.1 → pytensor-2.30.2}/doc/images/Elman_srnn.png +0 -0
  57. {pytensor-2.30.1 → pytensor-2.30.2}/doc/images/PyTensor.png +0 -0
  58. {pytensor-2.30.1 → pytensor-2.30.2}/doc/images/PyTensor_RGB.svg +0 -0
  59. {pytensor-2.30.1 → pytensor-2.30.2}/doc/images/PyTensor_logo.png +0 -0
  60. {pytensor-2.30.1 → pytensor-2.30.2}/doc/images/binder.svg +0 -0
  61. {pytensor-2.30.1 → pytensor-2.30.2}/doc/images/blocksparse.png +0 -0
  62. {pytensor-2.30.1 → pytensor-2.30.2}/doc/images/colab.svg +0 -0
  63. {pytensor-2.30.1 → pytensor-2.30.2}/doc/images/github.svg +0 -0
  64. {pytensor-2.30.1 → pytensor-2.30.2}/doc/images/lstm.png +0 -0
  65. {pytensor-2.30.1 → pytensor-2.30.2}/doc/images/lstm_memorycell.png +0 -0
  66. {pytensor-2.30.1 → pytensor-2.30.2}/doc/images/talk2010.gif +0 -0
  67. {pytensor-2.30.1 → pytensor-2.30.2}/doc/images/talk2010.png +0 -0
  68. {pytensor-2.30.1 → pytensor-2.30.2}/doc/index.rst +0 -0
  69. {pytensor-2.30.1 → pytensor-2.30.2}/doc/install.rst +0 -0
  70. {pytensor-2.30.1 → pytensor-2.30.2}/doc/internal/how_to_release.rst +0 -0
  71. {pytensor-2.30.1 → pytensor-2.30.2}/doc/internal/index.rst +0 -0
  72. {pytensor-2.30.1 → pytensor-2.30.2}/doc/internal/metadocumentation.rst +0 -0
  73. {pytensor-2.30.1 → pytensor-2.30.2}/doc/introduction.rst +0 -0
  74. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/compile/debugmode.rst +0 -0
  75. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/compile/function.rst +0 -0
  76. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/compile/index.rst +0 -0
  77. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/compile/io.rst +0 -0
  78. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/compile/mode.rst +0 -0
  79. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/compile/nanguardmode.rst +0 -0
  80. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/compile/opfromgraph.rst +0 -0
  81. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/compile/ops.rst +0 -0
  82. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/compile/profilemode.rst +0 -0
  83. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/compile/shared.rst +0 -0
  84. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/config.rst +0 -0
  85. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/d3viz/examples/d3viz/css/d3-context-menu.css +0 -0
  86. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/d3viz/examples/d3viz/css/d3viz.css +0 -0
  87. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/d3viz/examples/d3viz/js/d3-context-menu.js +0 -0
  88. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/d3viz/examples/d3viz/js/d3.v3.min.js +0 -0
  89. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/d3viz/examples/d3viz/js/d3viz.js +0 -0
  90. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/d3viz/examples/d3viz/js/dagre-d3.min.js +0 -0
  91. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/d3viz/examples/d3viz/js/graphlib-dot.min.js +0 -0
  92. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/d3viz/examples/mlp.html +0 -0
  93. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/d3viz/examples/mlp.png +0 -0
  94. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/d3viz/examples/mlp2.html +0 -0
  95. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/d3viz/examples/mlp2.pdf +0 -0
  96. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/d3viz/examples/mlp2.png +0 -0
  97. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/d3viz/examples/ofg.html +0 -0
  98. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/d3viz/examples/ofg2.html +0 -0
  99. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/d3viz/index.ipynb +0 -0
  100. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/d3viz/index.rst +0 -0
  101. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/d3viz/index_files/index_10_0.png +0 -0
  102. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/d3viz/index_files/index_11_0.png +0 -0
  103. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/d3viz/index_files/index_24_0.png +0 -0
  104. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/d3viz/index_files/index_25_0.png +0 -0
  105. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/graph/features.rst +0 -0
  106. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/graph/fgraph.rst +0 -0
  107. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/graph/graph.rst +0 -0
  108. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/graph/index.rst +0 -0
  109. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/graph/op.rst +0 -0
  110. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/graph/replace.rst +0 -0
  111. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/graph/type.rst +0 -0
  112. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/graph/utils.rst +0 -0
  113. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/index.rst +0 -0
  114. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/misc/pkl_utils.rst +0 -0
  115. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/printing.rst +0 -0
  116. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/scalar/index.rst +0 -0
  117. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/scan.rst +0 -0
  118. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/sparse/index.rst +0 -0
  119. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/sparse/sandbox.rst +0 -0
  120. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/tensor/basic.rst +0 -0
  121. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/tensor/basic_opt.rst +0 -0
  122. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/tensor/bcast.png +0 -0
  123. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/tensor/bcast.svg +0 -0
  124. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/tensor/conv.rst +0 -0
  125. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/tensor/elemwise.rst +0 -0
  126. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/tensor/extra_ops.rst +0 -0
  127. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/tensor/fft.rst +0 -0
  128. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/tensor/functional.rst +0 -0
  129. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/tensor/index.rst +0 -0
  130. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/tensor/io.rst +0 -0
  131. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/tensor/math_opt.rst +0 -0
  132. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/tensor/nlinalg.rst +0 -0
  133. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/tensor/plot_fft.png +0 -0
  134. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/tensor/random/distributions.rst +0 -0
  135. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/tensor/random/index.rst +0 -0
  136. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/tensor/slinalg.rst +0 -0
  137. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/tensor/utils.rst +0 -0
  138. {pytensor-2.30.1 → pytensor-2.30.2}/doc/library/typed_list.rst +0 -0
  139. {pytensor-2.30.1 → pytensor-2.30.2}/doc/links.rst +0 -0
  140. {pytensor-2.30.1 → pytensor-2.30.2}/doc/optimizations.rst +0 -0
  141. {pytensor-2.30.1 → pytensor-2.30.2}/doc/pylintrc +0 -0
  142. {pytensor-2.30.1 → pytensor-2.30.2}/doc/robots.txt +0 -0
  143. {pytensor-2.30.1 → pytensor-2.30.2}/doc/troubleshooting.rst +0 -0
  144. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/adding.rst +0 -0
  145. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/adding_solution_1.py +0 -0
  146. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/aliasing.rst +0 -0
  147. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/apply.png +0 -0
  148. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/apply.svg +0 -0
  149. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/bcast.png +0 -0
  150. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/broadcasting.rst +0 -0
  151. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/conditions.rst +0 -0
  152. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/debug_faq.rst +0 -0
  153. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/dlogistic.png +0 -0
  154. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/examples.rst +0 -0
  155. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/faq_tutorial.rst +0 -0
  156. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/gradients.rst +0 -0
  157. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/index.rst +0 -0
  158. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/loading_and_saving.rst +0 -0
  159. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/logistic.gp +0 -0
  160. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/logistic.png +0 -0
  161. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/loop.rst +0 -0
  162. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/loop_solution_1.py +0 -0
  163. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/modes.rst +0 -0
  164. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/modes_solution_1.py +0 -0
  165. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/multi_cores.rst +0 -0
  166. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/nan_tutorial.rst +0 -0
  167. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/pics/d3viz.png +0 -0
  168. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/pics/logreg_pydotprint_predict.png +0 -0
  169. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/pics/logreg_pydotprint_prediction.png +0 -0
  170. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/pics/logreg_pydotprint_train.png +0 -0
  171. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/printing_drawing.rst +0 -0
  172. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/prng.rst +0 -0
  173. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/profiling.rst +0 -0
  174. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/profiling_example.py +0 -0
  175. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/profiling_example_out.prof +0 -0
  176. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/shape_info.rst +0 -0
  177. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/sparse.rst +0 -0
  178. {pytensor-2.30.1 → pytensor-2.30.2}/doc/tutorial/symbolic_graphs.rst +0 -0
  179. {pytensor-2.30.1 → pytensor-2.30.2}/doc/user_guide.rst +0 -0
  180. {pytensor-2.30.1 → pytensor-2.30.2}/pyproject.toml +0 -0
  181. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/__init__.py +0 -0
  182. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/bin/__init__.py +0 -0
  183. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/bin/pytensor_cache.py +0 -0
  184. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/breakpoint.py +0 -0
  185. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/compile/__init__.py +0 -0
  186. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/compile/builders.py +0 -0
  187. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/compile/compiledir.py +0 -0
  188. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/compile/compilelock.py +0 -0
  189. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/compile/debugmode.py +0 -0
  190. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/compile/function/__init__.py +0 -0
  191. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/compile/function/pfunc.py +0 -0
  192. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/compile/function/types.py +0 -0
  193. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/compile/io.py +0 -0
  194. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/compile/monitormode.py +0 -0
  195. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/compile/nanguardmode.py +0 -0
  196. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/compile/ops.py +0 -0
  197. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/compile/profiling.py +0 -0
  198. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/compile/sharedvalue.py +0 -0
  199. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/configdefaults.py +0 -0
  200. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/configparser.py +0 -0
  201. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/d3viz/__init__.py +0 -0
  202. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/d3viz/css/d3-context-menu.css +0 -0
  203. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/d3viz/css/d3viz.css +0 -0
  204. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/d3viz/d3viz.py +0 -0
  205. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/d3viz/formatting.py +0 -0
  206. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/d3viz/js/d3-context-menu.js +0 -0
  207. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/d3viz/js/d3.v3.min.js +0 -0
  208. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/d3viz/js/d3viz.js +0 -0
  209. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/d3viz/js/dagre-d3.min.js +0 -0
  210. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/d3viz/js/graphlib-dot.min.js +0 -0
  211. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/gradient.py +0 -0
  212. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/graph/__init__.py +0 -0
  213. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/graph/basic.py +0 -0
  214. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/graph/destroyhandler.py +0 -0
  215. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/graph/features.py +0 -0
  216. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/graph/fg.py +0 -0
  217. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/graph/null_type.py +0 -0
  218. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/graph/op.py +0 -0
  219. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/graph/replace.py +0 -0
  220. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/graph/rewriting/__init__.py +0 -0
  221. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/graph/rewriting/basic.py +0 -0
  222. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/graph/rewriting/db.py +0 -0
  223. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/graph/rewriting/kanren.py +0 -0
  224. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/graph/rewriting/unify.py +0 -0
  225. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/graph/rewriting/utils.py +0 -0
  226. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/graph/type.py +0 -0
  227. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/graph/utils.py +0 -0
  228. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/ifelse.py +0 -0
  229. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/__init__.py +0 -0
  230. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/basic.py +0 -0
  231. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/c/__init__.py +0 -0
  232. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/c/basic.py +0 -0
  233. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/c/c_code/lazylinker_c.c +0 -0
  234. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/c/c_code/pytensor_mod_helper.h +0 -0
  235. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/c/cmodule.py +0 -0
  236. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/c/cutils.py +0 -0
  237. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/c/cvm.py +0 -0
  238. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/c/exceptions.py +0 -0
  239. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/c/interface.py +0 -0
  240. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/c/lazylinker_c.py +0 -0
  241. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/c/op.py +0 -0
  242. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/c/params_type.py +0 -0
  243. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/c/type.py +0 -0
  244. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/__init__.py +0 -0
  245. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/__init__.py +0 -0
  246. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/basic.py +0 -0
  247. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/blas.py +0 -0
  248. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/blockwise.py +0 -0
  249. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/einsum.py +0 -0
  250. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/elemwise.py +0 -0
  251. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/extra_ops.py +0 -0
  252. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/math.py +0 -0
  253. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/nlinalg.py +0 -0
  254. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/pad.py +0 -0
  255. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/scalar.py +0 -0
  256. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/scan.py +0 -0
  257. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/shape.py +0 -0
  258. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/signal/__init__.py +0 -0
  259. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/signal/conv.py +0 -0
  260. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/slinalg.py +0 -0
  261. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/sort.py +0 -0
  262. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/sparse.py +0 -0
  263. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/subtensor.py +0 -0
  264. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/dispatch/tensor_basic.py +0 -0
  265. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/jax/linker.py +0 -0
  266. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/__init__.py +0 -0
  267. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/__init__.py +0 -0
  268. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/basic.py +0 -0
  269. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/blockwise.py +0 -0
  270. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/cython_support.py +0 -0
  271. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/elemwise.py +0 -0
  272. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/extra_ops.py +0 -0
  273. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/_LAPACK.py +0 -0
  274. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/__init__.py +0 -0
  275. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/decomposition/__init__.py +0 -0
  276. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/decomposition/cholesky.py +0 -0
  277. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/solve/__init__.py +0 -0
  278. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/solve/cholesky.py +0 -0
  279. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/solve/general.py +0 -0
  280. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/solve/norm.py +0 -0
  281. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/solve/posdef.py +0 -0
  282. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/solve/symmetric.py +0 -0
  283. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/solve/triangular.py +0 -0
  284. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/solve/tridiagonal.py +0 -0
  285. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/solve/utils.py +0 -0
  286. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/utils.py +0 -0
  287. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/nlinalg.py +0 -0
  288. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/random.py +0 -0
  289. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/scalar.py +0 -0
  290. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/scan.py +0 -0
  291. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/signal/__init__.py +0 -0
  292. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/signal/conv.py +0 -0
  293. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/slinalg.py +0 -0
  294. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/sparse.py +0 -0
  295. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/subtensor.py +0 -0
  296. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/tensor_basic.py +0 -0
  297. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/dispatch/vectorize_codegen.py +0 -0
  298. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/numba/linker.py +0 -0
  299. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/__init__.py +0 -0
  300. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/basic.py +0 -0
  301. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/blas.py +0 -0
  302. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/blockwise.py +0 -0
  303. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/elemwise.py +0 -0
  304. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/extra_ops.py +0 -0
  305. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/math.py +0 -0
  306. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/nlinalg.py +0 -0
  307. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/scalar.py +0 -0
  308. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/shape.py +0 -0
  309. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/sort.py +0 -0
  310. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/subtensor.py +0 -0
  311. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/pytorch/linker.py +0 -0
  312. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/utils.py +0 -0
  313. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/link/vm.py +0 -0
  314. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/misc/__init__.py +0 -0
  315. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/misc/check_blas.py +0 -0
  316. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/misc/check_blas_many.sh +0 -0
  317. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/misc/check_duplicate_key.py +0 -0
  318. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/misc/elemwise_openmp_speedup.py +0 -0
  319. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/misc/elemwise_time_test.py +0 -0
  320. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/misc/frozendict.py +0 -0
  321. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/misc/may_share_memory.py +0 -0
  322. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/misc/ordered_set.py +0 -0
  323. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/misc/pkl_utils.py +0 -0
  324. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/npy_2_compat.py +0 -0
  325. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/printing.py +0 -0
  326. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/py.typed +0 -0
  327. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/raise_op.py +0 -0
  328. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/scalar/__init__.py +0 -0
  329. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/scalar/basic.py +0 -0
  330. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/scalar/c_code/Faddeeva.cc +0 -0
  331. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/scalar/c_code/Faddeeva.hh +0 -0
  332. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/scalar/c_code/gamma.c +0 -0
  333. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/scalar/c_code/incbet.c +0 -0
  334. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/scalar/loop.py +0 -0
  335. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/scalar/math.py +0 -0
  336. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/scalar/sharedvar.py +0 -0
  337. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/scan/__init__.py +0 -0
  338. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/scan/basic.py +0 -0
  339. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/scan/checkpoints.py +0 -0
  340. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/scan/op.py +0 -0
  341. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/scan/rewriting.py +0 -0
  342. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/scan/scan_perform.pyx +0 -0
  343. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/scan/scan_perform_ext.py +0 -0
  344. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/scan/utils.py +0 -0
  345. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/scan/views.py +0 -0
  346. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/sparse/__init__.py +0 -0
  347. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/sparse/basic.py +0 -0
  348. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/sparse/rewriting.py +0 -0
  349. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/sparse/sandbox/__init__.py +0 -0
  350. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/sparse/sandbox/sp.py +0 -0
  351. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/sparse/sandbox/sp2.py +0 -0
  352. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/sparse/sharedvar.py +0 -0
  353. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/sparse/type.py +0 -0
  354. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/sparse/utils.py +0 -0
  355. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/__init__.py +0 -0
  356. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/basic.py +0 -0
  357. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/blas.py +0 -0
  358. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/blas_c.py +0 -0
  359. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/blas_headers.py +0 -0
  360. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/blas_scipy.py +0 -0
  361. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/blockwise.py +0 -0
  362. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/c_code/alt_blas_common.h +0 -0
  363. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/c_code/alt_blas_template.c +0 -0
  364. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/c_code/dimshuffle.c +0 -0
  365. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/conv/__init__.py +0 -0
  366. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/conv/abstract_conv.py +0 -0
  367. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/einsum.py +0 -0
  368. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/elemwise.py +0 -0
  369. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/elemwise_cgen.py +0 -0
  370. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/exceptions.py +0 -0
  371. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/extra_ops.py +0 -0
  372. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/fft.py +0 -0
  373. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/fourier.py +0 -0
  374. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/functional.py +0 -0
  375. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/inplace.py +0 -0
  376. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/interpolate.py +0 -0
  377. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/io.py +0 -0
  378. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/linalg.py +0 -0
  379. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/math.py +0 -0
  380. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/nlinalg.py +0 -0
  381. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/pad.py +0 -0
  382. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/random/__init__.py +0 -0
  383. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/random/basic.py +0 -0
  384. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/random/op.py +0 -0
  385. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/random/rewriting/__init__.py +0 -0
  386. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/random/rewriting/basic.py +0 -0
  387. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/random/rewriting/jax.py +0 -0
  388. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/random/rewriting/numba.py +0 -0
  389. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/random/type.py +0 -0
  390. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/random/utils.py +0 -0
  391. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/random/var.py +0 -0
  392. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/rewriting/__init__.py +0 -0
  393. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/rewriting/basic.py +0 -0
  394. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/rewriting/blas.py +0 -0
  395. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/rewriting/blas_c.py +0 -0
  396. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/rewriting/blas_scipy.py +0 -0
  397. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/rewriting/blockwise.py +0 -0
  398. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/rewriting/einsum.py +0 -0
  399. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/rewriting/elemwise.py +0 -0
  400. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/rewriting/extra_ops.py +0 -0
  401. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/rewriting/jax.py +0 -0
  402. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/rewriting/linalg.py +0 -0
  403. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/rewriting/math.py +0 -0
  404. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/rewriting/numba.py +0 -0
  405. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/rewriting/ofg.py +0 -0
  406. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/rewriting/shape.py +0 -0
  407. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/rewriting/special.py +0 -0
  408. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/rewriting/uncanonicalize.py +0 -0
  409. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/shape.py +0 -0
  410. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/sharedvar.py +0 -0
  411. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/signal/__init__.py +0 -0
  412. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/slinalg.py +0 -0
  413. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/sort.py +0 -0
  414. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/special.py +0 -0
  415. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/type.py +0 -0
  416. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/type_other.py +0 -0
  417. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/utils.py +0 -0
  418. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/var.py +0 -0
  419. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/variable.py +0 -0
  420. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/tensor/xlogx.py +0 -0
  421. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/typed_list/__init__.py +0 -0
  422. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/typed_list/basic.py +0 -0
  423. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/typed_list/rewriting.py +0 -0
  424. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/typed_list/type.py +0 -0
  425. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/updates.py +0 -0
  426. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor/utils.py +0 -0
  427. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor.egg-info/SOURCES.txt +0 -0
  428. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor.egg-info/dependency_links.txt +0 -0
  429. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor.egg-info/entry_points.txt +0 -0
  430. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor.egg-info/requires.txt +0 -0
  431. {pytensor-2.30.1 → pytensor-2.30.2}/pytensor.egg-info/top_level.txt +0 -0
  432. {pytensor-2.30.1 → pytensor-2.30.2}/scripts/mypy-failing.txt +0 -0
  433. {pytensor-2.30.1 → pytensor-2.30.2}/scripts/slowest_tests/update-slowest-times-issue.sh +0 -0
  434. {pytensor-2.30.1 → pytensor-2.30.2}/setup.cfg +0 -0
  435. {pytensor-2.30.1 → pytensor-2.30.2}/setup.py +0 -0
  436. {pytensor-2.30.1 → pytensor-2.30.2}/tests/link/c/c_code/test_cenum.h +0 -0
  437. {pytensor-2.30.1 → pytensor-2.30.2}/tests/link/c/c_code/test_quadratic_function.c +0 -0
  438. {pytensor-2.30.1 → pytensor-2.30.2}/tests/tensor/conv/c_code/corr3d_gemm.c +0 -0
  439. {pytensor-2.30.1 → pytensor-2.30.2}/tests/tensor/conv/c_code/corr_gemm.c +0 -0
  440. {pytensor-2.30.1 → pytensor-2.30.2}/tests/test_breakpoint.py +0 -0
  441. {pytensor-2.30.1 → pytensor-2.30.2}/tests/test_config.py +0 -0
  442. {pytensor-2.30.1 → pytensor-2.30.2}/tests/test_gradient.py +0 -0
  443. {pytensor-2.30.1 → pytensor-2.30.2}/tests/test_ifelse.py +0 -0
  444. {pytensor-2.30.1 → pytensor-2.30.2}/tests/test_printing.py +0 -0
  445. {pytensor-2.30.1 → pytensor-2.30.2}/tests/test_raise_op.py +0 -0
  446. {pytensor-2.30.1 → pytensor-2.30.2}/tests/test_rop.py +0 -0
  447. {pytensor-2.30.1 → pytensor-2.30.2}/tests/test_updates.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pytensor
3
- Version: 2.30.1
3
+ Version: 2.30.2
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: .. _license:
@@ -8,11 +8,11 @@ import json
8
8
 
9
9
  version_json = '''
10
10
  {
11
- "date": "2025-03-30T18:28:57+0800",
11
+ "date": "2025-04-01T22:32:44+0200",
12
12
  "dirty": false,
13
13
  "error": null,
14
- "full-revisionid": "3af923ba1593320cf0a5bfb29a04263406652731",
15
- "version": "2.30.1"
14
+ "full-revisionid": "0f5da80c16d5d053f39204d1a728e70e194bef6c",
15
+ "version": "2.30.2"
16
16
  }
17
17
  ''' # END VERSION_JSON
18
18
 
@@ -489,7 +489,6 @@ PYTORCH = Mode(
489
489
  "BlasOpt",
490
490
  "fusion",
491
491
  "inplace",
492
- "local_uint_constant_indices",
493
492
  "scan_save_mem_prealloc",
494
493
  ],
495
494
  ),
@@ -412,7 +412,9 @@ def jax_sample_fn_multinomial(op, node):
412
412
  remaining_n, remaining_p = carry
413
413
  p, rng = p_rng
414
414
  samples = jnp.where(
415
- p == 0, 0, jax.random.binomial(rng, remaining_n, p / remaining_p)
415
+ remaining_n == 0,
416
+ 0,
417
+ jax.random.binomial(rng, remaining_n, p / remaining_p),
416
418
  )
417
419
  remaining_n -= samples
418
420
  remaining_p -= p
@@ -5,7 +5,6 @@ from collections.abc import Iterable
5
5
  import numpy as np
6
6
 
7
7
  import pytensor
8
- import pytensor.scalar.basic as ps
9
8
  from pytensor import compile
10
9
  from pytensor.compile import optdb
11
10
  from pytensor.graph.basic import Constant, Variable
@@ -14,8 +13,11 @@ from pytensor.graph.rewriting.basic import (
14
13
  copy_stack_trace,
15
14
  in2out,
16
15
  node_rewriter,
16
+ out2in,
17
17
  )
18
18
  from pytensor.raise_op import Assert
19
+ from pytensor.scalar import Add, ScalarConstant, ScalarType
20
+ from pytensor.scalar import constant as scalar_constant
19
21
  from pytensor.tensor.basic import (
20
22
  Alloc,
21
23
  Join,
@@ -31,6 +33,7 @@ from pytensor.tensor.basic import (
31
33
  register_infer_shape,
32
34
  switch,
33
35
  )
36
+ from pytensor.tensor.basic import constant as tensor_constant
34
37
  from pytensor.tensor.blockwise import Blockwise
35
38
  from pytensor.tensor.elemwise import Elemwise
36
39
  from pytensor.tensor.exceptions import NotScalarConstantError
@@ -588,11 +591,11 @@ def local_subtensor_remove_broadcastable_index(fgraph, node):
588
591
  remove_dim = []
589
592
  node_inputs_idx = 1
590
593
  for dim, elem in enumerate(idx):
591
- if isinstance(elem, (ps.ScalarType)):
594
+ if isinstance(elem, ScalarType):
592
595
  # The idx is a ScalarType, ie a Type. This means the actual index
593
596
  # is contained in node.inputs[1]
594
597
  dim_index = node.inputs[node_inputs_idx]
595
- if isinstance(dim_index, ps.ScalarConstant):
598
+ if isinstance(dim_index, ScalarConstant):
596
599
  dim_index = dim_index.value
597
600
  if dim_index in (0, -1) and node.inputs[0].broadcastable[dim]:
598
601
  remove_dim.append(dim)
@@ -770,7 +773,7 @@ def local_subtensor_make_vector(fgraph, node):
770
773
 
771
774
  (idx,) = idxs
772
775
 
773
- if isinstance(idx, ps.ScalarType | TensorType):
776
+ if isinstance(idx, ScalarType | TensorType):
774
777
  old_idx, idx = idx, node.inputs[1]
775
778
  assert idx.type.is_super(old_idx)
776
779
  elif isinstance(node.op, AdvancedSubtensor1):
@@ -895,7 +898,7 @@ def local_set_to_inc_subtensor(fgraph, node):
895
898
  and node.op.set_instead_of_inc
896
899
  and node.inputs[1].owner
897
900
  and isinstance(node.inputs[1].owner.op, Elemwise)
898
- and isinstance(node.inputs[1].owner.op.scalar_op, ps.Add)
901
+ and isinstance(node.inputs[1].owner.op.scalar_op, Add)
899
902
  ):
900
903
  addn = node.inputs[1].owner
901
904
  subn = None
@@ -1789,7 +1792,6 @@ def local_join_subtensors(fgraph, node):
1789
1792
  return [merged_subtensors]
1790
1793
 
1791
1794
 
1792
- @register_specialize
1793
1795
  @node_rewriter(
1794
1796
  [
1795
1797
  Subtensor,
@@ -1850,12 +1852,10 @@ def local_uint_constant_indices(fgraph, node):
1850
1852
  if dtype == index_val.dtype:
1851
1853
  continue
1852
1854
 
1853
- if index_val.ndim > 0:
1854
- new_index = pytensor.tensor.as_tensor_variable(
1855
- index_val.astype(dtype), dtype=dtype
1856
- )
1855
+ if isinstance(index.type, TensorType):
1856
+ new_index = tensor_constant(index_val.astype(dtype), dtype=dtype)
1857
1857
  else:
1858
- new_index = ps.constant(index_val.astype(dtype), dtype=dtype)
1858
+ new_index = scalar_constant(index_val.astype(dtype), dtype=dtype)
1859
1859
 
1860
1860
  new_indices[i] = new_index
1861
1861
  has_new_index = True
@@ -1877,6 +1877,20 @@ def local_uint_constant_indices(fgraph, node):
1877
1877
  return [new_out]
1878
1878
 
1879
1879
 
1880
+ compile.optdb.register(
1881
+ local_uint_constant_indices.__name__,
1882
+ out2in(local_uint_constant_indices),
1883
+ # We don't include in the Python / C because those always cast indices to int64 internally.
1884
+ "numba",
1885
+ "jax",
1886
+ # After specialization and uncanonicalization
1887
+ # Other rewrites don't worry about the dtype of the indices
1888
+ # And can cause unnecessary passes of this optimization
1889
+ # Such as x.shape[np.int(0)] -> x.shape[np.uint(0)]
1890
+ position=4,
1891
+ )
1892
+
1893
+
1880
1894
  @register_canonicalize("shape_unsafe")
1881
1895
  @register_stabilize("shape_unsafe")
1882
1896
  @register_specialize("shape_unsafe")
@@ -119,8 +119,8 @@ def convolve1d(
119
119
  if mode == "same":
120
120
  # We implement "same" as "valid" with padded `in1`.
121
121
  in1_batch_shape = tuple(in1.shape)[:-1]
122
- zeros_left = in2.shape[0] // 2
123
- zeros_right = (in2.shape[0] - 1) // 2
122
+ zeros_left = in2.shape[-1] // 2
123
+ zeros_right = (in2.shape[-1] - 1) // 2
124
124
  in1 = join(
125
125
  -1,
126
126
  zeros((*in1_batch_shape, zeros_left), dtype=in2.dtype),
@@ -3,7 +3,6 @@ import sys
3
3
  import warnings
4
4
  from collections.abc import Callable, Iterable, Sequence
5
5
  from itertools import chain, groupby
6
- from textwrap import dedent
7
6
  from typing import cast, overload
8
7
 
9
8
  import numpy as np
@@ -19,7 +18,7 @@ from pytensor.graph.type import Type
19
18
  from pytensor.graph.utils import MethodNotDefined
20
19
  from pytensor.link.c.op import COp
21
20
  from pytensor.link.c.params_type import ParamsType
22
- from pytensor.npy_2_compat import npy_2_compat_header, numpy_version, using_numpy_2
21
+ from pytensor.npy_2_compat import numpy_version, using_numpy_2
23
22
  from pytensor.printing import Printer, pprint, set_precedence
24
23
  from pytensor.scalar.basic import ScalarConstant, ScalarVariable
25
24
  from pytensor.tensor import (
@@ -2130,24 +2129,6 @@ class AdvancedSubtensor1(COp):
2130
2129
  else:
2131
2130
  o = None
2132
2131
 
2133
- # If i.dtype is more precise than numpy.intp (int32 on 32-bit machines,
2134
- # int64 on 64-bit machines), numpy may raise the following error:
2135
- # TypeError: array cannot be safely cast to required type.
2136
- # We need to check if values in i can fit in numpy.intp, because
2137
- # if they don't, that should be an error (no array can have that
2138
- # many elements on a 32-bit arch).
2139
- if i.dtype != np.intp:
2140
- i_ = np.asarray(i, dtype=np.intp)
2141
- if not np.can_cast(i.dtype, np.intp):
2142
- # Check if there was actually an incorrect conversion
2143
- if np.any(i != i_):
2144
- raise IndexError(
2145
- "index contains values that are bigger "
2146
- "than the maximum array size on this system.",
2147
- i,
2148
- )
2149
- i = i_
2150
-
2151
2132
  out[0] = x.take(i, axis=0, out=o)
2152
2133
 
2153
2134
  def connection_pattern(self, node):
@@ -2187,16 +2168,6 @@ class AdvancedSubtensor1(COp):
2187
2168
  x, ilist = ishapes
2188
2169
  return [ilist + x[1:]]
2189
2170
 
2190
- def c_support_code(self, **kwargs):
2191
- # In some versions of numpy, NPY_MIN_INTP is defined as MIN_LONG,
2192
- # which is not defined. It should be NPY_MIN_LONG instead in that case.
2193
- return npy_2_compat_header() + dedent(
2194
- """\
2195
- #ifndef MIN_LONG
2196
- #define MIN_LONG NPY_MIN_LONG
2197
- #endif"""
2198
- )
2199
-
2200
2171
  def c_code(self, node, name, input_names, output_names, sub):
2201
2172
  if self.__class__ is not AdvancedSubtensor1:
2202
2173
  raise MethodNotDefined(
@@ -2207,61 +2178,16 @@ class AdvancedSubtensor1(COp):
2207
2178
  output_name = output_names[0]
2208
2179
  fail = sub["fail"]
2209
2180
  return f"""
2210
- PyArrayObject *indices;
2211
- int i_type = PyArray_TYPE({i_name});
2212
- if (i_type != NPY_INTP) {{
2213
- // Cast {i_name} to NPY_INTP (expected by PyArray_TakeFrom),
2214
- // if all values fit.
2215
- if (!PyArray_CanCastSafely(i_type, NPY_INTP) &&
2216
- PyArray_SIZE({i_name}) > 0) {{
2217
- npy_int64 min_val, max_val;
2218
- PyObject* py_min_val = PyArray_Min({i_name}, NPY_RAVEL_AXIS,
2219
- NULL);
2220
- if (py_min_val == NULL) {{
2221
- {fail};
2222
- }}
2223
- min_val = PyLong_AsLongLong(py_min_val);
2224
- Py_DECREF(py_min_val);
2225
- if (min_val == -1 && PyErr_Occurred()) {{
2226
- {fail};
2227
- }}
2228
- PyObject* py_max_val = PyArray_Max({i_name}, NPY_RAVEL_AXIS,
2229
- NULL);
2230
- if (py_max_val == NULL) {{
2231
- {fail};
2232
- }}
2233
- max_val = PyLong_AsLongLong(py_max_val);
2234
- Py_DECREF(py_max_val);
2235
- if (max_val == -1 && PyErr_Occurred()) {{
2236
- {fail};
2237
- }}
2238
- if (min_val < NPY_MIN_INTP || max_val > NPY_MAX_INTP) {{
2239
- PyErr_SetString(PyExc_IndexError,
2240
- "Index contains values "
2241
- "that are bigger than the maximum array "
2242
- "size on this system.");
2243
- {fail};
2244
- }}
2245
- }}
2246
- indices = (PyArrayObject*) PyArray_Cast({i_name}, NPY_INTP);
2247
- if (indices == NULL) {{
2248
- {fail};
2249
- }}
2250
- }}
2251
- else {{
2252
- indices = {i_name};
2253
- Py_INCREF(indices);
2254
- }}
2255
2181
  if ({output_name} != NULL) {{
2256
2182
  npy_intp nd, i, *shape;
2257
- nd = PyArray_NDIM({a_name}) + PyArray_NDIM(indices) - 1;
2183
+ nd = PyArray_NDIM({a_name}) + PyArray_NDIM({i_name}) - 1;
2258
2184
  if (PyArray_NDIM({output_name}) != nd) {{
2259
2185
  Py_CLEAR({output_name});
2260
2186
  }}
2261
2187
  else {{
2262
2188
  shape = PyArray_DIMS({output_name});
2263
- for (i = 0; i < PyArray_NDIM(indices); i++) {{
2264
- if (shape[i] != PyArray_DIMS(indices)[i]) {{
2189
+ for (i = 0; i < PyArray_NDIM({i_name}); i++) {{
2190
+ if (shape[i] != PyArray_DIMS({i_name})[i]) {{
2265
2191
  Py_CLEAR({output_name});
2266
2192
  break;
2267
2193
  }}
@@ -2269,7 +2195,7 @@ class AdvancedSubtensor1(COp):
2269
2195
  if ({output_name} != NULL) {{
2270
2196
  for (; i < nd; i++) {{
2271
2197
  if (shape[i] != PyArray_DIMS({a_name})[
2272
- i-PyArray_NDIM(indices)+1]) {{
2198
+ i-PyArray_NDIM({i_name})+1]) {{
2273
2199
  Py_CLEAR({output_name});
2274
2200
  break;
2275
2201
  }}
@@ -2278,13 +2204,12 @@ class AdvancedSubtensor1(COp):
2278
2204
  }}
2279
2205
  }}
2280
2206
  {output_name} = (PyArrayObject*)PyArray_TakeFrom(
2281
- {a_name}, (PyObject*)indices, 0, {output_name}, NPY_RAISE);
2282
- Py_DECREF(indices);
2207
+ {a_name}, (PyObject*){i_name}, 0, {output_name}, NPY_RAISE);
2283
2208
  if ({output_name} == NULL) {fail};
2284
2209
  """
2285
2210
 
2286
2211
  def c_code_cache_version(self):
2287
- return (0, 1, 2, 3)
2212
+ return (4,)
2288
2213
 
2289
2214
 
2290
2215
  advanced_subtensor1 = AdvancedSubtensor1()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: pytensor
3
- Version: 2.30.1
3
+ Version: 2.30.2
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: .. _license:
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes