Expand description
§phop-core — differentiable symbolic discovery on the EML operator
phop discovers closed-form expressions from data by learning both the topology and the numeric parameters of homogeneous binary trees built from a single primitive, the EML operator
eml(x, y) = exp(x) - ln(y)together with the constant 1. The grammar is the trivial production
S -> 1 | eml(S, S), which (Odrzywołek 2026) is functionally complete for the
elementary functions. Homogeneity lets an entire population of candidate trees be
evaluated inside a single automatic-differentiation graph and optimized end-to-end.
This crate is layered:
- Layer A (
forest) — tensorized EML forest forward evaluation. - Layer B (topology), C (loss/Pareto), D (distillation) build on top (see the crate TODO).
The AST, canonicalization, and LaTeX rendering are delegated to the oxieml crate;
automatic differentiation and optimization to scirs2-autograd.
Re-exports§
pub use accel::gpu_backend;pub use accel::GpuBackend;pub use affine::discover_affine;pub use affine::discover_affine_pareto;pub use affine::AffineSolution;pub use analyze::analyze;pub use analyze::certified_range;pub use analyze::certified_root;pub use analyze::Analysis;pub use any_solution::merge_pareto;pub use any_solution::AnySolution;pub use config::Backend;pub use config::Config;pub use config::TempSchedule;pub use dataset::DataSet;pub use dataset::Standardizer;pub use dimension::pi_groups;pub use dimension::Dimension;pub use discoverer::discover_auto;pub use discoverer::discover_auto_all;pub use discoverer::Discoverer;pub use distill::distill;pub use distill::Distilled;pub use error::PhopError;pub use error::Result;pub use fit::fit_constants;pub use fit::mse;pub use fit::n_constants;pub use forest::eml_guarded;pub use forest::eval_tree;pub use gated::discover_gated;pub use gated::discover_gated_warm;pub use gumbel::discover_gumbel;pub use loss::RobustLoss;pub use ode::discover_ode;pub use optimize::polish_constants_scirs;pub use optimize::ScirsPolish;pub use pareto::ParetoFront;pub use polish::polish_constants;pub use polish::polish_constants_robust;pub use polish::snap_constants;pub use solution::Solution;
Modules§
- accel
- Accelerator selection for the tensorized EML forward pass.
- affine
- Affine- and log-affine-leaf EML discovery (M6 root-cause fix, steps 1 + 2).
- analyze
- Layer D⁺ — post-discovery analysis of a recovered law via the
oxiemlcomputer-algebra system. - any_
solution - A heterogeneous discovered law — either an EML-tree law from the differentiable core engine
or a rich-leaf affine/log-linear law from
crate::affine. - codegen
- Code generation for discovered EML expressions (Rust, Python/NumPy).
- config
- Discovery configuration.
- dataset
- Dataset ingestion:
(X, y)pairs from arrays or CSV. - dimension
- Buckingham-π dimensional reduction (a discovery prior for phop).
- discoverer
- The top-level discovery engine.
- distill
- Layer D — symbolic distillation of a discovered EML tree.
- error
- Error types for the phop engine.
- fit
- M1 — gradient-based fitting of the real-valued constants of an EML tree.
- forest
- Layer A — tensorized EML forest forward evaluation.
- gated
- Differentiable tree shape via per-node expand/terminate gates (the depth-learning step).
- gumbel
- Layer B (M2) — differentiable topology via Gumbel-Softmax leaf selection.
- loss
- Robust regression losses for constant fitting under outliers.
- ode
- Governing-equation discovery: recover the right-hand side of an autonomous ODE
dx/dt = f(x)from a sampled trajectory, using phop as the function learner. - optimize
- Library-backed constant refinement via
scirs2-optimize. - pareto
- Pareto front over (complexity, MSE).
- polish
- Post-fit refinement of an expression’s constants.
- silence
- Scoped suppression of process
stdoutat the file-descriptor level. - solution
- A discovered candidate expression and its quality metrics.
Structs§
- EmlTree
- EML tree with metadata.
- Root
Certificate - Certificate for a verified root-finding result.
Enums§
- EmlNode
- EML tree node. All nodes share the same type — uniform binary tree.
Arcenables O(1) subtree sharing during symbolic regression. - Root
Status - Status of the root certificate.