![]() System : Linux absol.cf 5.4.0-198-generic #218-Ubuntu SMP Fri Sep 27 20:18:53 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/include/boost/math/tools/detail/ |
Upload File : |
// (C) Copyright John Maddock 2007. // 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) // // This file is machine generated, do not edit by hand // Unrolled polynomial evaluation using second order Horners rule #ifndef BOOST_MATH_TOOLS_POLY_EVAL_17_HPP #define BOOST_MATH_TOOLS_POLY_EVAL_17_HPP namespace boost{ namespace math{ namespace tools{ namespace detail{ template <class T, class V> inline V evaluate_polynomial_c_imp(const T*, const V&, const mpl::int_<0>*) BOOST_MATH_NOEXCEPT(V) { return static_cast<V>(0); } template <class T, class V> inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*) BOOST_MATH_NOEXCEPT(V) { return static_cast<V>(a[0]); } template <class T, class V> inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*) BOOST_MATH_NOEXCEPT(V) { return static_cast<V>(a[1] * x + a[0]); } template <class T, class V> inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*) BOOST_MATH_NOEXCEPT(V) { return static_cast<V>((a[2] * x + a[1]) * x + a[0]); } template <class T, class V> inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*) BOOST_MATH_NOEXCEPT(V) { return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]); } template <class T, class V> inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*) BOOST_MATH_NOEXCEPT(V) { V x2 = x * x; V t[2]; t[0] = static_cast<V>(a[4] * x2 + a[2]); t[1] = static_cast<V>(a[3] * x2 + a[1]); t[0] *= x2; t[0] += static_cast<V>(a[0]); t[1] *= x; return t[0] + t[1]; } template <class T, class V> inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*) BOOST_MATH_NOEXCEPT(V) { V x2 = x * x; V t[2]; t[0] = a[5] * x2 + a[3]; t[1] = a[4] * x2 + a[2]; t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[1]); t[1] += static_cast<V>(a[0]); t[0] *= x; return t[0] + t[1]; } template <class T, class V> inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*) BOOST_MATH_NOEXCEPT(V) { V x2 = x * x; V t[2]; t[0] = static_cast<V>(a[6] * x2 + a[4]); t[1] = static_cast<V>(a[5] * x2 + a[3]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[2]); t[1] += static_cast<V>(a[1]); t[0] *= x2; t[0] += static_cast<V>(a[0]); t[1] *= x; return t[0] + t[1]; } template <class T, class V> inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*) BOOST_MATH_NOEXCEPT(V) { V x2 = x * x; V t[2]; t[0] = a[7] * x2 + a[5]; t[1] = a[6] * x2 + a[4]; t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[3]); t[1] += static_cast<V>(a[2]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[1]); t[1] += static_cast<V>(a[0]); t[0] *= x; return t[0] + t[1]; } template <class T, class V> inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*) BOOST_MATH_NOEXCEPT(V) { V x2 = x * x; V t[2]; t[0] = static_cast<V>(a[8] * x2 + a[6]); t[1] = static_cast<V>(a[7] * x2 + a[5]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[4]); t[1] += static_cast<V>(a[3]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[2]); t[1] += static_cast<V>(a[1]); t[0] *= x2; t[0] += static_cast<V>(a[0]); t[1] *= x; return t[0] + t[1]; } template <class T, class V> inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*) BOOST_MATH_NOEXCEPT(V) { V x2 = x * x; V t[2]; t[0] = a[9] * x2 + a[7]; t[1] = a[8] * x2 + a[6]; t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[5]); t[1] += static_cast<V>(a[4]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[3]); t[1] += static_cast<V>(a[2]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[1]); t[1] += static_cast<V>(a[0]); t[0] *= x; return t[0] + t[1]; } template <class T, class V> inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<11>*) BOOST_MATH_NOEXCEPT(V) { V x2 = x * x; V t[2]; t[0] = static_cast<V>(a[10] * x2 + a[8]); t[1] = static_cast<V>(a[9] * x2 + a[7]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[6]); t[1] += static_cast<V>(a[5]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[4]); t[1] += static_cast<V>(a[3]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[2]); t[1] += static_cast<V>(a[1]); t[0] *= x2; t[0] += static_cast<V>(a[0]); t[1] *= x; return t[0] + t[1]; } template <class T, class V> inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<12>*) BOOST_MATH_NOEXCEPT(V) { V x2 = x * x; V t[2]; t[0] = a[11] * x2 + a[9]; t[1] = a[10] * x2 + a[8]; t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[7]); t[1] += static_cast<V>(a[6]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[5]); t[1] += static_cast<V>(a[4]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[3]); t[1] += static_cast<V>(a[2]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[1]); t[1] += static_cast<V>(a[0]); t[0] *= x; return t[0] + t[1]; } template <class T, class V> inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<13>*) BOOST_MATH_NOEXCEPT(V) { V x2 = x * x; V t[2]; t[0] = static_cast<V>(a[12] * x2 + a[10]); t[1] = static_cast<V>(a[11] * x2 + a[9]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[8]); t[1] += static_cast<V>(a[7]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[6]); t[1] += static_cast<V>(a[5]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[4]); t[1] += static_cast<V>(a[3]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[2]); t[1] += static_cast<V>(a[1]); t[0] *= x2; t[0] += static_cast<V>(a[0]); t[1] *= x; return t[0] + t[1]; } template <class T, class V> inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<14>*) BOOST_MATH_NOEXCEPT(V) { V x2 = x * x; V t[2]; t[0] = a[13] * x2 + a[11]; t[1] = a[12] * x2 + a[10]; t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[9]); t[1] += static_cast<V>(a[8]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[7]); t[1] += static_cast<V>(a[6]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[5]); t[1] += static_cast<V>(a[4]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[3]); t[1] += static_cast<V>(a[2]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[1]); t[1] += static_cast<V>(a[0]); t[0] *= x; return t[0] + t[1]; } template <class T, class V> inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<15>*) BOOST_MATH_NOEXCEPT(V) { V x2 = x * x; V t[2]; t[0] = static_cast<V>(a[14] * x2 + a[12]); t[1] = static_cast<V>(a[13] * x2 + a[11]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[10]); t[1] += static_cast<V>(a[9]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[8]); t[1] += static_cast<V>(a[7]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[6]); t[1] += static_cast<V>(a[5]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[4]); t[1] += static_cast<V>(a[3]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[2]); t[1] += static_cast<V>(a[1]); t[0] *= x2; t[0] += static_cast<V>(a[0]); t[1] *= x; return t[0] + t[1]; } template <class T, class V> inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<16>*) BOOST_MATH_NOEXCEPT(V) { V x2 = x * x; V t[2]; t[0] = a[15] * x2 + a[13]; t[1] = a[14] * x2 + a[12]; t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[11]); t[1] += static_cast<V>(a[10]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[9]); t[1] += static_cast<V>(a[8]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[7]); t[1] += static_cast<V>(a[6]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[5]); t[1] += static_cast<V>(a[4]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[3]); t[1] += static_cast<V>(a[2]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[1]); t[1] += static_cast<V>(a[0]); t[0] *= x; return t[0] + t[1]; } template <class T, class V> inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<17>*) BOOST_MATH_NOEXCEPT(V) { V x2 = x * x; V t[2]; t[0] = static_cast<V>(a[16] * x2 + a[14]); t[1] = static_cast<V>(a[15] * x2 + a[13]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[12]); t[1] += static_cast<V>(a[11]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[10]); t[1] += static_cast<V>(a[9]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[8]); t[1] += static_cast<V>(a[7]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[6]); t[1] += static_cast<V>(a[5]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[4]); t[1] += static_cast<V>(a[3]); t[0] *= x2; t[1] *= x2; t[0] += static_cast<V>(a[2]); t[1] += static_cast<V>(a[1]); t[0] *= x2; t[0] += static_cast<V>(a[0]); t[1] *= x; return t[0] + t[1]; } }}}} // namespaces #endif // include guard