feat: introduce InferenceError; mu_sigma panic already eliminated

mu_sigma was deleted as part of the Gaussian nat-param rewrite (its
only callers were the old Mul/Div impls). This commit adds the
InferenceError enum as a seed for the T2 API surface, with the
NegativePrecision variant that mu_sigma would have returned.

Part of T0 engine redesign.
This commit is contained in:
2026-04-24 07:00:26 +02:00
parent a667deb7e1
commit 709ece335f
2 changed files with 20 additions and 0 deletions

18
src/error.rs Normal file
View File

@@ -0,0 +1,18 @@
use std::fmt;
#[derive(Debug, Clone, PartialEq)]
pub enum InferenceError {
NegativePrecision { pi: f64 },
}
impl fmt::Display for InferenceError {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
match self {
Self::NegativePrecision { pi } => {
write!(f, "precision must be non-negative; got {pi}")
}
}
}
}
impl std::error::Error for InferenceError {}

View File

@@ -11,6 +11,7 @@ pub mod agent;
mod approx; mod approx;
pub mod batch; pub mod batch;
pub mod drift; pub mod drift;
mod error;
mod game; mod game;
pub mod gaussian; pub mod gaussian;
mod history; mod history;
@@ -19,6 +20,7 @@ mod message;
pub mod player; pub mod player;
pub use drift::{ConstantDrift, Drift}; pub use drift::{ConstantDrift, Drift};
pub use error::InferenceError;
pub use game::Game; pub use game::Game;
pub use gaussian::Gaussian; pub use gaussian::Gaussian;
pub use history::History; pub use history::History;