pub mod adaptation_bus;
pub mod auto_builder;
pub mod auto_tuner;
pub mod budget;
pub mod cohort;
mod config_space;
mod factories;
mod lipschitz_verification;
pub mod meta_learner;
pub mod racing;
mod reward;
pub mod space;
pub use adaptation_bus::{
AdaptContext, AdaptationBus, BusError, CriticalGuard, DriftRateAdapter, MetaAdapter,
NoOpAdapter, PlasticityAdapter, ThetaDelta,
};
pub use auto_builder::{
ConfigBounds, ConfigDiagnostics, DiagnosticAdaptor, DiagnosticLearner, FeasibleRegion,
MetaObjective, RaceResults, SmoothAdjustments, StructuralChange, TerminateAfter, WelfordRace,
WelfordStats,
};
#[cfg(feature = "distill")]
#[cfg_attr(docsrs, doc(cfg(feature = "distill")))]
pub use auto_builder::{DistillationConfig, DistillationStats};
pub use auto_tuner::{
AutoTuner, AutoTunerBuilder, AutoTunerConfig, AutoTunerSnapshot, CandidateSnapshot,
};
pub use budget::{ArmBudget, BudgetLedger, BudgetStatus};
pub use cohort::{ChampionCohort, CohortMember, CohortMemberSnapshot, CohortWeight, COHORT_K};
#[allow(deprecated)]
pub use config_space::{ConfigSampler, ConfigSpace, HyperConfig, HyperParam};
pub use factories::{Algorithm, Factory, FactoryError};
pub use meta_learner::{
ComplexityClass, FactoryMetaLearner, MetaLearner, MetaScore, MetaSearch, NoOpMetaLearner,
Objective, SgbtClassificationMetaLearner, SgbtMetaLearner,
};
pub use racing::{
bernstein_compare, bernstein_halfwidth, bernstein_promotion_test, empirical_bernstein_ci,
ewma_bernstein_ci, ArmStats, EwmaWelfordTracker, PromotionVerdict, WelfordTracker,
BERNSTEIN_DELTA, MIN_SAMPLES_FOR_BERNSTEIN,
};
pub use reward::RewardNormalizer;
pub use space::{
categorical, int_range, linear_range, log_range, when, Category, Condition, ConditionBuilder,
Constraint, ParamDef, ParamMap, ParamValue, SamplerError, Scale, SearchSpace,
SearchSpaceBuilder, SpaceError,
};
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
#[non_exhaustive]
pub enum AutoMetric {
MAE,
MSE,
RMSE,
}
pub trait DiagnosticSource {
fn config_diagnostics(&self) -> Option<auto_builder::ConfigDiagnostics>;
}
pub trait ModelFactory: Send + Sync {
fn config_space(&self) -> SearchSpace;
fn create(
&self,
params: &ParamMap,
) -> Result<Box<dyn irithyll_core::learner::StreamingLearner>, FactoryError>;
fn name(&self) -> &str;
fn warmup_hint(&self) -> usize {
0
}
fn complexity_hint(&self) -> usize {
100
}
fn n_features_hint(&self) -> usize {
1
}
fn supports_auto_builder(&self) -> bool {
false
}
}