1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
//! Voronoi-based interpolation methods
//!
//! This module provides interpolation methods based on Voronoi diagrams, which
//! partition space into regions where each region contains all points closest
//! to a particular input site.
//!
//! Voronoi-based interpolation is particularly useful for:
//! - Scattered data with irregular spacing
//! - Data where sharp transitions need to be preserved
//! - Applications requiring natural neighbor interpolation
//! - Problems with piecewise-constant or locally varying behavior
//!
//! The module includes:
//! - Natural Neighbor interpolation
//! - Sibson interpolation (a specific type of natural neighbor)
//! - Laplace interpolation (non-Sibsonian natural neighbor)
//! - Voronoi-based gradient estimation
//!
//! # Examples
//!
//! ```rust
//! use scirs2_core::ndarray::{Array1, Array2};
//! use scirs2_interpolate::voronoi::{
//! NaturalNeighborInterpolator, InterpolationMethod
//! };
//!
//! // Create some scattered 2D data
//! let points = Array2::from_shape_vec((5, 2), vec![
//! 0.0, 0.0,
//! 1.0, 0.0,
//! 0.0, 1.0,
//! 1.0, 1.0,
//! 0.5, 0.5,
//! ]).expect("doc example: should succeed");
//! let values = Array1::from_vec(vec![0.0, 1.0, 1.0, 2.0, 1.5]);
//!
//! // Create natural neighbor interpolator
//! let interpolator = NaturalNeighborInterpolator::new(
//! points,
//! values,
//! InterpolationMethod::Sibson,
//! ).expect("doc example: should succeed");
//!
//! // Interpolate at a query point
//! let query = Array1::from_vec(vec![0.25, 0.25]);
//! let result = interpolator.interpolate(&query.view()).expect("doc example: should succeed");
//! ```
// Simply re-export the modules since they're already defined below
// Re-export submodules
// Re-export main types
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;