scirs2_integrate/realtime_performance_adaptation/
algorithm_selector.rs1use super::types::*;
7use crate::common::IntegrateFloat;
8use crate::error::{IntegrateError, IntegrateResult};
9
10impl<F: IntegrateFloat> AdaptiveAlgorithmSelector<F> {
11 pub fn new() -> Self {
13 Self {
14 algorithm_registry: AlgorithmRegistry::default(),
15 selection_criteria: SelectionCriteria::default(),
16 switching_policies: SwitchingPolicies::default(),
17 algorithm_models: std::collections::HashMap::new(),
18 }
19 }
20
21 pub fn select_algorithm(&self, metrics: &PerformanceMetrics) -> IntegrateResult<String> {
23 Ok("default".to_string())
25 }
26
27 pub fn register_algorithm(
29 &mut self,
30 _name: String,
31 _characteristics: AlgorithmCharacteristics<F>,
32 ) -> IntegrateResult<()> {
33 Ok(())
35 }
36}
37
38impl<F: IntegrateFloat + Default> Default for AdaptiveAlgorithmSelector<F> {
39 fn default() -> Self {
40 Self::new()
41 }
42}