Skip to main content

wm_simulation/
lib.rs

1//! wm-simulation — Monte Carlo simulation, counterfactual estimation, forecasting,
2//! and prediction calibration.
3//!
4//! **N21**: Ports v2's `wm-evolution` MC suite capabilities for v4:
5//!
6//! - **Monte Carlo simulation** — Bayesian MC, Quasi-MC, sensitivity analysis
7//! - **Counterfactual estimation** — synthetic control projection for causal impact
8//! - **Forecasting** — time series forecasting with confidence intervals
9//! - **Prediction calibration** — Brier scorecard with the Murphy decomposition
10//! - **Bayesian optimization** — GP surrogates + Expected Improvement search
11//! - **Information-theoretic measures** — entropy, mutual information
12//!
13//! This enables the SelfModel to forecast outcomes, the Dream cycle to
14//! simulate counterfactuals, and the Homeostatic loop to simulate action
15//! consequences before executing them.
16
17#![forbid(unsafe_code)]
18
19pub mod bayesian;
20pub mod calibration;
21pub mod claims;
22pub mod counterfactual;
23pub mod forecasting;
24pub mod monte_carlo;
25pub mod pce;
26pub mod rare_event;
27pub mod sde;
28pub mod sensitivity;
29
30pub use bayesian::{
31    BayesianOptimizer, Expr, GaussianProcess, OptimizationStep, expected_improvement, norm_cdf,
32    norm_pdf,
33};
34pub use calibration::{BrierScorecard, CalibrationBin, CalibrationPrediction, CalibrationStore};
35pub use claims::{CALIBRATION_PRIOR_SAMPLES, Claim, ClaimStatus, ClaimsLedger, ValidationEvent};
36pub use counterfactual::{CounterfactualEstimator, CounterfactualResult};
37pub use forecasting::{ForecastMethod, ForecastResult, Forecaster};
38pub use monte_carlo::{Distribution, McConfig, McResult, MonteCarloSimulator};
39pub use pce::{Pce, SuperforecasterResult, latin_hypercube, superforecaster};
40pub use rare_event::{ImportanceResult, SubsetResult, importance_sampling, subset_simulation};
41pub use sde::{DriftType, MlMcResult, SdeConfig, SdeResult, Solver, solve, solve_mlmc};
42pub use sensitivity::{SensitivityAnalyzer, SensitivityIndex, SensitivityResult};