|
Metis 2.0.0
High-performance C++20 dual-mode numerical framework
|
N-dimensional interpolation (linear, Hermite, B-spline, nearest). More...
#include "metis/core/MetisConcepts.hpp"#include "metis/core/MetisError.hpp"#include "metis/core/MetisTypes.hpp"#include "metis/math/Linalg.hpp"#include <algorithm>#include <casadi/casadi.hpp>#include <cmath>#include <optional>#include <vector>

Go to the source code of this file.
Classes | |
| struct | metis::ExtrapolationConfig |
| Configuration for extrapolation behavior. More... | |
| struct | metis::detail::InterpnGridData |
| class | metis::Interpolator |
Namespaces | |
| namespace | metis |
| namespace | metis::detail |
| Smooth approximation of ReLU function: softplus(x) = (1/beta) * log(1 + exp(beta * x)). | |
Enumerations | |
| enum class | metis::InterpolationMethod { metis::Linear , metis::Hermite , metis::BSpline , metis::Nearest } |
| Supported interpolation methods. More... | |
| enum class | metis::ExtrapolationMode { metis::Clamp , metis::Linear } |
| Controls behavior when query points fall outside grid bounds. More... | |
Functions | |
| std::string | metis::detail::method_to_casadi_string (InterpolationMethod method) |
| Convert InterpolationMethod enum to CasADi string. | |
| const char * | metis::detail::hermite_symbolic_error_message () |
| template<typename Derived> | |
| MetisVector< typename Derived::Scalar > | metis::detail::flatten_fortran_order (const Eigen::MatrixBase< Derived > &values) |
| Flatten N-D values array in Fortran order for CasADi. | |
| std::string | metis::detail::symbolic_values_method_error_message (InterpolationMethod method) |
| InterpnGridData | metis::detail::build_interpn_grid (const std::vector< NumericVector > &points, const char *context) |
| void | metis::detail::validate_bspline_grid (const std::vector< std::vector< double > > &grid, const char *context) |
| template<MetisScalar Scalar> | |
| MetisMatrix< Scalar > | metis::detail::normalize_query_matrix (const MetisMatrix< Scalar > &xi, int n_dims, const char *context) |
| template<MetisScalar Scalar> | |
| SymbolicScalar | metis::detail::clamp_query_point (const MetisVector< Scalar > &point, const std::vector< std::vector< double > > &grid) |
| template<MetisScalar Scalar> | |
| bool | metis::detail::point_out_of_bounds_numeric (const MetisVector< Scalar > &point, const std::vector< std::vector< double > > &grid) |
| SymbolicScalar | metis::detail::point_out_of_bounds_symbolic (const SymbolicVector &point, const std::vector< std::vector< double > > &grid) |
| casadi::Function | metis::detail::make_parametric_interpolant (const std::vector< std::vector< double > > &grid, InterpolationMethod method) |
| double | metis::detail::catmull_rom_slope (const std::vector< double > &x, const std::vector< double > &y, size_t i) |
| Compute Catmull-Rom slope at a point using neighboring values. | |
| double | metis::detail::hermite_interp_1d_numeric (const std::vector< double > &x, const std::vector< double > &y, double query) |
| Evaluate 1D Catmull-Rom cubic Hermite spline (numeric only). | |
| std::vector< int > | metis::detail::flat_to_multi_index (int flat_idx, const std::vector< int > &dims) |
| Compute multi-dimensional index from flat index (Fortran order). | |
| int | metis::detail::multi_to_flat_index (const std::vector< int > &multi, const std::vector< int > &dims) |
| Compute flat index from multi-dimensional index (Fortran order). | |
| double | metis::detail::hermite_interpn_numeric (const std::vector< std::vector< double > > &grid, const std::vector< double > &values, const std::vector< double > &query) |
| N-dimensional Catmull-Rom interpolation via tensor product (numeric only). | |
| template<typename Scalar> | |
| MetisVector< Scalar > | metis::interpn (const std::vector< NumericVector > &points, const NumericVector &values_flat, const MetisMatrix< Scalar > &xi, InterpolationMethod method=InterpolationMethod::Linear, std::optional< Scalar > fill_value=std::nullopt) |
| N-dimensional interpolation on regular grids (backwards compatibility). | |
| template<typename Scalar> | |
| SymbolicVector | metis::interpn (const std::vector< NumericVector > &points, const SymbolicVector &values_flat, const MetisMatrix< Scalar > &xi, InterpolationMethod method=InterpolationMethod::Linear, std::optional< SymbolicScalar > fill_value=std::nullopt) |
| N-dimensional interpolation with symbolic table values. | |
N-dimensional interpolation (linear, Hermite, B-spline, nearest).