Janus 2.0.0
High-performance C++20 dual-mode numerical framework
Loading...
Searching...
No Matches
janus::Interpolator Class Reference

#include <Interpolate.hpp>

Public Member Functions

 Interpolator ()=default
 Default constructor (invalid state).
 Interpolator (const std::vector< NumericVector > &points, const NumericVector &values, InterpolationMethod method=InterpolationMethod::Linear)
 Construct N-dimensional interpolator.
 Interpolator (const NumericVector &x, const NumericVector &y, InterpolationMethod method=InterpolationMethod::Linear)
 Construct 1D interpolator (convenience overload).
 Interpolator (const std::vector< NumericVector > &points, const NumericVector &values, InterpolationMethod method, ExtrapolationConfig extrap)
 Construct N-dimensional interpolator with extrapolation config.
 Interpolator (const NumericVector &x, const NumericVector &y, InterpolationMethod method, ExtrapolationConfig extrap)
int dims () const
 Get number of dimensions.
InterpolationMethod method () const
 Get the interpolation method.
bool valid () const
 Check if interpolator is valid (initialized).
template<JanusScalar Scalar>
Scalar operator() (const Scalar &query) const
 Evaluate interpolant at a scalar point (1D only).
template<JanusScalar Scalar>
Scalar operator() (const JanusVector< Scalar > &query) const
 Evaluate N-D interpolant at a single point.
template<typename Derived>
auto operator() (const Eigen::MatrixBase< Derived > &queries) const -> JanusVector< typename Derived::Scalar >
 Evaluate interpolant at multiple points.

Detailed Description

Examples
1D, and N-D.

Constructor & Destructor Documentation

◆ Interpolator() [1/5]

janus::Interpolator::Interpolator ( )
default

Default constructor (invalid state).

Examples
/home/runner/work/janus/janus/include/janus/math/Interpolate.hpp.

◆ Interpolator() [2/5]

janus::Interpolator::Interpolator ( const std::vector< NumericVector > & points,
const NumericVector & values,
InterpolationMethod method = InterpolationMethod::Linear )
inline

Construct N-dimensional interpolator.

Parameters
pointsVector of 1D coordinate arrays for each dimension
valuesFlattened values in Fortran order (column-major)
methodInterpolation method (default: Linear)
Exceptions
InterpolationErrorif inputs are invalid

◆ Interpolator() [3/5]

janus::Interpolator::Interpolator ( const NumericVector & x,
const NumericVector & y,
InterpolationMethod method = InterpolationMethod::Linear )
inline

Construct 1D interpolator (convenience overload).

This is syntactic sugar for the N-D constructor with N=1.

Parameters
xGrid points (must be sorted)
yFunction values at grid points
methodInterpolation method (default: Linear)
Exceptions
InterpolationErrorif inputs are invalid

◆ Interpolator() [4/5]

janus::Interpolator::Interpolator ( const std::vector< NumericVector > & points,
const NumericVector & values,
InterpolationMethod method,
ExtrapolationConfig extrap )
inline

Construct N-dimensional interpolator with extrapolation config.

Parameters
pointsVector of 1D coordinate arrays for each dimension
valuesFlattened values in Fortran order (column-major)
methodInterpolation method
extrapExtrapolation configuration
Exceptions
InterpolationErrorif inputs are invalid

◆ Interpolator() [5/5]

janus::Interpolator::Interpolator ( const NumericVector & x,
const NumericVector & y,
InterpolationMethod method,
ExtrapolationConfig extrap )
inline

Member Function Documentation

◆ dims()

int janus::Interpolator::dims ( ) const
inline

◆ method()

InterpolationMethod janus::Interpolator::method ( ) const
inline

◆ operator()() [1/3]

template<typename Derived>
auto janus::Interpolator::operator() ( const Eigen::MatrixBase< Derived > & queries) const->JanusVector< typenameDerived::Scalar >
inline

Evaluate interpolant at multiple points.

For 1D interpolators, pass a vector of query points. For N-D interpolators, pass (n_points, n_dims) matrix.

Template Parameters
DerivedEigen expression type
Parameters
queriesQuery points (vector for 1D, matrix for N-D)
Returns
Vector of interpolated values

◆ operator()() [2/3]

template<JanusScalar Scalar>
Scalar janus::Interpolator::operator() ( const JanusVector< Scalar > & query) const
inline

Evaluate N-D interpolant at a single point.

For N≥2 interpolators, pass a vector of coordinates. For 1D, use scalar overload or batch query.

Template Parameters
ScalarScalar type (double or SymbolicScalar)
Parameters
queryQuery point (size must match dims())
Returns
Interpolated scalar value

◆ operator()() [3/3]

template<JanusScalar Scalar>
Scalar janus::Interpolator::operator() ( const Scalar & query) const
inline

Evaluate interpolant at a scalar point (1D only).

Template Parameters
ScalarScalar type (double or SymbolicScalar)
Parameters
queryQuery point
Returns
Interpolated value
Exceptions
InterpolationErrorif not 1D or not initialized
Examples
/home/runner/work/janus/janus/include/janus/math/Interpolate.hpp.

◆ valid()

bool janus::Interpolator::valid ( ) const
inline

Check if interpolator is valid (initialized).

Examples
/home/runner/work/janus/janus/include/janus/math/Interpolate.hpp.

The documentation for this class was generated from the following file: