mod evaluation;
mod lagrange;
mod standard;
pub use evaluation::*;
pub use lagrange::*;
pub use standard::*;
pub trait Polynomial<I, O> {
fn evaluate(&self, input: I) -> O;
fn degree(&self) -> usize;
fn interpolation_threshold(&self) -> usize {
self.degree() + 1
}
}