Skip to main content

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}