qualia_core_db/solvers/interpolation/
mod.rs1pub mod lagrange;
12pub mod least_squares;
13pub mod spline;
14
15pub use lagrange::{lagrange_eval, newton_coefficients, newton_eval};
16pub use least_squares::{poly_eval, poly_fit};
17pub use spline::{linear_interp, CubicSpline};
18
19#[derive(Debug, Clone, PartialEq, Eq)]
20pub enum InterpolationError {
21 InsufficientData,
23 DuplicateNodes,
25 InvalidDegree,
27 Singular,
29}
30
31impl core::fmt::Display for InterpolationError {
32 fn fmt(&self, f: &mut core::fmt::Formatter<'_>) -> core::fmt::Result {
33 match self {
34 InterpolationError::InsufficientData => write!(f, "insufficient interpolation data"),
35 InterpolationError::DuplicateNodes => write!(f, "duplicate interpolation nodes"),
36 InterpolationError::InvalidDegree => write!(f, "invalid fit degree"),
37 InterpolationError::Singular => write!(f, "singular linear system"),
38 }
39 }
40}
41impl std::error::Error for InterpolationError {}