Struct peroxide::numerical::spline::CubicSpline [−][src]
pub struct CubicSpline { /* fields omitted */ }
Expand description
Cubic Spline (Natural)
Description
Implement traits of Natural cubic splines, by Arne Morten Kvarving.
Type
(&Vec
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 new_x = c!(1, 1.5, 2.0); // Generate Cubic polynomial for t in new_x.iter() { s.polynomial(*t).print(); } // -0.2347x^3 + 0.6338x^2 - 0.0329x + 0.9873 // 0.9096x^3 - 3.8292x^2 + 5.7691x - 1.5268 // -2.2594x^3 + 14.2342x^2 - 28.5513x + 20.2094 // Evaluation for t in new_x.iter() { s.eval(*t).print(); } }
Implementations
impl CubicSpline
[src]
impl CubicSpline
[src]pub fn from_nodes(node_x: Vec<f64>, node_y: Vec<f64>) -> Self
[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]
pub fn eval<T>(&self, x: T) -> f64 where
T: Into<f64> + Copy,
[src]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]
pub fn polynomial<T>(&self, x: T) -> &Polynomial where
T: Into<f64> + Copy,
[src]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]
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]
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 Clone for CubicSpline
[src]
impl Clone for CubicSpline
[src]fn clone(&self) -> CubicSpline
[src]
fn clone(&self) -> CubicSpline
[src]Returns a copy of the value. Read more
fn clone_from(&mut self, source: &Self)
1.0.0[src]
fn clone_from(&mut self, source: &Self)
1.0.0[src]Performs copy-assignment from source
. Read more
impl Debug for CubicSpline
[src]
impl Debug for CubicSpline
[src]impl Default for CubicSpline
[src]
impl Default for CubicSpline
[src]fn default() -> CubicSpline
[src]
fn default() -> CubicSpline
[src]Returns the “default value” for a type. Read more
impl From<Vec<(Range<f64>, Polynomial), Global>> for CubicSpline
[src]
impl From<Vec<(Range<f64>, Polynomial), Global>> for CubicSpline
[src]impl Index<usize> for CubicSpline
[src]
impl Index<usize> for CubicSpline
[src]impl Into<Vec<(Range<f64>, Polynomial), Global>> for CubicSpline
[src]
impl Into<Vec<(Range<f64>, Polynomial), Global>> for CubicSpline
[src]impl Into<Vec<Polynomial, Global>> for CubicSpline
[src]
impl Into<Vec<Polynomial, Global>> for CubicSpline
[src]fn into(self) -> Vec<Polynomial>
[src]
fn into(self) -> Vec<Polynomial>
[src]Performs the conversion.
impl Environment for CubicSpline
[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> BorrowMut<T> for T where
T: ?Sized,
[src]
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]pub fn borrow_mut(&mut self) -> &mut T
[src]
pub fn borrow_mut(&mut self) -> &mut T
[src]Mutably borrows from an owned value. Read more
impl<T> ToOwned for T where
T: Clone,
[src]
impl<T> ToOwned for T where
T: Clone,
[src]type Owned = T
type Owned = T
The resulting type after obtaining ownership.
pub fn to_owned(&self) -> T
[src]
pub fn to_owned(&self) -> T
[src]Creates owned data from borrowed data, usually by cloning. Read more
pub fn clone_into(&self, target: &mut T)
[src]
pub fn clone_into(&self, target: &mut T)
[src]🔬 This is a nightly-only experimental API. (toowned_clone_into
)
recently added
Uses borrowed data to replace owned data, usually by cloning. Read more
impl<V, T> VZip<V> for T where
V: MultiLane<T>,
impl<V, T> VZip<V> for T where
V: MultiLane<T>,