mixle.engines.symbolic_export moduleΒΆ

Lowering of SymbolicExpression trees to sympy and sagemath.

The native mixle.engines.symbolic_engine produces a dependency-free expression tree (e.g. from backend_seq_log_density under SYMBOLIC_ENGINE). This module converts those trees into sympy or sage expressions so they can be simplified, rendered as LaTeX, differentiated symbolically, or fed into a code generator.

Both backends are imported lazily so importing mixle.engines never requires sympy or sage. Array inputs (NumPy object arrays of expression nodes) are mapped elementwise into a NumPy object array of backend expressions, preserving shape.

to_sympy(expr)[source]

Convert a SymbolicExpression (or object array of them) to sympy.

Scalar nodes become a sympy expression; object arrays map elementwise into a NumPy object array of sympy expressions (shape preserved). Genuinely non-symbolic kernels (bincount/unique/searchsorted/ index_add) raise NotImplementedError. Raises ImportError if sympy is unavailable.

Parameters:

expr (Any)

Return type:

Any

to_latex(expr)[source]

Return a LaTeX string for expr via sympy.

Parameters:

expr (Any)

Return type:

str

to_sage(expr)[source]

Convert a SymbolicExpression (or object array of them) to sage.

Mirrors to_sympy() against sage.all. Raises ImportError if sage is unavailable, and NotImplementedError for non-symbolic kernels.

Parameters:

expr (Any)

Return type:

Any