pytensor 2.30.0__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.
- {pytensor-2.30.0/pytensor.egg-info → pytensor-2.30.2}/PKG-INFO +1 -1
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/_version.py +3 -3
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/compile/mode.py +0 -1
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/random.py +9 -5
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/rewriting/subtensor.py +25 -11
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/signal/conv.py +2 -2
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/subtensor.py +7 -82
- {pytensor-2.30.0 → pytensor-2.30.2/pytensor.egg-info}/PKG-INFO +1 -1
- {pytensor-2.30.0 → pytensor-2.30.2}/LICENSE.txt +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/MANIFEST.in +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/README.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/.templates/PLACEHOLDER +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/.templates/layout.html +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/.templates/nb-badges.html +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/.templates/rendered_citation.html +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/LICENSE.txt +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/README.md +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/acknowledgement.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/bcast.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/bcast.svg +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/blog.md +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/conf.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/core_development_guide.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/css.inc +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/dev_start_guide.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/environment.yml +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/apply.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/apply.svg +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/apply2.svg +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/creating_a_c_op.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/creating_a_numba_jax_op.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/creating_an_op.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/ctype.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/extending_faq.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/extending_pytensor_solution_1.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/graph_rewriting.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/graphstructures.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/index.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/inplace.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/op.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/other_ops.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/pics/symbolic_graph_opt.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/pics/symbolic_graph_unopt.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/pipeline.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/scan.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/tips.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/type.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/unittest.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/extending/using_params.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/faq.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/gallery/page_footer.md +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/gallery/rewrites/graph_rewrites.ipynb +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/gallery/scan/scan_tutorial.ipynb +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/generate_dtype_tensor_table.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/glossary.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/images/Elman_srnn.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/images/PyTensor.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/images/PyTensor_RGB.svg +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/images/PyTensor_logo.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/images/binder.svg +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/images/blocksparse.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/images/colab.svg +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/images/github.svg +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/images/lstm.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/images/lstm_memorycell.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/images/talk2010.gif +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/images/talk2010.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/index.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/install.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/internal/how_to_release.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/internal/index.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/internal/metadocumentation.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/introduction.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/compile/debugmode.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/compile/function.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/compile/index.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/compile/io.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/compile/mode.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/compile/nanguardmode.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/compile/opfromgraph.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/compile/ops.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/compile/profilemode.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/compile/shared.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/config.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/examples/d3viz/css/d3-context-menu.css +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/examples/d3viz/css/d3viz.css +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/examples/d3viz/js/d3-context-menu.js +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/examples/d3viz/js/d3.v3.min.js +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/examples/d3viz/js/d3viz.js +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/examples/d3viz/js/dagre-d3.min.js +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/examples/d3viz/js/graphlib-dot.min.js +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/examples/mlp.html +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/examples/mlp.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/examples/mlp2.html +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/examples/mlp2.pdf +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/examples/mlp2.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/examples/ofg.html +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/examples/ofg2.html +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/index.ipynb +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/index.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/index_files/index_10_0.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/index_files/index_11_0.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/index_files/index_24_0.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/index_files/index_25_0.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/graph/features.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/graph/fgraph.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/graph/graph.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/graph/index.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/graph/op.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/graph/replace.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/graph/type.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/graph/utils.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/index.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/misc/pkl_utils.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/printing.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/scalar/index.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/scan.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/sparse/index.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/sparse/sandbox.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/tensor/basic.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/tensor/basic_opt.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/tensor/bcast.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/tensor/bcast.svg +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/tensor/conv.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/tensor/elemwise.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/tensor/extra_ops.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/tensor/fft.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/tensor/functional.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/tensor/index.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/tensor/io.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/tensor/math_opt.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/tensor/nlinalg.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/tensor/plot_fft.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/tensor/random/distributions.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/tensor/random/index.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/tensor/slinalg.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/tensor/utils.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/library/typed_list.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/links.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/optimizations.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/pylintrc +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/robots.txt +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/troubleshooting.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/adding.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/adding_solution_1.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/aliasing.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/apply.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/apply.svg +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/bcast.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/broadcasting.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/conditions.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/debug_faq.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/dlogistic.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/examples.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/faq_tutorial.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/gradients.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/index.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/loading_and_saving.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/logistic.gp +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/logistic.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/loop.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/loop_solution_1.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/modes.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/modes_solution_1.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/multi_cores.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/nan_tutorial.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/pics/d3viz.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/pics/logreg_pydotprint_predict.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/pics/logreg_pydotprint_prediction.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/pics/logreg_pydotprint_train.png +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/printing_drawing.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/prng.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/profiling.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/profiling_example.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/profiling_example_out.prof +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/shape_info.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/sparse.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/tutorial/symbolic_graphs.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/doc/user_guide.rst +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pyproject.toml +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/bin/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/bin/pytensor_cache.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/breakpoint.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/compile/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/compile/builders.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/compile/compiledir.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/compile/compilelock.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/compile/debugmode.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/compile/function/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/compile/function/pfunc.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/compile/function/types.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/compile/io.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/compile/monitormode.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/compile/nanguardmode.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/compile/ops.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/compile/profiling.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/compile/sharedvalue.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/configdefaults.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/configparser.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/d3viz/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/d3viz/css/d3-context-menu.css +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/d3viz/css/d3viz.css +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/d3viz/d3viz.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/d3viz/formatting.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/d3viz/js/d3-context-menu.js +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/d3viz/js/d3.v3.min.js +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/d3viz/js/d3viz.js +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/d3viz/js/dagre-d3.min.js +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/d3viz/js/graphlib-dot.min.js +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/gradient.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/graph/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/graph/basic.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/graph/destroyhandler.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/graph/features.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/graph/fg.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/graph/null_type.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/graph/op.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/graph/replace.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/graph/rewriting/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/graph/rewriting/basic.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/graph/rewriting/db.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/graph/rewriting/kanren.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/graph/rewriting/unify.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/graph/rewriting/utils.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/graph/type.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/graph/utils.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/ifelse.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/basic.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/c/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/c/basic.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/c/c_code/lazylinker_c.c +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/c/c_code/pytensor_mod_helper.h +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/c/cmodule.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/c/cutils.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/c/cvm.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/c/exceptions.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/c/interface.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/c/lazylinker_c.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/c/op.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/c/params_type.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/c/type.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/basic.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/blas.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/blockwise.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/einsum.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/elemwise.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/extra_ops.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/math.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/nlinalg.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/pad.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/scalar.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/scan.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/shape.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/signal/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/signal/conv.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/slinalg.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/sort.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/sparse.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/subtensor.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/dispatch/tensor_basic.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/jax/linker.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/basic.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/blockwise.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/cython_support.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/elemwise.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/extra_ops.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/_LAPACK.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/decomposition/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/decomposition/cholesky.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/solve/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/solve/cholesky.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/solve/general.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/solve/norm.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/solve/posdef.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/solve/symmetric.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/solve/triangular.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/solve/tridiagonal.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/solve/utils.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/linalg/utils.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/nlinalg.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/random.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/scalar.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/scan.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/signal/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/signal/conv.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/slinalg.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/sparse.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/subtensor.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/tensor_basic.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/dispatch/vectorize_codegen.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/numba/linker.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/basic.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/blas.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/blockwise.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/elemwise.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/extra_ops.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/math.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/nlinalg.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/scalar.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/shape.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/sort.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/pytorch/dispatch/subtensor.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/pytorch/linker.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/utils.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/link/vm.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/misc/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/misc/check_blas.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/misc/check_blas_many.sh +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/misc/check_duplicate_key.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/misc/elemwise_openmp_speedup.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/misc/elemwise_time_test.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/misc/frozendict.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/misc/may_share_memory.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/misc/ordered_set.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/misc/pkl_utils.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/npy_2_compat.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/printing.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/py.typed +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/raise_op.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/scalar/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/scalar/basic.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/scalar/c_code/Faddeeva.cc +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/scalar/c_code/Faddeeva.hh +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/scalar/c_code/gamma.c +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/scalar/c_code/incbet.c +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/scalar/loop.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/scalar/math.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/scalar/sharedvar.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/scan/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/scan/basic.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/scan/checkpoints.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/scan/op.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/scan/rewriting.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/scan/scan_perform.pyx +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/scan/scan_perform_ext.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/scan/utils.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/scan/views.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/sparse/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/sparse/basic.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/sparse/rewriting.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/sparse/sandbox/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/sparse/sandbox/sp.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/sparse/sandbox/sp2.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/sparse/sharedvar.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/sparse/type.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/sparse/utils.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/basic.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/blas.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/blas_c.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/blas_headers.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/blas_scipy.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/blockwise.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/c_code/alt_blas_common.h +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/c_code/alt_blas_template.c +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/c_code/dimshuffle.c +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/conv/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/conv/abstract_conv.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/einsum.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/elemwise.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/elemwise_cgen.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/exceptions.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/extra_ops.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/fft.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/fourier.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/functional.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/inplace.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/interpolate.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/io.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/linalg.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/math.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/nlinalg.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/pad.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/random/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/random/basic.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/random/op.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/random/rewriting/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/random/rewriting/basic.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/random/rewriting/jax.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/random/rewriting/numba.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/random/type.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/random/utils.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/random/var.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/rewriting/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/rewriting/basic.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/rewriting/blas.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/rewriting/blas_c.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/rewriting/blas_scipy.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/rewriting/blockwise.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/rewriting/einsum.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/rewriting/elemwise.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/rewriting/extra_ops.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/rewriting/jax.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/rewriting/linalg.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/rewriting/math.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/rewriting/numba.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/rewriting/ofg.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/rewriting/shape.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/rewriting/special.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/rewriting/uncanonicalize.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/shape.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/sharedvar.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/signal/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/slinalg.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/sort.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/special.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/type.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/type_other.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/utils.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/var.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/variable.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/tensor/xlogx.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/typed_list/__init__.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/typed_list/basic.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/typed_list/rewriting.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/typed_list/type.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/updates.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor/utils.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor.egg-info/SOURCES.txt +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor.egg-info/dependency_links.txt +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor.egg-info/entry_points.txt +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor.egg-info/requires.txt +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/pytensor.egg-info/top_level.txt +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/scripts/mypy-failing.txt +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/scripts/slowest_tests/update-slowest-times-issue.sh +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/setup.cfg +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/setup.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/tests/link/c/c_code/test_cenum.h +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/tests/link/c/c_code/test_quadratic_function.c +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/tests/tensor/conv/c_code/corr3d_gemm.c +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/tests/tensor/conv/c_code/corr_gemm.c +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/tests/test_breakpoint.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/tests/test_config.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/tests/test_gradient.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/tests/test_ifelse.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/tests/test_printing.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/tests/test_raise_op.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/tests/test_rop.py +0 -0
- {pytensor-2.30.0 → pytensor-2.30.2}/tests/test_updates.py +0 -0
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2025-
|
|
11
|
+
"date": "2025-04-01T22:32:44+0200",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "2.30.
|
|
14
|
+
"full-revisionid": "0f5da80c16d5d053f39204d1a728e70e194bef6c",
|
|
15
|
+
"version": "2.30.2"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -409,12 +409,16 @@ def jax_sample_fn_multinomial(op, node):
|
|
|
409
409
|
sampling_rng = jax.random.split(rng_key, binom_p.shape[0])
|
|
410
410
|
|
|
411
411
|
def _binomial_sample_fn(carry, p_rng):
|
|
412
|
-
|
|
412
|
+
remaining_n, remaining_p = carry
|
|
413
413
|
p, rng = p_rng
|
|
414
|
-
samples =
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
414
|
+
samples = jnp.where(
|
|
415
|
+
remaining_n == 0,
|
|
416
|
+
0,
|
|
417
|
+
jax.random.binomial(rng, remaining_n, p / remaining_p),
|
|
418
|
+
)
|
|
419
|
+
remaining_n -= samples
|
|
420
|
+
remaining_p -= p
|
|
421
|
+
return ((remaining_n, remaining_p), samples)
|
|
418
422
|
|
|
419
423
|
(remain, _), samples = jax.lax.scan(
|
|
420
424
|
_binomial_sample_fn,
|
|
@@ -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,
|
|
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,
|
|
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,
|
|
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,
|
|
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
|
|
1854
|
-
new_index =
|
|
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 =
|
|
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[
|
|
123
|
-
zeros_right = (in2.shape[
|
|
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
|
|
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(
|
|
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(
|
|
2264
|
-
if (shape[i] != PyArray_DIMS(
|
|
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(
|
|
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*)
|
|
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 (
|
|
2212
|
+
return (4,)
|
|
2288
2213
|
|
|
2289
2214
|
|
|
2290
2215
|
advanced_subtensor1 = AdvancedSubtensor1()
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
{pytensor-2.30.0 → pytensor-2.30.2}/doc/library/d3viz/examples/d3viz/css/d3-context-menu.css
RENAMED
|
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
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|