use crate::ast::Expr; use crate::eval::eval_expr; pub fn mse(expr: &Expr, x: &[Vec], y: &[f64]) -> f64 { let n = x.len(); let mut s = 0.0; for i in 0..n { let yi = eval_expr(expr, &x[i]); let d = yi - y[i]; s += d * d; } s / n as f64 } pub fn complexity(expr: &Expr) -> usize { expr.nodes.len() }