phop-core 0.1.0

Core engine for phop: tensorized EML forests, differentiable topology, and discovery
Documentation

phop-core

The engine behind phop — the first differentiable symbolic-discovery engine: it learns expression topology and numeric parameters by gradient descent over a tensorized population of homogeneous EML trees (eml(x, y) = exp(x) − ln(y), Odrzywołek 2026), end-to-end in pure Rust.

Install

[dependencies]
phop-core = "0.1"

Usage

use phop_core::{Config, DataSet, Discoverer};

// Build a DataSet from in-memory arrays (or load one from CSV).
let ds = DataSet::from_xy(&[[1.0], [2.0], [3.0]], &[2.0, 4.0, 6.0]);

let front = Discoverer::new(Config::default()).fit(&ds);
if let Some(best) = front.best() {
    println!("{}", best.latex());
}

Key entry points: Discoverer, discover_auto / discover_auto_all (the latter merges the EML-tree searches with the rich-leaf affine engine into one Pareto front), discover_affine / discover_affine_pareto (recovers product / power / ratio laws), and Solution::predict / latex / analyze.

Features

Pure-Rust by default (no C/C++/Fortran). Opt-in flags: smt (OxiZ SMT proofs), lean (OxiLean proof-carrying), egraph, parallel, tensorlogic, gpu-cuda, gpu-wgpu.

Part of the phop project.

License

Apache-2.0