summaryrefslogtreecommitdiff
path: root/boost/math/interpolators/barycentric_rational.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'boost/math/interpolators/barycentric_rational.hpp')
-rw-r--r--boost/math/interpolators/barycentric_rational.hpp20
1 files changed, 20 insertions, 0 deletions
diff --git a/boost/math/interpolators/barycentric_rational.hpp b/boost/math/interpolators/barycentric_rational.hpp
index 4ca5891719..9b4c90e08d 100644
--- a/boost/math/interpolators/barycentric_rational.hpp
+++ b/boost/math/interpolators/barycentric_rational.hpp
@@ -36,6 +36,8 @@ class barycentric_rational
public:
barycentric_rational(const Real* const x, const Real* const y, size_t n, size_t approximation_order = 3);
+ barycentric_rational(std::vector<Real>&& x, std::vector<Real>&& y, size_t approximation_order = 3);
+
template <class InputIterator1, class InputIterator2>
barycentric_rational(InputIterator1 start_x, InputIterator1 end_x, InputIterator2 start_y, size_t approximation_order = 3, typename boost::disable_if_c<boost::is_integral<InputIterator2>::value>::type* = 0);
@@ -43,6 +45,16 @@ public:
Real prime(Real x) const;
+ std::vector<Real>&& return_x()
+ {
+ return m_imp->return_x();
+ }
+
+ std::vector<Real>&& return_y()
+ {
+ return m_imp->return_y();
+ }
+
private:
std::shared_ptr<detail::barycentric_rational_imp<Real>> m_imp;
};
@@ -55,6 +67,14 @@ barycentric_rational<Real>::barycentric_rational(const Real* const x, const Real
}
template <class Real>
+barycentric_rational<Real>::barycentric_rational(std::vector<Real>&& x, std::vector<Real>&& y, size_t approximation_order):
+ m_imp(std::make_shared<detail::barycentric_rational_imp<Real>>(std::move(x), std::move(y), approximation_order))
+{
+ return;
+}
+
+
+template <class Real>
template <class InputIterator1, class InputIterator2>
barycentric_rational<Real>::barycentric_rational(InputIterator1 start_x, InputIterator1 end_x, InputIterator2 start_y, size_t approximation_order, typename boost::disable_if_c<boost::is_integral<InputIterator2>::value>::type*)
: m_imp(std::make_shared<detail::barycentric_rational_imp<Real>>(start_x, end_x, start_y, approximation_order))