/usr/include/boost/math/interpolators
NameSizeModeActions
detail/-0755rm
barycentric_rational.hpp38050644editdlrm
cardinal_cubic_b_spline.hpp37150644editdlrm
cardinal_quadratic_b_spline.hpp23470644editdlrm
cardinal_quintic_b_spline.hpp26750644editdlrm
cardinal_trigonometric.hpp14430644editdlrm
catmull_rom.hpp87670644editdlrm
cubic_b_spline.hpp36650644editdlrm
cubic_hermite.hpp34700644editdlrm
makima.hpp59780644editdlrm
pchip.hpp37200644editdlrm
quintic_hermite.hpp36390644editdlrm
septic_hermite.hpp36970644editdlrm
vector_barycentric_rational.hpp28660644editdlrm
whittaker_shannon.hpp12910644editdlrm
Edit: /usr/include/boost/math/interpolators/cubic_hermite.hpp (3470B)
// Copyright Nick Thompson, 2020 // Use, modification and distribution are subject to the // Boost Software License, Version 1.0. // (See accompanying file LICENSE_1_0.txt // or copy at http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_MATH_INTERPOLATORS_CUBIC_HERMITE_HPP #define BOOST_MATH_INTERPOLATORS_CUBIC_HERMITE_HPP #include #include namespace boost::math::interpolators { template class cubic_hermite { public: using Real = typename RandomAccessContainer::value_type; cubic_hermite(RandomAccessContainer && x, RandomAccessContainer && y, RandomAccessContainer && dydx) : impl_(std::make_shared>(std::move(x), std::move(y), std::move(dydx))) {} inline Real operator()(Real x) const { return impl_->operator()(x); } inline Real prime(Real x) const { return impl_->prime(x); } friend std::ostream& operator<<(std::ostream & os, const cubic_hermite & m) { os << *m.impl_; return os; } void push_back(Real x, Real y, Real dydx) { impl_->push_back(x, y, dydx); } int64_t bytes() const { return impl_->bytes() + sizeof(impl_); } std::pair domain() const { return impl_->domain(); } private: std::shared_ptr> impl_; }; template class cardinal_cubic_hermite { public: using Real = typename RandomAccessContainer::value_type; cardinal_cubic_hermite(RandomAccessContainer && y, RandomAccessContainer && dydx, Real x0, Real dx) : impl_(std::make_shared>(std::move(y), std::move(dydx), x0, dx)) {} inline Real operator()(Real x) const { return impl_->operator()(x); } inline Real prime(Real x) const { return impl_->prime(x); } friend std::ostream& operator<<(std::ostream & os, const cardinal_cubic_hermite & m) { os << *m.impl_; return os; } int64_t bytes() const { return impl_->bytes() + sizeof(impl_); } std::pair domain() const { return impl_->domain(); } private: std::shared_ptr> impl_; }; template class cardinal_cubic_hermite_aos { public: using Point = typename RandomAccessContainer::value_type; using Real = typename Point::value_type; cardinal_cubic_hermite_aos(RandomAccessContainer && data, Real x0, Real dx) : impl_(std::make_shared>(std::move(data), x0, dx)) {} inline Real operator()(Real x) const { return impl_->operator()(x); } inline Real prime(Real x) const { return impl_->prime(x); } friend std::ostream& operator<<(std::ostream & os, const cardinal_cubic_hermite_aos & m) { os << *m.impl_; return os; } int64_t bytes() const { return impl_->bytes() + sizeof(impl_); } std::pair domain() const { return impl_->domain(); } private: std::shared_ptr> impl_; }; } #endif