use crate::DType;
use crate::interpolate::error::InterpolateResult;
use crate::spatial::traits::delaunay::Delaunay;
use numr::runtime::Runtime;
use numr::tensor::Tensor;
#[derive(Debug, Clone)]
pub struct CloughTocher2D<R: Runtime<DType = DType>> {
pub triangulation: Delaunay<R>,
pub values: Tensor<R>,
pub gradients: Tensor<R>,
pub fill_value: f64,
}
pub trait CloughTocher2DAlgorithms<R: Runtime<DType = DType>> {
fn clough_tocher_fit(
&self,
points: &Tensor<R>,
values: &Tensor<R>,
fill_value: f64,
) -> InterpolateResult<CloughTocher2D<R>>;
fn clough_tocher_evaluate(
&self,
ct: &CloughTocher2D<R>,
xi: &Tensor<R>,
) -> InterpolateResult<Tensor<R>>;
}