solver/analytical/traits.rs
1use crate::models::traits::ControlOutput;
2
3pub trait AnalyticalSolution<const N: usize> {
4 /// Returns the theoretical value function V(t, state)
5 fn value_function(&self, t: f64, state: &[f64; N]) -> f64;
6
7 /// Returns the optimal controls (intensities/spreads) at (t, state)
8 fn optimal_controls(&self, t: f64, state: &[f64; N]) -> ControlOutput<N>;
9}