# DESIGN ## Goals - Fast core with predictable performance (no runtime JIT) - Clean APIs for Python and Web - Extensibility: pluggable operators, fitness terms, search strategies ## Key components - AST (`ast.rs`), evaluator (`eval.rs`), operators (`ops.rs`) - Fitness metrics (`fitness.rs`), GP algorithm (`gp.rs`) - Simplification (`simplify/`), utilities (`utils.rs`) ## Error/Complexity tradeoff - Use bi-objective selection or scalarized cost; Pareto archive maintained per generation. ## Safety - Protected operators for division/log; numeric guards where needed. ## Determinism - Seeded RNG exposed in configs for reproducible runs.