pytensor 2.25.1__tar.gz → 2.25.3__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.25.1 → pytensor-2.25.3}/MANIFEST.in +0 -1
- {pytensor-2.25.1/pytensor.egg-info → pytensor-2.25.3}/PKG-INFO +4 -4
- {pytensor-2.25.1 → pytensor-2.25.3}/README.rst +2 -2
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/generate_dtype_tensor_table.py +1 -1
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/introduction.rst +2 -2
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/config.rst +1 -44
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/links.rst +7 -7
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/adding.rst +25 -19
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/index.rst +1 -0
- pytensor-2.25.3/doc/tutorial/prng.rst +752 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pyproject.toml +5 -10
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/__init__.py +4 -1
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/_version.py +3 -3
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/bin/pytensor_cache.py +1 -3
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/compile/builders.py +3 -31
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/compile/debugmode.py +12 -23
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/compile/function/types.py +2 -6
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/compile/monitormode.py +2 -2
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/compile/profiling.py +10 -13
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/configdefaults.py +14 -110
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/configparser.py +15 -37
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/gradient.py +34 -8
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/graph/basic.py +13 -8
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/graph/destroyhandler.py +2 -2
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/graph/rewriting/basic.py +5 -8
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/graph/rewriting/db.py +4 -4
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/graph/utils.py +3 -4
- pytensor-2.25.3/pytensor/link/__init__.py +1 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/basic.py +2 -2
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/c/basic.py +45 -47
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/c/cmodule.py +9 -11
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/c/interface.py +4 -8
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/c/lazylinker_c.py +4 -23
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/c/op.py +25 -57
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/c/params_type.py +26 -42
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/c/type.py +52 -64
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/jax/dispatch/__init__.py +12 -8
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/jax/dispatch/basic.py +24 -0
- pytensor-2.25.3/pytensor/link/jax/dispatch/blas.py +14 -0
- pytensor-2.25.3/pytensor/link/jax/dispatch/einsum.py +20 -0
- pytensor-2.25.3/pytensor/link/jax/dispatch/math.py +60 -0
- pytensor-2.25.3/pytensor/link/jax/dispatch/nlinalg.py +93 -0
- pytensor-2.25.3/pytensor/link/jax/dispatch/pad.py +53 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/numba/dispatch/slinalg.py +4 -5
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/pytorch/dispatch/__init__.py +5 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/pytorch/dispatch/basic.py +17 -1
- pytensor-2.25.3/pytensor/link/pytorch/dispatch/blas.py +14 -0
- pytensor-2.25.3/pytensor/link/pytorch/dispatch/extra_ops.py +58 -0
- pytensor-2.25.3/pytensor/link/pytorch/dispatch/math.py +12 -0
- pytensor-2.25.3/pytensor/link/pytorch/dispatch/nlinalg.py +103 -0
- pytensor-2.25.3/pytensor/link/pytorch/dispatch/shape.py +52 -0
- pytensor-2.25.3/pytensor/link/pytorch/dispatch/sort.py +25 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/utils.py +6 -10
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/vm.py +7 -11
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/misc/check_blas.py +1 -1
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/misc/check_duplicate_key.py +1 -1
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/misc/elemwise_openmp_speedup.py +1 -1
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/misc/elemwise_time_test.py +1 -1
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/misc/pkl_utils.py +1 -1
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/printing.py +3 -5
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/scalar/basic.py +53 -46
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/scalar/math.py +10 -10
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/scan/op.py +1 -2
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/scan/rewriting.py +1 -3
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/scan/utils.py +2 -1
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/sparse/basic.py +8 -6
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/sparse/rewriting.py +29 -20
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/__init__.py +2 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/basic.py +85 -132
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/blas.py +12 -19
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/blas_c.py +2 -2
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/blas_headers.py +2 -2
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/conv/abstract_conv.py +6 -5
- pytensor-2.25.3/pytensor/tensor/einsum.py +760 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/elemwise.py +130 -147
- pytensor-2.25.3/pytensor/tensor/elemwise_cgen.py +756 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/extra_ops.py +356 -27
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/fft.py +1 -1
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/functional.py +1 -1
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/math.py +46 -44
- pytensor-2.25.3/pytensor/tensor/pad.py +690 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/rewriting/__init__.py +2 -2
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/rewriting/basic.py +121 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/rewriting/blockwise.py +84 -49
- pytensor-2.25.3/pytensor/tensor/rewriting/einsum.py +53 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/rewriting/linalg.py +147 -69
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/rewriting/math.py +1 -1
- pytensor-2.25.3/pytensor/tensor/rewriting/ofg.py +73 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/rewriting/shape.py +56 -64
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/shape.py +5 -5
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/slinalg.py +9 -12
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/subtensor.py +141 -37
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/type.py +17 -15
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/typed_list/basic.py +20 -21
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/typed_list/type.py +7 -6
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/utils.py +1 -1
- {pytensor-2.25.1 → pytensor-2.25.3/pytensor.egg-info}/PKG-INFO +4 -4
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor.egg-info/SOURCES.txt +14 -20
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor.egg-info/requires.txt +1 -1
- {pytensor-2.25.1 → pytensor-2.25.3}/scripts/mypy-failing.txt +1 -3
- pytensor-2.25.3/setup.py +38 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/tests/test_config.py +23 -2
- pytensor-2.25.1/doc/sandbox/ccodegen.rst +0 -255
- pytensor-2.25.1/doc/sandbox/compilation.rst +0 -18
- pytensor-2.25.1/doc/sandbox/debugging_with_stepmode.rst +0 -75
- pytensor-2.25.1/doc/sandbox/elemwise_compiler.rst +0 -86
- pytensor-2.25.1/doc/sandbox/function.rst +0 -9
- pytensor-2.25.1/doc/sandbox/functional.rst +0 -7
- pytensor-2.25.1/doc/sandbox/how_to_make_ops.rst +0 -295
- pytensor-2.25.1/doc/sandbox/index.rst +0 -11
- pytensor-2.25.1/doc/sandbox/index2.rst +0 -15
- pytensor-2.25.1/doc/sandbox/interactive_debugger.rst +0 -56
- pytensor-2.25.1/doc/sandbox/logistic_regression_example.rst +0 -77
- pytensor-2.25.1/doc/sandbox/performance.rst +0 -23
- pytensor-2.25.1/doc/sandbox/randomnumbers.rst +0 -245
- pytensor-2.25.1/doc/sandbox/rethinkccodegen.rst +0 -124
- pytensor-2.25.1/doc/sandbox/sandbox.rst +0 -161
- pytensor-2.25.1/doc/sandbox/software.rst +0 -19
- pytensor-2.25.1/doc/sandbox/sparse.rst +0 -147
- pytensor-2.25.1/doc/sandbox/tensoroptools.rst +0 -9
- pytensor-2.25.1/pytensor/link/jax/dispatch/nlinalg.py +0 -161
- pytensor-2.25.1/pytensor/link/pytorch/dispatch/extra_ops.py +0 -23
- pytensor-2.25.1/pytensor/sparse/sandbox/__init__.py +0 -0
- pytensor-2.25.1/pytensor/tensor/elemwise_cgen.py +0 -551
- pytensor-2.25.1/pytensor/version.py +0 -28
- pytensor-2.25.1/setup.py +0 -28
- pytensor-2.25.1/versioneer.py +0 -2201
- {pytensor-2.25.1 → pytensor-2.25.3}/LICENSE.txt +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/.templates/PLACEHOLDER +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/.templates/layout.html +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/LICENSE.txt +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/README.md +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/acknowledgement.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/bcast.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/bcast.svg +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/conf.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/core_development_guide.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/css.inc +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/dev_start_guide.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/environment.yml +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/apply.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/apply.svg +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/apply2.svg +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/creating_a_c_op.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/creating_a_numba_jax_op.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/creating_an_op.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/ctype.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/extending_faq.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/extending_pytensor_solution_1.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/graph_rewriting.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/graphstructures.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/index.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/inplace.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/op.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/other_ops.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/pics/symbolic_graph_opt.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/pics/symbolic_graph_unopt.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/pipeline.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/scan.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/tips.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/type.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/unittest.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/extending/using_params.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/faq.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/glossary.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/images/Elman_srnn.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/images/PyTensor_RGB.svg +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/images/blocksparse.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/images/lstm.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/images/lstm_memorycell.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/images/talk2010.gif +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/images/talk2010.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/index.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/install.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/internal/how_to_release.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/internal/index.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/internal/metadocumentation.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/compile/debugmode.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/compile/function.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/compile/index.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/compile/io.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/compile/mode.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/compile/nanguardmode.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/compile/opfromgraph.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/compile/ops.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/compile/profilemode.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/compile/shared.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/d3viz/examples/d3viz/css/d3-context-menu.css +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/d3viz/examples/d3viz/css/d3viz.css +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/d3viz/examples/d3viz/js/d3-context-menu.js +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/d3viz/examples/d3viz/js/d3.v3.min.js +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/d3viz/examples/d3viz/js/d3viz.js +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/d3viz/examples/d3viz/js/dagre-d3.min.js +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/d3viz/examples/d3viz/js/graphlib-dot.min.js +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/d3viz/examples/mlp.html +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/d3viz/examples/mlp.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/d3viz/examples/mlp2.html +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/d3viz/examples/mlp2.pdf +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/d3viz/examples/mlp2.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/d3viz/examples/ofg.html +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/d3viz/examples/ofg2.html +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/d3viz/index.ipynb +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/d3viz/index.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/d3viz/index_files/index_10_0.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/d3viz/index_files/index_11_0.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/d3viz/index_files/index_24_0.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/d3viz/index_files/index_25_0.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/gradient.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/graph/features.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/graph/fgraph.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/graph/graph.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/graph/index.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/graph/op.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/graph/type.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/graph/utils.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/index.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/misc/pkl_utils.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/printing.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/sandbox/index.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/sandbox/linalg.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/scalar/index.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/scan.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/sparse/index.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/sparse/sandbox.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/tensor/basic.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/tensor/basic_opt.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/tensor/bcast.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/tensor/bcast.svg +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/tensor/conv.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/tensor/elemwise.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/tensor/extra_ops.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/tensor/fft.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/tensor/index.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/tensor/io.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/tensor/math_opt.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/tensor/nlinalg.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/tensor/plot_fft.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/tensor/random/basic.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/tensor/random/index.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/tensor/random/utils.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/tensor/slinalg.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/tensor/utils.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/library/typed_list.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/optimizations.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/pylintrc +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/troubleshooting.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/adding_solution_1.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/aliasing.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/apply.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/apply.svg +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/bcast.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/broadcasting.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/conditions.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/debug_faq.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/dlogistic.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/examples.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/faq_tutorial.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/gradients.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/loading_and_saving.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/logistic.gp +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/logistic.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/loop.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/loop_solution_1.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/modes.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/modes_solution_1.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/multi_cores.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/nan_tutorial.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/pics/d3viz.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/pics/logreg_pydotprint_predict.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/pics/logreg_pydotprint_prediction.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/pics/logreg_pydotprint_train.png +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/printing_drawing.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/profiling.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/profiling_example.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/profiling_example_out.prof +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/shape_info.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/sparse.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/tutorial/symbolic_graphs.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/doc/user_guide.rst +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/bin/__init__.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/breakpoint.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/compile/__init__.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/compile/compiledir.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/compile/compilelock.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/compile/function/__init__.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/compile/function/pfunc.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/compile/io.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/compile/mode.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/compile/nanguardmode.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/compile/ops.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/compile/sharedvalue.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/d3viz/__init__.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/d3viz/css/d3-context-menu.css +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/d3viz/css/d3viz.css +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/d3viz/d3viz.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/d3viz/formatting.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/d3viz/js/d3-context-menu.js +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/d3viz/js/d3.v3.min.js +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/d3viz/js/d3viz.js +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/d3viz/js/dagre-d3.min.js +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/d3viz/js/graphlib-dot.min.js +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/graph/__init__.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/graph/features.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/graph/fg.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/graph/null_type.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/graph/op.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/graph/replace.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/graph/rewriting/__init__.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/graph/rewriting/kanren.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/graph/rewriting/unify.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/graph/rewriting/utils.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/graph/type.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/ifelse.py +0 -0
- {pytensor-2.25.1/pytensor/link → pytensor-2.25.3/pytensor/link/c}/__init__.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/c/c_code/lazylinker_c.c +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/c/c_code/pytensor_mod_helper.h +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/c/cutils.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/c/cvm.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/c/exceptions.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/jax/__init__.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/jax/dispatch/blockwise.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/jax/dispatch/elemwise.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/jax/dispatch/extra_ops.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/jax/dispatch/random.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/jax/dispatch/scalar.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/jax/dispatch/scan.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/jax/dispatch/shape.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/jax/dispatch/slinalg.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/jax/dispatch/sort.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/jax/dispatch/sparse.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/jax/dispatch/subtensor.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/jax/dispatch/tensor_basic.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/jax/linker.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/numba/__init__.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/numba/dispatch/__init__.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/numba/dispatch/basic.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/numba/dispatch/cython_support.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/numba/dispatch/elemwise.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/numba/dispatch/extra_ops.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/numba/dispatch/nlinalg.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/numba/dispatch/random.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/numba/dispatch/scalar.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/numba/dispatch/scan.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/numba/dispatch/sparse.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/numba/dispatch/subtensor.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/numba/dispatch/tensor_basic.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/numba/dispatch/vectorize_codegen.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/numba/linker.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/pytorch/dispatch/elemwise.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/pytorch/dispatch/scalar.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/link/pytorch/linker.py +0 -0
- {pytensor-2.25.1/pytensor/link/c → pytensor-2.25.3/pytensor/misc}/__init__.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/misc/check_blas_many.sh +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/misc/frozendict.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/misc/may_share_memory.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/misc/ordered_set.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/misc/safe_asarray.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/py.typed +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/raise_op.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/scalar/__init__.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/scalar/c_code/Faddeeva.cc +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/scalar/c_code/Faddeeva.hh +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/scalar/c_code/gamma.c +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/scalar/c_code/incbet.c +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/scalar/loop.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/scalar/sharedvar.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/scan/__init__.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/scan/basic.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/scan/checkpoints.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/scan/scan_perform.pyx +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/scan/scan_perform_ext.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/scan/views.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/sparse/__init__.py +0 -0
- {pytensor-2.25.1/pytensor/misc → pytensor-2.25.3/pytensor/sparse/sandbox}/__init__.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/sparse/sandbox/sp.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/sparse/sandbox/sp2.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/sparse/sharedvar.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/sparse/type.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/sparse/utils.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/blas_scipy.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/blockwise.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/c_code/alt_blas_common.h +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/c_code/alt_blas_template.c +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/c_code/dimshuffle.c +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/conv/__init__.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/exceptions.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/fourier.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/inplace.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/io.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/linalg.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/nlinalg.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/random/__init__.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/random/basic.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/random/op.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/random/rewriting/__init__.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/random/rewriting/basic.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/random/rewriting/jax.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/random/rewriting/numba.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/random/type.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/random/utils.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/random/var.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/rewriting/blas.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/rewriting/blas_c.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/rewriting/blas_scipy.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/rewriting/elemwise.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/rewriting/extra_ops.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/rewriting/jax.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/rewriting/special.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/rewriting/subtensor.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/rewriting/uncanonicalize.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/sharedvar.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/sort.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/special.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/type_other.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/utils.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/var.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/variable.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/tensor/xlogx.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/typed_list/__init__.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/typed_list/rewriting.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor/updates.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor.egg-info/dependency_links.txt +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor.egg-info/entry_points.txt +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/pytensor.egg-info/top_level.txt +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/setup.cfg +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/tests/link/c/c_code/test_cenum.h +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/tests/link/c/c_code/test_quadratic_function.c +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/tests/tensor/conv/c_code/corr3d_gemm.c +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/tests/tensor/conv/c_code/corr_gemm.c +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/tests/test_breakpoint.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/tests/test_gradient.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/tests/test_ifelse.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/tests/test_printing.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/tests/test_raise_op.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/tests/test_rop.py +0 -0
- {pytensor-2.25.1 → pytensor-2.25.3}/tests/test_updates.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: pytensor
|
|
3
|
-
Version: 2.25.
|
|
3
|
+
Version: 2.25.3
|
|
4
4
|
Summary: Optimizing compiler for evaluating mathematical expressions on CPUs and GPUs.
|
|
5
5
|
Author-email: pymc-devs <pymc.devs@gmail.com>
|
|
6
6
|
License: .. _license:
|
|
@@ -73,7 +73,7 @@ Requires-Python: <3.13,>=3.10
|
|
|
73
73
|
Description-Content-Type: text/x-rst
|
|
74
74
|
License-File: LICENSE.txt
|
|
75
75
|
Requires-Dist: setuptools>=59.0.0
|
|
76
|
-
Requires-Dist: scipy<1
|
|
76
|
+
Requires-Dist: scipy<2,>=1
|
|
77
77
|
Requires-Dist: numpy<2,>=1.17.0
|
|
78
78
|
Requires-Dist: filelock>=3.15
|
|
79
79
|
Requires-Dist: etuples
|
|
@@ -243,7 +243,7 @@ A good place to start contributing is by looking through the issues
|
|
|
243
243
|
|
|
244
244
|
|
|
245
245
|
.. |Project Name| replace:: PyTensor
|
|
246
|
-
.. |Tests Status| image:: https://github.com/pymc-devs/pytensor/workflows/Tests/badge.svg
|
|
247
|
-
:target: https://github.com/pymc-devs/pytensor/actions?query=workflow%3ATests
|
|
246
|
+
.. |Tests Status| image:: https://github.com/pymc-devs/pytensor/workflows/Tests/badge.svg?branch=main
|
|
247
|
+
:target: https://github.com/pymc-devs/pytensor/actions?query=workflow%3ATests+branch%3Amain
|
|
248
248
|
.. |Coverage| image:: https://codecov.io/gh/pymc-devs/pytensor/branch/main/graph/badge.svg?token=WVwr8nZYmc
|
|
249
249
|
:target: https://codecov.io/gh/pymc-devs/pytensor
|
|
@@ -133,7 +133,7 @@ A good place to start contributing is by looking through the issues
|
|
|
133
133
|
|
|
134
134
|
|
|
135
135
|
.. |Project Name| replace:: PyTensor
|
|
136
|
-
.. |Tests Status| image:: https://github.com/pymc-devs/pytensor/workflows/Tests/badge.svg
|
|
137
|
-
:target: https://github.com/pymc-devs/pytensor/actions?query=workflow%3ATests
|
|
136
|
+
.. |Tests Status| image:: https://github.com/pymc-devs/pytensor/workflows/Tests/badge.svg?branch=main
|
|
137
|
+
:target: https://github.com/pymc-devs/pytensor/actions?query=workflow%3ATests+branch%3Amain
|
|
138
138
|
.. |Coverage| image:: https://codecov.io/gh/pymc-devs/pytensor/branch/main/graph/badge.svg?token=WVwr8nZYmc
|
|
139
139
|
:target: https://codecov.io/gh/pymc-devs/pytensor
|
|
@@ -31,7 +31,7 @@ for letter in letters:
|
|
|
31
31
|
if len(shape[1]) < 6 or len(set(shape[1])) > 1:
|
|
32
32
|
broadcastable_str = str(shape[1])
|
|
33
33
|
else:
|
|
34
|
-
broadcastable_str = '(
|
|
34
|
+
broadcastable_str = f'({shape[1][0]},) * {len(shape[1])}'
|
|
35
35
|
print('%s%-10s %-10s %-4s %-15s %-20s' %(
|
|
36
36
|
letter[0], shape[0], letter[1], len(shape[1]), s, broadcastable_str
|
|
37
37
|
))
|
|
@@ -157,9 +157,9 @@ to extend PyTensor, please feel free to ask.
|
|
|
157
157
|
install
|
|
158
158
|
tutorial/index
|
|
159
159
|
|
|
160
|
-
.. _LISA: https://mila.
|
|
160
|
+
.. _LISA: https://mila.quebec/en
|
|
161
161
|
.. _Greek mathematician: http://en.wikipedia.org/wiki/Theano_(mathematician)
|
|
162
|
-
.. _numpy:
|
|
162
|
+
.. _numpy: https://numpy.org/
|
|
163
163
|
.. _BLAS: http://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms
|
|
164
164
|
|
|
165
165
|
.. _sympy: http://www.sympy.org/
|
|
@@ -103,14 +103,6 @@ import ``pytensor`` and print the config variable, as in:
|
|
|
103
103
|
|
|
104
104
|
String value: either ``'cpu'``
|
|
105
105
|
|
|
106
|
-
.. attribute:: force_device
|
|
107
|
-
|
|
108
|
-
Bool value: either ``True`` or ``False``
|
|
109
|
-
|
|
110
|
-
Default: ``False``
|
|
111
|
-
|
|
112
|
-
This flag's value cannot be modified during the program execution.
|
|
113
|
-
|
|
114
106
|
.. attribute:: print_active_device
|
|
115
107
|
|
|
116
108
|
Bool value: either ``True`` or ``False``
|
|
@@ -139,16 +131,6 @@ import ``pytensor`` and print the config variable, as in:
|
|
|
139
131
|
equal to ``float64`` is created.
|
|
140
132
|
This can be used to help find upcasts to ``float64`` in user code.
|
|
141
133
|
|
|
142
|
-
.. attribute:: deterministic
|
|
143
|
-
|
|
144
|
-
String value: either ``'default'``, ``'more'``
|
|
145
|
-
|
|
146
|
-
Default: ``'default'``
|
|
147
|
-
|
|
148
|
-
If ``more``, sometimes PyTensor will select :class:`Op` implementations that
|
|
149
|
-
are more "deterministic", but slower. See the ``dnn.conv.algo*``
|
|
150
|
-
flags for more cases.
|
|
151
|
-
|
|
152
134
|
.. attribute:: allow_gc
|
|
153
135
|
|
|
154
136
|
Bool value: either ``True`` or ``False``
|
|
@@ -373,7 +355,7 @@ import ``pytensor`` and print the config variable, as in:
|
|
|
373
355
|
|
|
374
356
|
When ``True``, ignore the first call to an PyTensor function while profiling.
|
|
375
357
|
|
|
376
|
-
.. attribute:: config.
|
|
358
|
+
.. attribute:: config.lib__amdlibm
|
|
377
359
|
|
|
378
360
|
Bool value: either ``True`` or ``False``
|
|
379
361
|
|
|
@@ -412,16 +394,6 @@ import ``pytensor`` and print the config variable, as in:
|
|
|
412
394
|
ignore it (i.e. ``'ignore'``).
|
|
413
395
|
We suggest never using ``'ignore'`` except during testing.
|
|
414
396
|
|
|
415
|
-
.. attribute:: assert_no_cpu_op
|
|
416
|
-
|
|
417
|
-
String value: ``'ignore'`` or ``'warn'`` or ``'raise'`` or ``'pdb'``
|
|
418
|
-
|
|
419
|
-
Default: ``'ignore'``
|
|
420
|
-
|
|
421
|
-
If there is a CPU :class:`Op` in the computational graph, depending on its value,
|
|
422
|
-
this flag can either raise a warning, an exception or drop into the frame
|
|
423
|
-
with ``pdb``.
|
|
424
|
-
|
|
425
397
|
.. attribute:: on_shape_error
|
|
426
398
|
|
|
427
399
|
String value: ``'warn'`` or ``'raise'``
|
|
@@ -797,18 +769,3 @@ import ``pytensor`` and print the config variable, as in:
|
|
|
797
769
|
The verbosity level of the meta-rewriter: ``0`` for silent, ``1`` to only
|
|
798
770
|
warn when PyTensor cannot meta-rewrite an :class:`Op`, ``2`` for full output (e.g.
|
|
799
771
|
timings and the rewrites selected).
|
|
800
|
-
|
|
801
|
-
|
|
802
|
-
.. attribute:: config.metaopt__optimizer_excluding
|
|
803
|
-
|
|
804
|
-
Default: ``""``
|
|
805
|
-
|
|
806
|
-
A list of rewrite tags that we don't want included in the meta-rewriter.
|
|
807
|
-
Multiple tags are separate by ``':'``.
|
|
808
|
-
|
|
809
|
-
.. attribute:: config.metaopt__optimizer_including
|
|
810
|
-
|
|
811
|
-
Default: ``""``
|
|
812
|
-
|
|
813
|
-
A list of rewriter tags to be included during meta-rewriting.
|
|
814
|
-
Multiple tags are separate by ``':'``.
|
|
@@ -39,18 +39,18 @@ This is a sort of memo for developers and would-be developers.
|
|
|
39
39
|
|
|
40
40
|
.. _git: http://git-scm.com/
|
|
41
41
|
.. _pytest: http://docs.pytest.org/en/latest/
|
|
42
|
-
.. _numpy:
|
|
42
|
+
.. _numpy: https://numpy.org/
|
|
43
43
|
.. _python: http://www.python.org
|
|
44
44
|
.. _scipy: http://scipy.org/
|
|
45
45
|
|
|
46
46
|
.. _autodiff: http://www.autodiff.org
|
|
47
|
-
.. _boost.python:
|
|
47
|
+
.. _boost.python: https://www.boost.org/doc/libs/1_85_0/libs/python/doc/html/index.html
|
|
48
48
|
.. _cython: http://www.cython.org/
|
|
49
49
|
.. _liboil: http://liboil.freedesktop.org/wiki/
|
|
50
50
|
.. _llvm: http://llvm.org/
|
|
51
|
-
.. _networkx:
|
|
52
|
-
.. _pypy:
|
|
51
|
+
.. _networkx: https://networkx.org/
|
|
52
|
+
.. _pypy: https://doc.pypy.org/en/latest/
|
|
53
53
|
.. _swig: http://www.swig.org/
|
|
54
|
-
.. _unpython:
|
|
55
|
-
.. _pycppad:
|
|
56
|
-
.. _shedskin:
|
|
54
|
+
.. _unpython: https://code.google.com/archive/p/unpython/
|
|
55
|
+
.. _pycppad: https://github.com/Simple-Robotics/pycppad
|
|
56
|
+
.. _shedskin: https://shedskin.github.io/shedskin/
|
|
@@ -4,6 +4,31 @@
|
|
|
4
4
|
Baby Steps - Algebra
|
|
5
5
|
====================
|
|
6
6
|
|
|
7
|
+
Understanding Tensors
|
|
8
|
+
===========================
|
|
9
|
+
|
|
10
|
+
Before diving into PyTensor, it's essential to understand the fundamental
|
|
11
|
+
data structure it operates on: the *tensor*. A *tensor* is a multi-dimensional
|
|
12
|
+
array that serves as the foundation for symbolic computations.
|
|
13
|
+
|
|
14
|
+
tensors can represent anything from a single number (scalar) to
|
|
15
|
+
complex multi-dimensional arrays. Each tensor has a type that dictates its
|
|
16
|
+
dimensionality and the kind of data it holds.
|
|
17
|
+
|
|
18
|
+
For example, the following code creates a symbolic scalar and a symbolic matrix:
|
|
19
|
+
|
|
20
|
+
>>> x = pt.scalar('x')
|
|
21
|
+
>>> y = pt.matrix('y')
|
|
22
|
+
|
|
23
|
+
Here, `scalar` refers to a tensor with zero dimensions, while `matrix` refers
|
|
24
|
+
to a tensor with two dimensions. The same principles apply to tensors of other
|
|
25
|
+
dimensions.
|
|
26
|
+
|
|
27
|
+
For more information about tensors and their associated operations can be
|
|
28
|
+
found here: :ref:`tensor <libdoc_tensor>`.
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
|
|
7
32
|
Adding two Scalars
|
|
8
33
|
==================
|
|
9
34
|
|
|
@@ -173,25 +198,6 @@ It is possible to add scalars to matrices, vectors to matrices,
|
|
|
173
198
|
scalars to vectors, etc. The behavior of these operations is defined
|
|
174
199
|
by :ref:`broadcasting <libdoc_tensor_broadcastable>`.
|
|
175
200
|
|
|
176
|
-
The following types are available:
|
|
177
|
-
|
|
178
|
-
* **byte**: ``bscalar, bvector, bmatrix, brow, bcol, btensor3, btensor4, btensor5, btensor6, btensor7``
|
|
179
|
-
* **16-bit integers**: ``wscalar, wvector, wmatrix, wrow, wcol, wtensor3, wtensor4, wtensor5, wtensor6, wtensor7``
|
|
180
|
-
* **32-bit integers**: ``iscalar, ivector, imatrix, irow, icol, itensor3, itensor4, itensor5, itensor6, itensor7``
|
|
181
|
-
* **64-bit integers**: ``lscalar, lvector, lmatrix, lrow, lcol, ltensor3, ltensor4, ltensor5, ltensor6, ltensor7``
|
|
182
|
-
* **float**: ``fscalar, fvector, fmatrix, frow, fcol, ftensor3, ftensor4, ftensor5, ftensor6, ftensor7``
|
|
183
|
-
* **double**: ``dscalar, dvector, dmatrix, drow, dcol, dtensor3, dtensor4, dtensor5, dtensor6, dtensor7``
|
|
184
|
-
* **complex**: ``cscalar, cvector, cmatrix, crow, ccol, ctensor3, ctensor4, ctensor5, ctensor6, ctensor7``
|
|
185
|
-
|
|
186
|
-
The previous list is not exhaustive and a guide to all types compatible
|
|
187
|
-
with NumPy arrays may be found here: :ref:`tensor creation<libdoc_tensor_creation>`.
|
|
188
|
-
|
|
189
|
-
.. note::
|
|
190
|
-
|
|
191
|
-
You, the user---not the system architecture---have to choose whether your
|
|
192
|
-
program will use 32- or 64-bit integers (``i`` prefix vs. the ``l`` prefix)
|
|
193
|
-
and floats (``f`` prefix vs. the ``d`` prefix).
|
|
194
|
-
|
|
195
201
|
|
|
196
202
|
|
|
197
203
|
Exercise
|