← Back

Module interpolate

enum InterpolationMethod

Source: interpolate.joule:12

enum ExtrapolationMode

Source: interpolate.joule:33

struct Interp1d

1D interpolator

Source: interpolate.joule:47

struct SplineCoeffs

Cubic spline coefficients

Source: interpolate.joule:57

fn new(x: &[f64], y: &[f64], method: InterpolationMethod) -> Self

Source: interpolate.joule:67

fn extrapolate(mut self, mode: ExtrapolationMode) -> Self

Set extrapolation mode

Source: interpolate.joule:96

fn eval(&self, xi: f64) -> f64

Source: interpolate.joule:103

fn eval_array(&self, xi: &[f64]) -> Vec<f64>

Source: interpolate.joule:128

fn derivative(&self, xi: f64, order: usize) -> f64

Source: interpolate.joule:134

fn integral(&self, a: f64, b: f64) -> f64

Source: interpolate.joule:170

fn find_interval(&self, xi: f64) -> usize

Source: interpolate.joule:218

fn linear_interp(&self, i: usize, xi: f64) -> f64

Source: interpolate.joule:226

fn nearest_interp(&self, i: usize, xi: f64) -> f64

Source: interpolate.joule:231

fn spline_interp(&self, i: usize, xi: f64) -> f64

Source: interpolate.joule:239

fn lagrange_interp(&self, xi: f64) -> f64

Source: interpolate.joule:248

fn extrapolate_value(&self, xi: f64) -> f64

Source: interpolate.joule:265

fn compute_natural_spline(x: &[f64], y: &[f64]) -> SplineCoeffs

Compute natural cubic spline coefficients

Source: interpolate.joule:310

fn compute_not_a_knot_spline(x: &[f64], y: &[f64]) -> SplineCoeffs

Compute not-a-knot cubic spline

Source: interpolate.joule:358

fn compute_akima_spline(x: &[f64], y: &[f64]) -> SplineCoeffs

Compute Akima spline (less oscillation)

Source: interpolate.joule:365

fn compute_pchip(x: &[f64], y: &[f64]) -> SplineCoeffs

Compute PCHIP (monotone preserving)

Source: interpolate.joule:416

fn pchip_end_derivative(h1: f64, h2: f64, del1: f64, del2: f64) -> f64

Source: interpolate.joule:461

enum Interp2dMethod

Source: interpolate.joule:479

struct Interp2d

Regular grid 2D interpolator

Source: interpolate.joule:489

fn new(x: &[f64], y: &[f64], z: &[Vec<f64>], method: Interp2dMethod) -> Self

Source: interpolate.joule:499

fn eval(&self, xi: f64, yi: f64) -> f64

Source: interpolate.joule:515

fn eval_array(&self, xi: &[f64], yi: &[f64]) -> Vec<f64>

Source: interpolate.joule:525

fn find_interval(arr: &[f64], val: f64) -> usize

Source: interpolate.joule:529

fn bilinear(&self, xi: f64, yi: f64) -> f64

Source: interpolate.joule:536

fn nearest(&self, xi: f64, yi: f64) -> f64

Source: interpolate.joule:562

fn bicubic(&self, xi: f64, yi: f64) -> f64

Source: interpolate.joule:572

fn cubic_interp(t: f64, p0: f64, p1: f64, p2: f64, p3: f64) -> f64

Cubic interpolation helper

Source: interpolate.joule:604

struct Interp2dScattered

Scattered data interpolation

Source: interpolate.joule:614

enum ScatteredMethod

Source: interpolate.joule:622

enum RbfKernel

Source: interpolate.joule:633

fn new(points: &[(f64, f64)], values: &[f64], method: ScatteredMethod) -> Self

Source: interpolate.joule:649

fn eval(&self, x: f64, y: f64) -> f64

Source: interpolate.joule:661

fn idw_interp(&self, x: f64, y: f64, power: f64) -> f64

Source: interpolate.joule:669

fn rbf_interp(&self, x: f64, y: f64, kernel: RbfKernel) -> f64

Source: interpolate.joule:688

fn linear_interp(&self, x: f64, y: f64) -> f64

Source: interpolate.joule:708

fn eval(&self, r: f64) -> f64

Source: interpolate.joule:727

struct BSpline

B-spline curve

Source: interpolate.joule:749

fn new(control_points: &[f64], degree: usize) -> Self

Source: interpolate.joule:761

fn with_knots(control_points: &[f64], knots: &[f64], degree: usize) -> Self

Create B-spline with custom knot vector

Source: interpolate.joule:789

fn eval(&self, t: f64) -> f64

Source: interpolate.joule:801

fn basis(&self, i: usize, k: usize, t: f64) -> f64

B-spline basis function (Cox-de Boor recursion)

Source: interpolate.joule:814

fn derivative(&self, t: f64) -> f64

Source: interpolate.joule:842

fn basis_deriv(&self, i: usize, k: usize, t: f64) -> f64

Source: interpolate.joule:871

struct BSpline2d

2D B-spline curve (parametric)

Source: interpolate.joule:898

fn new(control_x: &[f64], control_y: &[f64], degree: usize) -> Self

Source: interpolate.joule:906

fn eval(&self, t: f64) -> (f64, f64)

Source: interpolate.joule:917

fn sample(&self, num_points: usize) -> Vec<(f64, f64)>

Source: interpolate.joule:923

struct Polynomial

Source: interpolate.joule:939

fn new(coeffs: &[f64]) -> Self

Create polynomial from coefficients

Source: interpolate.joule:945

fn fit(x: &[f64], y: &[f64], degree: usize) -> Self

Source: interpolate.joule:953

fn eval(&self, x: f64) -> f64

Source: interpolate.joule:988

fn eval_array(&self, x: &[f64]) -> Vec<f64>

Source: interpolate.joule:999

fn derivative(&self) -> Polynomial

Get derivative polynomial

Source: interpolate.joule:1004

fn antiderivative(&self) -> Polynomial

Get antiderivative polynomial (constant = 0)

Source: interpolate.joule:1019

fn roots(&self) -> Vec<f64>

Source: interpolate.joule:1029

fn newton_root(&self, x0: f64, deriv: &Polynomial) -> Option<f64>

Source: interpolate.joule:1078

fn solve_system(a: &[Vec<f64>], b: &[f64]) -> Option<Vec<f64>>

Source: interpolate.joule:1105

fn interp(x: &[f64], y: &[f64], xi: f64) -> f64

Source: interpolate.joule:1157

fn interp_array(x: &[f64], y: &[f64], xi: &[f64]) -> Vec<f64>

Source: interpolate.joule:1163

fn spline(x: &[f64], y: &[f64], xi: &[f64]) -> Vec<f64>

Source: interpolate.joule:1170

fn polyinterp(x: &[f64], y: &[f64], xi: f64) -> f64

Source: interpolate.joule:1177

fn polyfit(x: &[f64], y: &[f64], degree: usize) -> Vec<f64>

Source: interpolate.joule:1183

fn polyval(coeffs: &[f64], x: f64) -> f64

Source: interpolate.joule:1189

fn test_linear_interp()

Source: interpolate.joule:1202

fn test_cubic_spline()

Source: interpolate.joule:1213

fn test_polynomial_fit()

Source: interpolate.joule:1226

fn test_bspline()

Source: interpolate.joule:1239