phop-core 0.1.0

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

The engine behind [phop](https://github.com/cool-japan/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

```toml
[dependencies]
phop-core = "0.1"
```

## Usage

```rust
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](https://github.com/cool-japan/phop) project.

## License

Apache-2.0