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
//! Advanced interpolation methods for specialized use cases.
//!
//! This module provides sophisticated interpolation algorithms that go beyond basic
//! linear and polynomial methods. These methods are designed for specific types of
//! interpolation problems and data characteristics.
//!
//! ## Available Methods
//!
//! ### Scattered Data Interpolation
//! - **`RBFInterpolator`** - Radial Basis Function interpolation for irregular data
//! - **`EnhancedRBFInterpolator`** - RBF with automatic parameter selection
//! - **`ThinPlateSpline`** - Smooth interpolation minimizing bending energy
//!
//! ### Uncertainty Quantification
//! - **`KrigingInterpolator`** - Gaussian process regression with error estimates
//! - **`EnhancedKriging`** - Advanced kriging with directional correlations
//! - **`FastKriging`** - Scalable kriging for large datasets
//!
//! ### Robust Methods
//! - **`AkimaSpline`** - Robust spline interpolation with outlier resistance
//! - **`BarycentricInterpolator`** - Numerically stable polynomial interpolation
//!
//! ## Choosing the Right Method
//!
//! ### For Scattered 2D/3D Data
//! ```rust
//! use scirs2_interpolate::advanced::rbf::{RBFInterpolator, RBFKernel};
//! // Use RBF with Gaussian kernel for smooth functions
//! // Use Thin Plate Spline for natural-looking surfaces
//! ```
//!
//! ### When You Need Uncertainty Estimates
//! ```rust
//! use scirs2_interpolate::advanced::kriging::KrigingInterpolator;
//! // Kriging provides both interpolated values and confidence intervals
//! ```
//!
//! ### For Noisy or Outlier-Prone Data
//! ```rust
//! use scirs2_interpolate::advanced::akima::AkimaSpline;
//! // Akima splines are less sensitive to outliers than cubic splines
//! ```
//!
//! ## Performance Considerations
//!
//! | Method | Construction Time | Evaluation Time | Memory Usage | Best For |
//! |--------|------------------|-----------------|--------------|----------|
//! | RBF | O(n³) | O(n) | O(n²) | Small to medium datasets |
//! | Kriging | O(n³) | O(n) | O(n²) | When uncertainty is needed |
//! | Fast Kriging | O(n log n) | O(log n) | O(n) | Large datasets |
//! | Thin Plate | O(n³) | O(n) | O(n²) | Smooth natural surfaces |
//! | Akima | O(n) | O(log n) | O(n) | 1D robust interpolation |
// Fast Kriging algorithms for large datasets
// Currently using a reexport with defined API but placeholder implementations
// This module is under active development with algorithms being optimized
// Full implementations will be available in future updates
// Aliasing to maintain API compatibility
pub use fast_kriging_reexports as fast_kriging;