pub mod bicubic;
pub mod bilinear;
pub mod cubic;
pub mod flat;
pub mod linear;
pub mod loglinear;
use crate::errors::QlResult;
use crate::types::Real;
pub trait Interpolation {
fn value(&self, x: Real) -> QlResult<Real>;
fn derivative(&self, x: Real) -> QlResult<Real>;
fn primitive(&self, x: Real) -> QlResult<Real>;
fn x_min(&self) -> Real;
fn x_max(&self) -> Real;
fn is_in_range(&self, x: Real) -> bool;
}
pub trait Interpolation2D {
fn value(&self, x: Real, y: Real) -> QlResult<Real>;
fn x_min(&self) -> Real;
fn x_max(&self) -> Real;
fn y_min(&self) -> Real;
fn y_max(&self) -> Real;
fn is_in_range(&self, x: Real, y: Real) -> bool;
}