Struct peroxide::numerical::spline::CubicBSplineBases
source · pub struct CubicBSplineBases {
pub ranges: Vec<Range<f64>>,
pub bases: Vec<UnitCubicBasis>,
}
Expand description
Uniform Cubic B-Spline basis functions
§Example
use peroxide::fuga::*;
use core::ops::Range;
fn main() -> anyhow::Result<()> {
let cubic_b_spline = CubicBSplineBases::from_interval((0f64, 1f64), 5);
let x = linspace(0f64, 1f64, 1000);
let y = cubic_b_spline.eval_vec(&x);
let mut plt = Plot2D::new();
plt.set_domain(x.clone());
for basis in &cubic_b_spline.bases {
plt.insert_image(basis.eval_vec(&x));
}
plt
.insert_image(y)
.set_xlabel(r"$x$")
.set_ylabel(r"$y$")
.set_style(PlotStyle::Nature)
.tight_layout()
.set_dpi(600)
.set_path("example_data/cubic_b_spline.png")
.savefig()?;
Ok(())
}
Fields§
§ranges: Vec<Range<f64>>
§bases: Vec<UnitCubicBasis>
Implementations§
source§impl CubicBSplineBases
impl CubicBSplineBases
sourcepub fn new(ranges: Vec<Range<f64>>, bases: Vec<UnitCubicBasis>) -> Self
pub fn new(ranges: Vec<Range<f64>>, bases: Vec<UnitCubicBasis>) -> Self
Create new Cubic B-Spline basis functions
sourcepub fn from_interval((a, b): (f64, f64), num_bases: usize) -> Self
pub fn from_interval((a, b): (f64, f64), num_bases: usize) -> Self
Create new Cubic B-Spline basis functions for [a, b]
pub fn eval(&self, x: f64) -> f64
pub fn eval_vec(&self, x: &[f64]) -> Vec<f64>
Trait Implementations§
source§impl Clone for CubicBSplineBases
impl Clone for CubicBSplineBases
source§fn clone(&self) -> CubicBSplineBases
fn clone(&self) -> CubicBSplineBases
Returns a copy of the value. Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source
. Read moreAuto Trait Implementations§
impl Freeze for CubicBSplineBases
impl RefUnwindSafe for CubicBSplineBases
impl Send for CubicBSplineBases
impl Sync for CubicBSplineBases
impl Unpin for CubicBSplineBases
impl UnwindSafe for CubicBSplineBases
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more