std::array< Real, 2 > values
DualMultiDimensionalInterpolation ADMultiDimensionalInterpolation
MultiDimensionalInterpolationTempl< Real > MultiDimensionalInterpolation
MultiDimensionalInterpolationTempl< ADReal > DualMultiDimensionalInterpolation
This class interpolates multi-dimensional data sets.
bool _degenerate_interpolation
if all dimensions have size one then there is only one value to return this corner case should be sup...
void errorCheck()
checks consistency of the data
void setData(const std::vector< std::vector< Real > > &base_points, const MultiIndex< Real > &data)
sets data but also fixes degenerate dimensions in data
virtual ~MultiDimensionalInterpolationTempl()=default
T multiLinearInterpolation(const std::vector< T > &x) const
This function will take an independent variable input and will return the dependent variable based on...
unsigned int linearSearchHelper(T &x, const std::vector< Real > &vector) const
linear search helper for a single std::vector; note that argument is non-const to handle smaller/larg...
unsigned int _original_dim
original dimension is to allow checks on user inputs for cases where arrays are sliced
unsigned int dim() const
returns the dimensionality of this interpolation object
std::vector< std::vector< Real > > _base_points
void linearSearch(std::vector< T > &values, MultiIndex< Real >::size_type &indices) const
linearSearch finds the indices i_k of the base point such that base_point[d][i_k] <= values[d] < base...
MultiDimensionalInterpolationTempl()
std::vector< bool > _degenerate_index
this variable keeps track on which dimension is degenerate and was removed
Implements a container class for multi-indexed objects with an arbitrary number of indices.
std::vector< unsigned int > size_type