[−][src]Struct peroxide::numerical::spline::CubicSpline
Cubic Spline (Natural)
Implementations
impl CubicSpline
[src]
pub fn from_nodes(node_x: Vec<f64>, node_y: Vec<f64>) -> Self
[src]
Examples
#[macro_use] extern crate peroxide; use peroxide::fuga::*; fn main() { let x = c!(0.9, 1.3, 1.9, 2.1); let y = c!(1.3, 1.5, 1.85, 2.1); let s = CubicSpline::from_nodes(x, y); for i in 0 .. 4 { println!("{}", s.eval(i as f64 / 2.0)); } }
pub fn eval<T>(&self, x: T) -> f64 where
T: Into<f64> + Copy,
[src]
T: Into<f64> + Copy,
Evaluate cubic spline with value
Examples
#[macro_use] extern crate peroxide; use peroxide::fuga::*; fn main() { let x = c!(0.9, 1.3, 1.9, 2.1); let y = c!(1.3, 1.5, 1.85, 2.1); let s = CubicSpline::from_nodes(x, y); s.eval(2.0); }
pub fn polynomial<T>(&self, x: T) -> &Polynomial where
T: Into<f64> + Copy,
[src]
T: Into<f64> + Copy,
Returns a reference the Polynomial
at the given point x
.
Examples
#[macro_use] extern crate peroxide; use peroxide::fuga::*; fn main() { let x = c!(0.9, 1.3, 1.9, 2.1); let y = c!(1.3, 1.5, 1.85, 2.1); let s = CubicSpline::from_nodes(x, y); let p = s.polynomial(2.0); let v = p.eval(1.9); assert_eq!((v * 100.0).round() / 100.0, 1.85) }
If x
is outside of the range of polynomials, the first or last polynomial will be
returned, depending if x
is lower of the first interpolation point or higher of the last
interpolation point.
pub fn extend_with_nodes(&mut self, node_x: Vec<f64>, node_y: Vec<f64>)
[src]
Extends the spline with the given nodes.
The method ensures that the transition between each polynomial is smooth and that the spline
interpolation of the new nodes is calculated around x = 0
in order to avoid that
successive spline extensions with large x values become inaccurate.
pub fn number_of_polynomials(&self) -> usize
[src]
Returns the number of polynimials that describe the CubicSpline
Examples
#[macro_use] extern crate peroxide; use peroxide::fuga::*; fn main() { let x = c!(0.9, 1.3, 1.9, 2.1); let y = c!(1.3, 1.5, 1.85, 2.1); let s = CubicSpline::from_nodes(x, y); assert_eq!(s.number_of_polynomials(), 3); }
Trait Implementations
impl Calculus for CubicSpline
[src]
impl Clone for CubicSpline
[src]
fn clone(&self) -> CubicSpline
[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]
impl Debug for CubicSpline
[src]
impl Default for CubicSpline
[src]
fn default() -> CubicSpline
[src]
impl Environment for CubicSpline
[src]
impl From<Vec<(Range<f64>, Polynomial)>> for CubicSpline
[src]
impl Index<usize> for CubicSpline
[src]
type Output = (Range<f64>, Polynomial)
The returned type after indexing.
fn index(&self, index: usize) -> &Self::Output
[src]
impl Into<Vec<(Range<f64>, Polynomial)>> for CubicSpline
[src]
impl Into<Vec<Polynomial>> for CubicSpline
[src]
fn into(self) -> Vec<Polynomial>
[src]
Auto Trait Implementations
impl RefUnwindSafe for CubicSpline
impl Send for CubicSpline
impl Sync for CubicSpline
impl Unpin for CubicSpline
impl UnwindSafe for CubicSpline
Blanket Implementations
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T> ToOwned for T where
T: Clone,
[src]
T: Clone,
type Owned = T
The resulting type after obtaining ownership.
fn to_owned(&self) -> T
[src]
fn clone_into(&self, target: &mut T)
[src]
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
V: MultiLane<T>,