pytensor 2.36.1__tar.gz → 2.36.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.36.1/pytensor.egg-info → pytensor-2.36.2}/PKG-INFO +1 -1
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/_version.py +3 -3
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/compile/builders.py +1 -1
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/graph/fg.py +6 -2
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/basic.py +1 -1
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/compile_ops.py +26 -19
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/random.py +30 -15
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/subtensor.py +0 -1
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/scalar/basic.py +2 -90
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/scalar/loop.py +1 -1
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/scan/op.py +1 -1
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/optimize.py +1 -1
- {pytensor-2.36.1 → pytensor-2.36.2/pytensor.egg-info}/PKG-INFO +1 -1
- {pytensor-2.36.1 → pytensor-2.36.2}/LICENSE.txt +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/MANIFEST.in +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/README.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/.templates/PLACEHOLDER +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/.templates/layout.html +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/.templates/nb-badges.html +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/.templates/rendered_citation.html +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/LICENSE.txt +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/README.md +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/_drafts/benchmark_mlx_v_jax_corrected.ipynb +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/_thumbnails/autodiff/vector_jacobian_product.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/acknowledgement.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/bcast.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/bcast.svg +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/blog.md +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/conf.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/core_development_guide.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/css.inc +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/dev_start_guide.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/environment.yml +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/apply.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/apply.svg +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/apply2.svg +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/creating_a_c_op.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/creating_a_numba_jax_op.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/creating_an_op.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/ctype.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/extending_faq.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/extending_pytensor_solution_1.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/graph_rewriting.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/graphstructures.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/index.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/inplace.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/op.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/other_ops.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/pics/symbolic_graph_opt.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/pics/symbolic_graph_unopt.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/pipeline.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/scan.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/tips.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/type.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/unittest.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/extending/using_params.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/faq.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/gallery/applications/normalizing_flows_in_pytensor.ipynb +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/gallery/autodiff/vector_jacobian_product.ipynb +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/gallery/introduction/pytensor_intro.ipynb +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/gallery/optimize/root.ipynb +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/gallery/page_footer.md +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/gallery/rewrites/graph_rewrites.ipynb +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/gallery/scan/scan_tutorial.ipynb +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/generate_dtype_tensor_table.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/glossary.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/images/Elman_srnn.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/images/PyTensor.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/images/PyTensor_RGB.svg +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/images/PyTensor_logo.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/images/binder.svg +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/images/blocksparse.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/images/colab.svg +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/images/github.svg +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/images/lstm.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/images/lstm_memorycell.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/images/talk2010.gif +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/images/talk2010.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/index.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/install.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/internal/how_to_release.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/internal/index.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/internal/metadocumentation.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/introduction.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/compile/debugmode.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/compile/function.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/compile/index.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/compile/io.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/compile/mode.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/compile/nanguardmode.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/compile/opfromgraph.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/compile/ops.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/compile/profilemode.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/compile/shared.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/config.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/d3viz/examples/d3viz/css/d3-context-menu.css +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/d3viz/examples/d3viz/css/d3viz.css +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/d3viz/examples/d3viz/js/d3-context-menu.js +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/d3viz/examples/d3viz/js/d3.v3.min.js +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/d3viz/examples/d3viz/js/d3viz.js +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/d3viz/examples/d3viz/js/dagre-d3.min.js +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/d3viz/examples/d3viz/js/graphlib-dot.min.js +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/d3viz/examples/mlp.html +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/d3viz/examples/mlp.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/d3viz/examples/mlp2.html +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/d3viz/examples/mlp2.pdf +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/d3viz/examples/mlp2.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/d3viz/examples/ofg.html +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/d3viz/examples/ofg2.html +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/d3viz/index.ipynb +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/d3viz/index.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/d3viz/index_files/index_10_0.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/d3viz/index_files/index_11_0.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/d3viz/index_files/index_24_0.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/d3viz/index_files/index_25_0.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/graph/features.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/graph/fgraph.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/graph/graph.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/graph/index.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/graph/op.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/graph/replace.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/graph/type.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/graph/utils.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/index.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/misc/pkl_utils.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/printing.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/scalar/index.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/scan.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/sparse/index.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/sparse/sandbox.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/tensor/basic.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/tensor/basic_opt.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/tensor/bcast.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/tensor/bcast.svg +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/tensor/conv.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/tensor/elemwise.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/tensor/extra_ops.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/tensor/fft.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/tensor/functional.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/tensor/index.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/tensor/io.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/tensor/math_opt.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/tensor/nlinalg.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/tensor/optimize.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/tensor/plot_fft.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/tensor/random/distributions.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/tensor/random/index.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/tensor/slinalg.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/tensor/utils.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/typed_list.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/xtensor/index.md +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/xtensor/linalg.md +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/xtensor/math.md +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/xtensor/module_functions.md +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/xtensor/random.md +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/library/xtensor/type.md +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/links.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/optimizations.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/pylintrc +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/robots.txt +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/troubleshooting.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/adding.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/adding_solution_1.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/aliasing.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/apply.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/apply.svg +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/bcast.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/broadcasting.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/conditions.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/debug_faq.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/dlogistic.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/examples.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/faq_tutorial.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/gradients.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/index.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/loading_and_saving.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/logistic.gp +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/logistic.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/loop.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/loop_solution_1.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/modes.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/modes_solution_1.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/multi_cores.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/nan_tutorial.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/pics/d3viz.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/pics/logreg_pydotprint_predict.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/pics/logreg_pydotprint_prediction.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/pics/logreg_pydotprint_train.png +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/printing_drawing.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/prng.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/profiling.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/profiling_example.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/profiling_example_out.prof +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/shape_info.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/sparse.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/tutorial/symbolic_graphs.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/doc/user_guide.rst +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pyproject.toml +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/bin/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/bin/pytensor_cache.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/breakpoint.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/compile/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/compile/compiledir.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/compile/compilelock.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/compile/debugmode.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/compile/function/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/compile/function/pfunc.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/compile/function/types.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/compile/io.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/compile/mode.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/compile/monitormode.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/compile/nanguardmode.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/compile/ops.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/compile/profiling.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/compile/sharedvalue.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/configdefaults.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/configparser.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/d3viz/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/d3viz/css/d3-context-menu.css +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/d3viz/css/d3viz.css +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/d3viz/d3viz.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/d3viz/formatting.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/d3viz/html/template.html +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/d3viz/js/d3-context-menu.js +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/d3viz/js/d3.v3.min.js +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/d3viz/js/d3viz.js +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/d3viz/js/dagre-d3.min.js +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/d3viz/js/graphlib-dot.min.js +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/gradient.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/graph/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/graph/basic.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/graph/destroyhandler.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/graph/features.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/graph/null_type.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/graph/op.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/graph/replace.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/graph/rewriting/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/graph/rewriting/basic.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/graph/rewriting/db.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/graph/rewriting/kanren.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/graph/rewriting/unify.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/graph/rewriting/utils.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/graph/traversal.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/graph/type.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/graph/utils.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/ifelse.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/ipython.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/basic.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/c/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/c/basic.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/c/c_code/lazylinker_c.c +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/c/c_code/pytensor_mod_helper.h +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/c/cmodule.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/c/cutils.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/c/cvm.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/c/exceptions.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/c/interface.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/c/lazylinker_c.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/c/op.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/c/params_type.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/c/type.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/basic.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/blas.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/blockwise.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/einsum.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/elemwise.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/extra_ops.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/math.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/nlinalg.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/pad.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/random.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/scalar.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/scan.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/shape.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/signal/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/signal/conv.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/slinalg.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/sort.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/sparse.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/subtensor.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/dispatch/tensor_basic.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/linker.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/jax/ops.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/mlx/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/mlx/dispatch/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/mlx/dispatch/basic.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/mlx/dispatch/blockwise.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/mlx/dispatch/core.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/mlx/dispatch/elemwise.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/mlx/dispatch/extra_ops.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/mlx/dispatch/math.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/mlx/dispatch/nlinalg.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/mlx/dispatch/shape.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/mlx/dispatch/signal/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/mlx/dispatch/signal/conv.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/mlx/dispatch/slinalg.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/mlx/dispatch/sort.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/mlx/dispatch/subtensor.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/mlx/linker.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/cache.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/blockwise.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/cython_support.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/elemwise.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/extra_ops.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/linalg/_LAPACK.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/linalg/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/linalg/decomposition/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/linalg/decomposition/cholesky.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/linalg/decomposition/lu.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/linalg/decomposition/lu_factor.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/linalg/decomposition/qr.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/linalg/solve/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/linalg/solve/cholesky.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/linalg/solve/general.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/linalg/solve/lu_solve.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/linalg/solve/norm.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/linalg/solve/posdef.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/linalg/solve/symmetric.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/linalg/solve/triangular.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/linalg/solve/tridiagonal.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/linalg/solve/utils.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/linalg/utils.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/nlinalg.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/scalar.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/scan.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/shape.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/signal/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/signal/conv.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/slinalg.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/sort.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/sparse.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/tensor_basic.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/typed_list.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/dispatch/vectorize_codegen.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/numba/linker.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/pytorch/dispatch/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/pytorch/dispatch/basic.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/pytorch/dispatch/blas.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/pytorch/dispatch/blockwise.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/pytorch/dispatch/elemwise.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/pytorch/dispatch/extra_ops.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/pytorch/dispatch/math.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/pytorch/dispatch/nlinalg.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/pytorch/dispatch/scalar.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/pytorch/dispatch/shape.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/pytorch/dispatch/slinalg.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/pytorch/dispatch/sort.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/pytorch/dispatch/subtensor.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/pytorch/linker.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/utils.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/link/vm.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/misc/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/misc/check_blas.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/misc/check_blas_many.sh +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/misc/check_duplicate_key.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/misc/elemwise_openmp_speedup.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/misc/elemwise_time_test.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/misc/frozendict.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/misc/may_share_memory.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/misc/ordered_set.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/misc/pkl_utils.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/npy_2_compat.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/printing.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/py.typed +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/raise_op.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/scalar/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/scalar/c_code/Faddeeva.cc +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/scalar/c_code/Faddeeva.hh +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/scalar/c_code/gamma.c +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/scalar/c_code/incbet.c +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/scalar/math.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/scalar/sharedvar.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/scan/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/scan/basic.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/scan/checkpoints.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/scan/rewriting.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/scan/scan_perform.pyx +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/scan/scan_perform_ext.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/scan/utils.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/scan/views.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/sparse/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/sparse/basic.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/sparse/linalg.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/sparse/math.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/sparse/rewriting.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/sparse/sharedvar.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/sparse/type.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/sparse/utils.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/sparse/variable.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/_linalg/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/_linalg/solve/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/_linalg/solve/rewriting.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/_linalg/solve/tridiagonal.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/basic.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/blas.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/blas_c.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/blas_headers.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/blockwise.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/c_code/alt_blas_common.h +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/c_code/alt_blas_template.c +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/c_code/dimshuffle.c +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/conv/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/conv/abstract_conv.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/einsum.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/elemwise.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/elemwise_cgen.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/exceptions.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/extra_ops.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/fft.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/fourier.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/functional.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/interpolate.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/linalg.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/math.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/nlinalg.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/pad.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/random/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/random/basic.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/random/op.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/random/rewriting/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/random/rewriting/basic.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/random/rewriting/jax.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/random/rewriting/numba.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/random/type.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/random/utils.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/random/var.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/reshape.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/rewriting/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/rewriting/basic.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/rewriting/blas.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/rewriting/blas_c.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/rewriting/blockwise.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/rewriting/einsum.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/rewriting/elemwise.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/rewriting/extra_ops.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/rewriting/jax.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/rewriting/linalg.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/rewriting/math.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/rewriting/numba.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/rewriting/ofg.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/rewriting/reshape.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/rewriting/shape.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/rewriting/special.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/rewriting/subtensor.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/rewriting/subtensor_lift.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/rewriting/uncanonicalize.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/shape.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/sharedvar.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/signal/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/signal/conv.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/slinalg.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/sort.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/special.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/subtensor.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/type.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/type_other.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/utils.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/var.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/variable.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/tensor/xlogx.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/typed_list/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/typed_list/basic.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/typed_list/rewriting.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/typed_list/type.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/updates.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/utils.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/xtensor/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/xtensor/basic.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/xtensor/indexing.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/xtensor/linalg.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/xtensor/math.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/xtensor/random.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/xtensor/reduction.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/xtensor/rewriting/__init__.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/xtensor/rewriting/basic.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/xtensor/rewriting/indexing.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/xtensor/rewriting/math.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/xtensor/rewriting/reduction.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/xtensor/rewriting/shape.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/xtensor/rewriting/utils.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/xtensor/rewriting/vectorization.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/xtensor/shape.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/xtensor/type.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor/xtensor/vectorization.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor.egg-info/SOURCES.txt +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor.egg-info/dependency_links.txt +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor.egg-info/entry_points.txt +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor.egg-info/requires.txt +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/pytensor.egg-info/top_level.txt +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/scripts/mypy-failing.txt +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/scripts/slowest_tests/update-slowest-times-issue.sh +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/setup.cfg +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/setup.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/tests/link/c/c_code/test_cenum.h +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/tests/link/c/c_code/test_quadratic_function.c +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/tests/tensor/conv/c_code/corr3d_gemm.c +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/tests/tensor/conv/c_code/corr_gemm.c +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/tests/test_breakpoint.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/tests/test_config.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/tests/test_gradient.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/tests/test_ifelse.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/tests/test_printing.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/tests/test_raise_op.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/tests/test_rop.py +0 -0
- {pytensor-2.36.1 → pytensor-2.36.2}/tests/test_updates.py +0 -0
|
@@ -8,11 +8,11 @@ import json
|
|
|
8
8
|
|
|
9
9
|
version_json = '''
|
|
10
10
|
{
|
|
11
|
-
"date": "
|
|
11
|
+
"date": "2026-01-02T17:20:52+0100",
|
|
12
12
|
"dirty": false,
|
|
13
13
|
"error": null,
|
|
14
|
-
"full-revisionid": "
|
|
15
|
-
"version": "2.36.
|
|
14
|
+
"full-revisionid": "0f864a33958e68e5110d043c4b5ef549cd1d6074",
|
|
15
|
+
"version": "2.36.2"
|
|
16
16
|
}
|
|
17
17
|
''' # END VERSION_JSON
|
|
18
18
|
|
|
@@ -838,9 +838,13 @@ class FunctionGraph(MetaObject):
|
|
|
838
838
|
def __repr__(self):
|
|
839
839
|
return f"FunctionGraph({', '.join(graph_as_string(self.inputs, self.outputs))})"
|
|
840
840
|
|
|
841
|
-
def clone(
|
|
841
|
+
def clone(
|
|
842
|
+
self, check_integrity=True, clone_inner_graphs: bool = False
|
|
843
|
+
) -> "FunctionGraph":
|
|
842
844
|
"""Clone the graph."""
|
|
843
|
-
return self.clone_get_equiv(
|
|
845
|
+
return self.clone_get_equiv(
|
|
846
|
+
check_integrity, clone_inner_graphs=clone_inner_graphs
|
|
847
|
+
)[0]
|
|
844
848
|
|
|
845
849
|
def clone_get_equiv(
|
|
846
850
|
self, check_integrity: bool = True, attach_feature: bool = True, **kwargs
|
|
@@ -478,7 +478,7 @@ def numba_funcify_ensure_cache(op, *args, **kwargs) -> tuple[Callable, str | Non
|
|
|
478
478
|
src=f"def {op_name}(*args): return jitable_func(*args)",
|
|
479
479
|
function_name=op_name,
|
|
480
480
|
global_env=globals() | {"jitable_func": jitable_func},
|
|
481
|
-
cache_key=cache_key,
|
|
481
|
+
cache_key=f"{cache_key}_fastmath{int(config.numba__fastmath)}",
|
|
482
482
|
)
|
|
483
483
|
return numba_njit(cached_func, cache=True), cache_key
|
|
484
484
|
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
from copy import deepcopy
|
|
2
2
|
from hashlib import sha256
|
|
3
|
+
from textwrap import dedent
|
|
3
4
|
|
|
4
5
|
import numba
|
|
5
6
|
import numpy as np
|
|
@@ -10,6 +11,7 @@ from pytensor.compile.io import In, Out
|
|
|
10
11
|
from pytensor.compile.mode import NUMBA
|
|
11
12
|
from pytensor.compile.ops import DeepCopyOp, TypeCastingOp
|
|
12
13
|
from pytensor.ifelse import IfElse
|
|
14
|
+
from pytensor.link.numba.cache import compile_numba_function_src
|
|
13
15
|
from pytensor.link.numba.dispatch import basic as numba_basic
|
|
14
16
|
from pytensor.link.numba.dispatch.basic import (
|
|
15
17
|
numba_funcify_and_cache_key,
|
|
@@ -106,30 +108,35 @@ def numba_funcify_DeepCopyOp(op, node, **kwargs):
|
|
|
106
108
|
@register_funcify_default_op_cache_key(IfElse)
|
|
107
109
|
def numba_funcify_IfElse(op, **kwargs):
|
|
108
110
|
n_outs = op.n_outs
|
|
111
|
+
as_view = op.as_view
|
|
109
112
|
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
def ifelse(cond, *args):
|
|
114
|
-
if cond:
|
|
115
|
-
res = args[:n_outs]
|
|
116
|
-
else:
|
|
117
|
-
res = args[n_outs:]
|
|
118
|
-
|
|
119
|
-
return res
|
|
113
|
+
true_names = [f"t{i}" for i in range(n_outs)]
|
|
114
|
+
false_names = [f"f{i}" for i in range(n_outs)]
|
|
115
|
+
arg_list = ", ".join((*true_names, *false_names))
|
|
120
116
|
|
|
117
|
+
if as_view:
|
|
118
|
+
true_returns = ", ".join(true_names)
|
|
121
119
|
else:
|
|
120
|
+
true_returns = ", ".join(f"{name}.copy()" for name in true_names)
|
|
121
|
+
# We only ever view (alias) variables from the true branch. False branch variables must always be copied.
|
|
122
|
+
false_returns = ", ".join(f"{name}.copy()" for name in false_names)
|
|
123
|
+
|
|
124
|
+
func_src = dedent(
|
|
125
|
+
f"""
|
|
126
|
+
def ifelse(cond, {arg_list}):
|
|
127
|
+
if cond:
|
|
128
|
+
return {true_returns}
|
|
129
|
+
else:
|
|
130
|
+
return {false_returns}
|
|
131
|
+
"""
|
|
132
|
+
)
|
|
122
133
|
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
res = args[:n_outs]
|
|
127
|
-
else:
|
|
128
|
-
res = args[n_outs:]
|
|
129
|
-
|
|
130
|
-
return res[0]
|
|
134
|
+
ifelse_func = numba_basic.numba_njit(
|
|
135
|
+
compile_numba_function_src(func_src, "ifelse", globals())
|
|
136
|
+
)
|
|
131
137
|
|
|
132
|
-
|
|
138
|
+
cache_version = 1
|
|
139
|
+
return ifelse_func, cache_version
|
|
133
140
|
|
|
134
141
|
|
|
135
142
|
@register_funcify_and_cache_key(CheckAndRaise)
|
|
@@ -216,14 +216,16 @@ def core_MvNormalRV(op, node):
|
|
|
216
216
|
|
|
217
217
|
@numba_core_rv_funcify.register(ptr.DirichletRV)
|
|
218
218
|
def core_DirichletRV(op, node):
|
|
219
|
+
dtype = op.dtype
|
|
220
|
+
|
|
219
221
|
@numba_basic.numba_njit
|
|
220
222
|
def random_fn(rng, alpha):
|
|
221
|
-
y = np.empty_like(alpha)
|
|
223
|
+
y = np.empty_like(alpha, dtype=dtype)
|
|
222
224
|
for i in range(len(alpha)):
|
|
223
225
|
y[i] = rng.gamma(alpha[i], 1.0)
|
|
224
226
|
return y / y.sum()
|
|
225
227
|
|
|
226
|
-
return random_fn
|
|
228
|
+
return random_fn, 1
|
|
227
229
|
|
|
228
230
|
|
|
229
231
|
@numba_core_rv_funcify.register(ptr.GumbelRV)
|
|
@@ -410,7 +412,7 @@ def numba_funcify_RandomVariable(op: RandomVariableWithCoreShape, node, **kwargs
|
|
|
410
412
|
rv_op: RandomVariable = rv_node.op
|
|
411
413
|
|
|
412
414
|
try:
|
|
413
|
-
|
|
415
|
+
core_rv_fn_and_cache_key = numba_core_rv_funcify(rv_op, rv_node)
|
|
414
416
|
except NotImplementedError:
|
|
415
417
|
py_impl = generate_fallback_impl(rv_op, node=rv_node, **kwargs)
|
|
416
418
|
|
|
@@ -420,6 +422,16 @@ def numba_funcify_RandomVariable(op: RandomVariableWithCoreShape, node, **kwargs
|
|
|
420
422
|
|
|
421
423
|
return fallback_rv, None
|
|
422
424
|
|
|
425
|
+
match core_rv_fn_and_cache_key:
|
|
426
|
+
case (core_rv_fn, (int() | None) as core_cache_key):
|
|
427
|
+
pass
|
|
428
|
+
case (_core_rv_fn, invalid_core_cache_key):
|
|
429
|
+
raise ValueError(
|
|
430
|
+
f"Invalid core_cache_key returned from numba_core_rv_funcify: {invalid_core_cache_key}. Must be int or None."
|
|
431
|
+
)
|
|
432
|
+
case core_rv_fn:
|
|
433
|
+
core_cache_key = "__None__"
|
|
434
|
+
|
|
423
435
|
size = rv_op.size_param(rv_node)
|
|
424
436
|
dist_params = rv_op.dist_params(rv_node)
|
|
425
437
|
size_len = None if isinstance(size.type, NoneTypeT) else get_vector_length(size)
|
|
@@ -469,16 +481,19 @@ def numba_funcify_RandomVariable(op: RandomVariableWithCoreShape, node, **kwargs
|
|
|
469
481
|
|
|
470
482
|
return impl
|
|
471
483
|
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
type
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
+
if core_cache_key is None:
|
|
485
|
+
# If the core RV can't be cached, then the whole RV can't be cached
|
|
486
|
+
random_rv_key = None # type: ignore[unreachable]
|
|
487
|
+
else:
|
|
488
|
+
random_rv_key_contents = (
|
|
489
|
+
type(op),
|
|
490
|
+
type(rv_op),
|
|
491
|
+
tuple(rv_op._props_dict().items()), # type: ignore[attr-defined]
|
|
492
|
+
size_len,
|
|
493
|
+
core_shape_len,
|
|
494
|
+
input_bc_patterns,
|
|
495
|
+
output_bc_patterns,
|
|
496
|
+
core_cache_key,
|
|
497
|
+
)
|
|
498
|
+
random_rv_key = sha256(str(random_rv_key_contents).encode()).hexdigest()
|
|
484
499
|
return random, random_rv_key
|
|
@@ -4300,14 +4300,8 @@ class Composite(ScalarInnerGraphOp):
|
|
|
4300
4300
|
self._fgraph = fgraph
|
|
4301
4301
|
return self._fgraph
|
|
4302
4302
|
|
|
4303
|
-
def clone_float32(self):
|
|
4304
|
-
# This will not modify the fgraph or the nodes
|
|
4305
|
-
new_ins, new_outs = composite_f32.apply(self.fgraph)
|
|
4306
|
-
return Composite(new_ins, new_outs)
|
|
4307
|
-
|
|
4308
4303
|
def clone(self):
|
|
4309
|
-
|
|
4310
|
-
return Composite(new_ins, new_outs)
|
|
4304
|
+
return self.__class__(self.fgraph.inputs, self.fgraph.outputs)
|
|
4311
4305
|
|
|
4312
4306
|
def output_types(self, input_types):
|
|
4313
4307
|
if tuple(input_types) != self.inputs_type:
|
|
@@ -4423,86 +4417,4 @@ class Composite(ScalarInnerGraphOp):
|
|
|
4423
4417
|
return self.c_code_template % d
|
|
4424
4418
|
|
|
4425
4419
|
def c_code_cache_version_outer(self) -> tuple[int, ...]:
|
|
4426
|
-
return (
|
|
4427
|
-
|
|
4428
|
-
|
|
4429
|
-
class Compositef32:
|
|
4430
|
-
# This is a dict of scalar op classes that need special handling
|
|
4431
|
-
special: dict = {}
|
|
4432
|
-
|
|
4433
|
-
def apply(self, fgraph):
|
|
4434
|
-
mapping = {}
|
|
4435
|
-
topo = fgraph.toposort()
|
|
4436
|
-
for i in fgraph.inputs:
|
|
4437
|
-
if i.dtype == "float16":
|
|
4438
|
-
mapping[i] = get_scalar_type("float32")()
|
|
4439
|
-
if hasattr(i.tag, "test_value"):
|
|
4440
|
-
mapping[i].tag.test_value = i.tag.test_value
|
|
4441
|
-
else:
|
|
4442
|
-
mapping[i] = i
|
|
4443
|
-
for node in topo:
|
|
4444
|
-
# Patch up for constants
|
|
4445
|
-
for i in node.inputs:
|
|
4446
|
-
if i not in mapping:
|
|
4447
|
-
assert type(i) is ScalarConstant
|
|
4448
|
-
if i.type == float16:
|
|
4449
|
-
ni = ScalarConstant(float32, i.data)
|
|
4450
|
-
else:
|
|
4451
|
-
ni = i
|
|
4452
|
-
mapping[i] = ni
|
|
4453
|
-
if isinstance(node.op, tuple(self.special)):
|
|
4454
|
-
self.special[type(node.op)](node, mapping)
|
|
4455
|
-
continue
|
|
4456
|
-
new_node = node.clone_with_new_inputs(
|
|
4457
|
-
[mapping[inp] for inp in node.inputs], strict=False
|
|
4458
|
-
)
|
|
4459
|
-
# make sure we don't produce any float16.
|
|
4460
|
-
assert not any(o.dtype == "float16" for o in new_node.outputs)
|
|
4461
|
-
mapping.update(zip(node.outputs, new_node.outputs, strict=True))
|
|
4462
|
-
|
|
4463
|
-
new_ins = [mapping[inp] for inp in fgraph.inputs]
|
|
4464
|
-
new_outs = [mapping[out] for out in fgraph.outputs]
|
|
4465
|
-
return new_ins, new_outs
|
|
4466
|
-
|
|
4467
|
-
|
|
4468
|
-
composite_f32 = Compositef32()
|
|
4469
|
-
|
|
4470
|
-
|
|
4471
|
-
def handle_cast(node, mapping):
|
|
4472
|
-
inp = mapping[node.inputs[0]]
|
|
4473
|
-
out = node.outputs[0]
|
|
4474
|
-
node_ok = False
|
|
4475
|
-
if node.op.o_type == float16:
|
|
4476
|
-
if node.inputs[0].type == float32:
|
|
4477
|
-
# cast f32 -> f16, remove
|
|
4478
|
-
mapping[out] = inp
|
|
4479
|
-
return
|
|
4480
|
-
else:
|
|
4481
|
-
# cast to f16, convert to f32
|
|
4482
|
-
new_out = cast(inp, "float32")
|
|
4483
|
-
# change the node for the following if
|
|
4484
|
-
node = new_out.owner
|
|
4485
|
-
mapping[out] = new_out
|
|
4486
|
-
node_ok = True
|
|
4487
|
-
if node.inputs[0].type == float16:
|
|
4488
|
-
if node.op.o_type == inp.type:
|
|
4489
|
-
# cast f16 to new input type, remove
|
|
4490
|
-
mapping[out] = inp
|
|
4491
|
-
return
|
|
4492
|
-
if not node_ok:
|
|
4493
|
-
new_node = node.clone_with_new_inputs([inp], strict=False)
|
|
4494
|
-
mapping[out] = new_node.outputs[0]
|
|
4495
|
-
|
|
4496
|
-
|
|
4497
|
-
Compositef32.special[Cast] = handle_cast
|
|
4498
|
-
|
|
4499
|
-
|
|
4500
|
-
def handle_composite(node, mapping):
|
|
4501
|
-
new_op = node.op.clone_float32()
|
|
4502
|
-
new_outs = new_op(*[mapping[i] for i in node.inputs], return_list=True)
|
|
4503
|
-
assert len(new_outs) == len(node.outputs)
|
|
4504
|
-
for o, no in zip(node.outputs, new_outs, strict=True):
|
|
4505
|
-
mapping[o] = no
|
|
4506
|
-
|
|
4507
|
-
|
|
4508
|
-
Compositef32.special[Composite] = handle_composite
|
|
4420
|
+
return (7,)
|
|
@@ -123,7 +123,7 @@ class ScalarLoop(ScalarInnerGraphOp):
|
|
|
123
123
|
update, until = self.outputs, None
|
|
124
124
|
init = self.inputs[: len(update)]
|
|
125
125
|
constant = self.inputs[len(update) :]
|
|
126
|
-
return
|
|
126
|
+
return self.__class__(
|
|
127
127
|
init=init,
|
|
128
128
|
update=update,
|
|
129
129
|
constant=constant,
|
|
@@ -1521,7 +1521,7 @@ class Scan(Op, ScanMethodsMixin, HasInnerGraph):
|
|
|
1521
1521
|
|
|
1522
1522
|
def clone(self) -> "Scan":
|
|
1523
1523
|
res = copy(self)
|
|
1524
|
-
res.fgraph = res.fgraph.clone()
|
|
1524
|
+
res.fgraph = res.fgraph.clone(clone_inner_graphs=True)
|
|
1525
1525
|
return res
|
|
1526
1526
|
|
|
1527
1527
|
def make_thunk(self, node, storage_map, compute_map, no_recycling, impl=None):
|
|
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.36.1 → pytensor-2.36.2}/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
|
{pytensor-2.36.1 → pytensor-2.36.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
|