pytensor 3.2.0__tar.gz → 3.2.1__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-3.2.0/pytensor.egg-info → pytensor-3.2.1}/PKG-INFO +1 -1
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/_version.py +3 -3
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/tensor_basic.py +4 -1
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/subtensor.py +29 -59
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/subtensor_lift.py +5 -0
- {pytensor-3.2.0 → pytensor-3.2.1/pytensor.egg-info}/PKG-INFO +1 -1
- {pytensor-3.2.0 → pytensor-3.2.1}/LICENSE.txt +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/MANIFEST.in +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/README.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/.templates/PLACEHOLDER +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/.templates/layout.html +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/.templates/nb-badges.html +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/.templates/rendered_citation.html +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/LICENSE.txt +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/README.md +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/_drafts/benchmark_mlx_v_jax_corrected.ipynb +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/_thumbnails/autodiff/vector_jacobian_product.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/acknowledgement.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/bcast.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/bcast.svg +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/blog.md +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/conf.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/core_development_guide.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/css.inc +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/dev_start_guide.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/environment.yml +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/apply.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/apply.svg +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/apply2.svg +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/creating_a_c_op.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/creating_a_numba_jax_op.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/creating_an_op.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/ctype.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/extending_faq.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/extending_pytensor_solution_1.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/graph_rewriting.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/graphstructures.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/index.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/inplace.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/op.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/other_ops.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/pics/symbolic_graph_opt.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/pics/symbolic_graph_unopt.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/pipeline.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/scan.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/tips.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/type.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/unification_kanren.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/unittest.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/extending/using_params.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/faq.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/gallery/applications/normalizing_flows_in_pytensor.ipynb +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/gallery/applications/tiny_transformer_llm.ipynb +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/gallery/autodiff/vector_jacobian_product.ipynb +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/gallery/introduction/pytensor_intro.ipynb +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/gallery/optimize/root.ipynb +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/gallery/page_footer.md +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/gallery/rewrites/graph_rewrites.ipynb +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/gallery/scan/scan_tutorial.ipynb +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/generate_dtype_tensor_table.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/glossary.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/images/Elman_srnn.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/images/PyTensor.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/images/PyTensor_RGB.svg +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/images/PyTensor_logo.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/images/binder.svg +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/images/blocksparse.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/images/colab.svg +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/images/github.svg +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/images/lstm.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/images/lstm_memorycell.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/images/talk2010.gif +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/images/talk2010.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/index.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/install.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/internal/how_to_release.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/internal/index.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/internal/metadocumentation.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/introduction.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/compile/debugmode.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/compile/function.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/compile/index.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/compile/io.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/compile/mode.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/compile/nanguardmode.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/compile/opfromgraph.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/compile/ops.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/compile/profilemode.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/compile/shared.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/config.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/d3viz/examples/d3viz/css/d3-context-menu.css +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/d3viz/examples/d3viz/css/d3viz.css +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/d3viz/examples/d3viz/js/d3-context-menu.js +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/d3viz/examples/d3viz/js/d3.v3.min.js +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/d3viz/examples/d3viz/js/d3viz.js +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/d3viz/examples/d3viz/js/dagre-d3.min.js +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/d3viz/examples/d3viz/js/graphlib-dot.min.js +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/d3viz/examples/mlp.html +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/d3viz/examples/mlp.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/d3viz/examples/mlp2.html +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/d3viz/examples/mlp2.pdf +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/d3viz/examples/mlp2.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/d3viz/examples/ofg.html +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/d3viz/examples/ofg2.html +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/d3viz/index.ipynb +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/d3viz/index.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/d3viz/index_files/index_10_0.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/d3viz/index_files/index_11_0.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/d3viz/index_files/index_24_0.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/d3viz/index_files/index_25_0.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/graph/features.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/graph/fgraph.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/graph/graph.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/graph/index.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/graph/op.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/graph/replace.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/graph/type.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/graph/utils.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/index.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/misc/pkl_utils.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/printing.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/scalar/index.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/scan.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/sparse/index.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/sparse/sandbox.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/tensor/basic.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/tensor/basic_opt.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/tensor/bcast.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/tensor/bcast.svg +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/tensor/elemwise.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/tensor/extra_ops.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/tensor/fft.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/tensor/functional.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/tensor/index.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/tensor/io.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/tensor/linalg.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/tensor/math_opt.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/tensor/nlinalg.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/tensor/optimize.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/tensor/plot_fft.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/tensor/random.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/tensor/slinalg.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/tensor/utils.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/typed_list.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/xtensor/index.md +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/xtensor/linalg.md +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/xtensor/math.md +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/xtensor/module_functions.md +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/xtensor/random.md +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/xtensor/signal.md +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/library/xtensor/type.md +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/links.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/optimizations.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/pylintrc +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/robots.txt +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/troubleshooting.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/adding.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/adding_solution_1.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/aliasing.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/apply.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/apply.svg +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/bcast.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/broadcasting.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/conditions.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/debug_faq.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/dlogistic.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/examples.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/faq_tutorial.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/gradients.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/index.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/loading_and_saving.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/logistic.gp +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/logistic.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/loop.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/loop_solution_1.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/modes.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/modes_solution_1.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/multi_cores.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/nan_tutorial.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/pics/d3viz.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/pics/logreg_pydotprint_predict.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/pics/logreg_pydotprint_prediction.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/pics/logreg_pydotprint_train.png +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/printing_drawing.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/prng.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/profiling.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/profiling_example.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/profiling_example_out.prof +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/shape_info.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/sparse.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/tutorial/symbolic_graphs.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/doc/user_guide.rst +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pyproject.toml +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/_sparse_lazy.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/assumptions/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/assumptions/alloc.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/assumptions/blockwise.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/assumptions/core.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/assumptions/diagonal.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/assumptions/dimshuffle.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/assumptions/dot.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/assumptions/elemwise.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/assumptions/orthogonal.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/assumptions/permutation.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/assumptions/positive_definite.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/assumptions/reshape.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/assumptions/selection.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/assumptions/shape.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/assumptions/specify.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/assumptions/subtensor.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/assumptions/symmetric.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/assumptions/triangular.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/bin/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/bin/pytensor_cache.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/breakpoint.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/compile/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/compile/aliasing.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/compile/builders.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/compile/compiledir.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/compile/compilelock.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/compile/debug/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/compile/debug/debugmode.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/compile/debug/dump.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/compile/debug/monitormode.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/compile/debug/nanguardmode.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/compile/debug/profiling.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/compile/executor.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/compile/inner_function.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/compile/io.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/compile/maker.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/compile/mode.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/compile/ops.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/compile/rebuild.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/compile/rewriting.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/compile/sharedvalue.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/configdefaults.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/configparser.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/d3viz/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/d3viz/css/d3-context-menu.css +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/d3viz/css/d3viz.css +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/d3viz/d3viz.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/d3viz/formatting.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/d3viz/html/template.html +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/d3viz/js/d3-context-menu.js +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/d3viz/js/d3.v3.min.js +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/d3viz/js/d3viz.js +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/d3viz/js/dagre-d3.min.js +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/d3viz/js/graphlib-dot.min.js +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/gradient.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/graph/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/graph/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/graph/destroyhandler.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/graph/features.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/graph/fg.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/graph/null_type.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/graph/op.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/graph/replace.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/graph/rewriting/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/graph/rewriting/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/graph/rewriting/db.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/graph/rewriting/kanren.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/graph/rewriting/reachability.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/graph/rewriting/unify.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/graph/rewriting/utils.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/graph/traversal.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/graph/type.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/graph/utils.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/ifelse.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/ipython.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/c/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/c/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/c/c_code/lazylinker_c.c +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/c/c_code/pytensor_mod_helper.h +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/c/cmodule.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/c/cutils.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/c/cvm.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/c/exceptions.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/c/interface.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/c/lazylinker_c.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/c/op.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/c/params_type.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/c/type.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/blas.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/blockwise.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/einsum.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/elemwise.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/extra_ops.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/linalg/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/linalg/constructors.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/linalg/decomposition.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/linalg/inverse.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/linalg/products.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/linalg/solvers.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/linalg/summary.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/math.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/pad.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/random.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/scalar.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/scan.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/shape.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/signal/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/signal/conv.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/sort.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/sparse.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/dispatch/subtensor.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/linker.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/jax/ops.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/blas.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/blockwise.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/einsum.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/elemwise.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/extra_ops.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/linalg/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/linalg/decomposition.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/linalg/inverse.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/linalg/products.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/linalg/solvers.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/linalg/summary.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/math.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/pad.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/scalar.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/shape.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/signal/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/signal/conv.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/sort.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/subtensor.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/dispatch/tensor_basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/mlx/linker.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/cache.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/_llvmlite_self_ref.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/_patch_pointer_add.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/blockwise.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/compile_ops.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/cython_support.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/elemwise.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/extra_ops.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/_LAPACK.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/constructors.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/decomposition/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/decomposition/cholesky.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/decomposition/dispatch.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/decomposition/eigen.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/decomposition/lu.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/decomposition/lu_factor.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/decomposition/qr.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/decomposition/qz.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/decomposition/schur.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/decomposition/svd.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/inverse.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/products.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/solvers/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/solvers/cholesky.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/solvers/dispatch.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/solvers/general.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/solvers/hermitian.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/solvers/linear_control.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/solvers/lu_solve.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/solvers/posdef.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/solvers/symmetric.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/solvers/triangular.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/solvers/tridiagonal.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/solvers/utils.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/summary.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/linalg/utils.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/random.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/scalar.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/scan.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/shape.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/signal/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/signal/conv.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/sort.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/sparse/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/sparse/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/sparse/math.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/sparse/variable.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/string_codegen.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/subtensor.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/tensor_basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/typed_list.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/dispatch/vectorize_codegen.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/numba/linker.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/pytorch/dispatch/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/pytorch/dispatch/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/pytorch/dispatch/blas.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/pytorch/dispatch/blockwise.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/pytorch/dispatch/elemwise.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/pytorch/dispatch/extra_ops.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/pytorch/dispatch/linalg/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/pytorch/dispatch/linalg/decomposition.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/pytorch/dispatch/linalg/inverse.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/pytorch/dispatch/linalg/products.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/pytorch/dispatch/linalg/summary.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/pytorch/dispatch/math.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/pytorch/dispatch/scalar.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/pytorch/dispatch/shape.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/pytorch/dispatch/sort.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/pytorch/dispatch/subtensor.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/pytorch/linker.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/utils.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/link/vm.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/misc/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/misc/check_blas.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/misc/check_blas_many.sh +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/misc/check_duplicate_key.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/misc/elemwise_openmp_speedup.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/misc/elemwise_time_test.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/misc/frozendict.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/misc/may_share_memory.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/misc/ordered_set.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/misc/pkl_utils.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/npy_2_compat.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/printing.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/py.typed +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/raise_op.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scalar/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scalar/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scalar/c_code/Faddeeva.cc +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scalar/c_code/Faddeeva.hh +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scalar/c_code/gamma.c +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scalar/c_code/incbet.c +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scalar/loop.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scalar/math.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scalar/sharedvar.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scan/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scan/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scan/checkpoints.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scan/op.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scan/rewriting/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scan/rewriting/db.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scan/rewriting/inner_graph.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scan/rewriting/inplace.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scan/rewriting/io.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scan/rewriting/merge.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scan/rewriting/push_out.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scan/rewriting/trace.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scan/rewriting/utils.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scan/scan_perform.pyx +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scan/scan_perform_ext.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scan/utils.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/scan/views.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/sparse/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/sparse/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/sparse/linalg.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/sparse/math.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/sparse/rewriting.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/sparse/sharedvar.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/sparse/type.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/sparse/utils.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/sparse/variable.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/blas/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/blas/_core.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/blas/batched.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/blas/blas_c.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/blas/c_code/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/blas/c_code/alt_blas_common.h +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/blas/c_code/alt_blas_template.c +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/blas/c_code/blas_headers.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/blas/c_code/codegen.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/blas/gemm.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/blas/gemv.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/blas/ger.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/blockwise.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/einsum.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/elemwise.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/elemwise_cgen.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/exceptions.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/extra_ops.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/fft.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/fourier.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/functional.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/interpolate.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/_lazy.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/constructors.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/decomposition/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/decomposition/cholesky.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/decomposition/eigen.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/decomposition/lu.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/decomposition/qr.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/decomposition/schur.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/decomposition/svd.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/dtype_utils.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/inverse.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/products.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/solvers/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/solvers/core.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/solvers/general.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/solvers/linear_control.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/solvers/lstsq.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/solvers/psd.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/solvers/triangular.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/solvers/tridiagonal.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/linalg/summary.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/math.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/nlinalg.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/optimize.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/pad.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/random/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/random/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/random/op.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/random/rewriting/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/random/rewriting/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/random/rewriting/jax.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/random/rewriting/numba.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/random/type.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/random/utils.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/random/variable.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/reshape.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/assumptions.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/blas.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/blas_c.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/blockwise.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/einsum.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/elemwise.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/extra_ops.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/fused_elemwise.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/jax.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/linalg/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/linalg/decomposition.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/linalg/inverse.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/linalg/products.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/linalg/solvers.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/linalg/summary.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/linalg/utils.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/math.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/numba.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/ofg.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/optimize.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/reshape.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/shape.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/special.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/rewriting/uncanonicalize.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/shape.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/sharedvar.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/signal/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/signal/conv.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/slinalg.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/sort.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/special.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/subtensor.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/symbolic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/type.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/type_other.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/utils.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/var.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/variable.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/tensor/xlogx.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/typed_list/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/typed_list/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/typed_list/rewriting.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/typed_list/type.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/utils.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/indexing.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/linalg.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/math.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/random/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/random/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/random/type.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/random/variable.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/reduction.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/rewriting/__init__.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/rewriting/basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/rewriting/indexing.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/rewriting/math.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/rewriting/reduction.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/rewriting/shape.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/rewriting/utils.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/rewriting/vectorization.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/shape.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/signal.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/type.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor/xtensor/vectorization.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor.egg-info/SOURCES.txt +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor.egg-info/dependency_links.txt +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor.egg-info/entry_points.txt +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor.egg-info/requires.txt +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/pytensor.egg-info/top_level.txt +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/scripts/mypy-failing.txt +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/scripts/slowest_tests/update-slowest-times-issue.sh +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/setup.cfg +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/setup.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/tests/link/c/c_code/test_cenum.h +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/tests/link/c/c_code/test_quadratic_function.c +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/tests/test_basic.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/tests/test_breakpoint.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/tests/test_config.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/tests/test_gradient.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/tests/test_ifelse.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/tests/test_printing.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/tests/test_raise_op.py +0 -0
- {pytensor-3.2.0 → pytensor-3.2.1}/tests/test_rop.py +0 -0
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "2026-07-
|
|
11
|
+
"date": "2026-07-17T16:59:23+0200",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "3.2.
|
|
14
|
+
"full-revisionid": "491faffa05d1e92419dba8e02b245eb2b6227a60",
|
|
15
|
+
"version": "3.2.1"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -71,7 +71,10 @@ def jax_funcify_ARange(op, node, **kwargs):
|
|
|
71
71
|
case (Subtensor(), shape_var, *_) if isinstance(shape_var.owner_op, Shape):
|
|
72
72
|
constant_args.append(None)
|
|
73
73
|
case _ if isinstance(arg, Constant):
|
|
74
|
-
|
|
74
|
+
# Cast to the Op's dtype: PyTensor types integer literals (e.g. 0/1 arange
|
|
75
|
+
# start/step) as int8, and jnp.arange bounds-checks stop against the argument dtype,
|
|
76
|
+
# overflowing for stop > 127.
|
|
77
|
+
constant_args.append(np.asarray(arg.value, op.dtype))
|
|
75
78
|
case _:
|
|
76
79
|
# TODO: This might be failing without need (e.g., if arg = shape(x)[-1] + 1)!
|
|
77
80
|
raise NotImplementedError(ARANGE_CONCRETE_VALUE_ERROR)
|
|
@@ -76,7 +76,6 @@ from pytensor.tensor.subtensor import (
|
|
|
76
76
|
_is_provably_non_negative,
|
|
77
77
|
_is_provably_positive,
|
|
78
78
|
_non_consecutive_adv_indexing,
|
|
79
|
-
advanced_inc_subtensor,
|
|
80
79
|
as_index_literal,
|
|
81
80
|
flatten_index_variables,
|
|
82
81
|
get_canonical_form_slice,
|
|
@@ -1104,11 +1103,13 @@ def local_useless_inc_subtensor(fgraph, node):
|
|
|
1104
1103
|
@register_specialize
|
|
1105
1104
|
@node_rewriter([AdvancedIncSubtensor])
|
|
1106
1105
|
def local_set_to_inc_subtensor(fgraph, node):
|
|
1107
|
-
r"""
|
|
1108
|
-
AdvancedIncSubtensor(x, x[ilist]+other, ilist, set_instead_of_inc=True) ->
|
|
1109
|
-
AdvancedIncSubtensor(x, other, ilist, set_instead_of_inc=False)
|
|
1106
|
+
r"""Set of a read at the same indices: ``x[idx].set(x[idx] + other)``.
|
|
1110
1107
|
|
|
1111
|
-
|
|
1108
|
+
.. code::
|
|
1109
|
+
|
|
1110
|
+
x[idx].set(x[idx] + other) -> x[idx].inc(other)
|
|
1111
|
+
|
|
1112
|
+
Only valid when ``idx`` is duplicate-free: a dense set is last-wins while an
|
|
1112
1113
|
inc accumulates, so duplicate indices would over-count.
|
|
1113
1114
|
|
|
1114
1115
|
TODO FIXME: Why doesn't this apply to all `*IncSubtensor*` `Op`\s? If it
|
|
@@ -1136,14 +1137,30 @@ def local_set_to_inc_subtensor(fgraph, node):
|
|
|
1136
1137
|
other = addn.inputs[0]
|
|
1137
1138
|
else:
|
|
1138
1139
|
return
|
|
1139
|
-
|
|
1140
|
+
# The read has to gather exactly the positions the write stores to: same base,
|
|
1141
|
+
# same axes, same indices. `idx_list` must be compared too -- it is what pins
|
|
1142
|
+
# the indices to their axes, so without it a read of ``x[:, i]`` would match a
|
|
1143
|
+
# write to ``x[i]``.
|
|
1144
|
+
if (
|
|
1145
|
+
subn.inputs[0] != node.inputs[0]
|
|
1146
|
+
or subn.op.idx_list != node.op.idx_list
|
|
1147
|
+
or subn.inputs[1:] != node.inputs[2:]
|
|
1148
|
+
):
|
|
1140
1149
|
return
|
|
1141
|
-
# set->inc is only valid when
|
|
1142
|
-
# is last-wins at repeated positions, while
|
|
1143
|
-
# contributions of every occurrence and
|
|
1144
|
-
|
|
1150
|
+
# set->inc is only valid when the written positions are duplicate-free:
|
|
1151
|
+
# ``set(x[idx] + other)`` is last-wins at repeated positions, while
|
|
1152
|
+
# ``inc(other)`` would accumulate the contributions of every occurrence and
|
|
1153
|
+
# over-count them.
|
|
1154
|
+
indices = indices_from_subtensor(node.inputs[2:], node.op.idx_list)
|
|
1155
|
+
if not _advanced_indices_jointly_unique(indices, fgraph):
|
|
1145
1156
|
return
|
|
1146
|
-
|
|
1157
|
+
new_op = type(node.op)(
|
|
1158
|
+
idx_list=node.op.idx_list,
|
|
1159
|
+
inplace=node.op.inplace,
|
|
1160
|
+
set_instead_of_inc=False,
|
|
1161
|
+
ignore_duplicates=node.op.ignore_duplicates,
|
|
1162
|
+
)
|
|
1163
|
+
ret = new_op(node.inputs[0], other, *node.inputs[2:])
|
|
1147
1164
|
|
|
1148
1165
|
copy_stack_trace(node.outputs, ret)
|
|
1149
1166
|
|
|
@@ -1341,52 +1358,6 @@ def local_convert_negative_indices(fgraph, node):
|
|
|
1341
1358
|
return [new_subtensor]
|
|
1342
1359
|
|
|
1343
1360
|
|
|
1344
|
-
@register_canonicalize
|
|
1345
|
-
@register_specialize
|
|
1346
|
-
@node_rewriter([AdvancedSubtensor])
|
|
1347
|
-
def local_useless_AdvancedSubtensor1(fgraph, node):
|
|
1348
|
-
"""Remove a leading-axis vector take that selects the full input.
|
|
1349
|
-
|
|
1350
|
-
The full input is taken when the index is equivalent to
|
|
1351
|
-
``arange(0, input.shape[0], 1)`` using either an explicit list/vector or
|
|
1352
|
-
the `ARange` `Op`.
|
|
1353
|
-
|
|
1354
|
-
"""
|
|
1355
|
-
if node.op.idx_list != (0,):
|
|
1356
|
-
# Only the leading integer-vector take (x[ilist])
|
|
1357
|
-
return
|
|
1358
|
-
|
|
1359
|
-
# This optimization needs ShapeOpt and fgraph.shape_feature
|
|
1360
|
-
if not hasattr(fgraph, "shape_feature"):
|
|
1361
|
-
return
|
|
1362
|
-
|
|
1363
|
-
shape_feature = fgraph.shape_feature
|
|
1364
|
-
|
|
1365
|
-
# get length of the indexed tensor along the first axis
|
|
1366
|
-
try:
|
|
1367
|
-
length = get_scalar_constant_value(
|
|
1368
|
-
shape_feature.get_shape(node.inputs[0], 0), only_process_constants=True
|
|
1369
|
-
)
|
|
1370
|
-
except NotScalarConstantError:
|
|
1371
|
-
return False
|
|
1372
|
-
|
|
1373
|
-
# get index (which must be a vector by definition)
|
|
1374
|
-
idx = node.inputs[1]
|
|
1375
|
-
|
|
1376
|
-
# `idx` must be equivalent to [0,1,...,shape[0] - 1] to qualify for
|
|
1377
|
-
# this optimization
|
|
1378
|
-
if isinstance(idx, Constant):
|
|
1379
|
-
idx = idx.value
|
|
1380
|
-
if len(idx) != length:
|
|
1381
|
-
return False
|
|
1382
|
-
if np.any(idx != np.arange(length)):
|
|
1383
|
-
return False
|
|
1384
|
-
else:
|
|
1385
|
-
return False
|
|
1386
|
-
|
|
1387
|
-
return [node.inputs[0]]
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
1361
|
def _arange_index_to_slice(idx):
|
|
1391
1362
|
"""Return the Python ``slice`` equivalent to ``idx`` if it is a constant or
|
|
1392
1363
|
symbolic arange with non-negative offset, else ``None``.
|
|
@@ -2343,8 +2314,7 @@ def local_write_of_write_same_indices(fgraph, node):
|
|
|
2343
2314
|
base, a, *inner_idx_vars = inner_x.owner.inputs
|
|
2344
2315
|
|
|
2345
2316
|
# Same indices: idx_list (slice specs) must match and all index
|
|
2346
|
-
# variables must be identical.
|
|
2347
|
-
# class-level idx_list = (0,) so the comparison is trivially true.
|
|
2317
|
+
# variables must be identical.
|
|
2348
2318
|
if node.op.idx_list != inner_x.owner.op.idx_list:
|
|
2349
2319
|
return
|
|
2350
2320
|
if not all(o is i for o, i in zip(outer_idx_vars, inner_idx_vars, strict=True)):
|
|
@@ -1062,6 +1062,11 @@ def local_subtensor_make_vector(fgraph, node):
|
|
|
1062
1062
|
except NotScalarConstantError:
|
|
1063
1063
|
pass
|
|
1064
1064
|
elif idx.ndim == 1 and isinstance(idx, Constant):
|
|
1065
|
+
if idx.type.dtype == "bool":
|
|
1066
|
+
# A boolean mask selects the entries it is True at, which is not
|
|
1067
|
+
# what mapping it to positions below would read it as. Leave it
|
|
1068
|
+
# for `bool_idx_to_nonzero` to turn into integer positions.
|
|
1069
|
+
return False
|
|
1065
1070
|
values = list(map(int, list(idx.value)))
|
|
1066
1071
|
if len(values) == 1:
|
|
1067
1072
|
ret = expand_dims(x.owner.inputs[values[0]], axis=0)
|
|
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-3.2.0 → pytensor-3.2.1}/doc/gallery/applications/normalizing_flows_in_pytensor.ipynb
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
|
|
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
|
|
File without changes
|
|
File without changes
|