~twpol/dcplusplus/trunk

« back to all changes in this revision

Viewing changes to boost/boost/math/tools/detail/polynomial_horner2_10.hpp

  • Committer: James Ross
  • Date: 2010-07-05 00:03:18 UTC
  • mfrom: (1524.1.650 dcplusplus)
  • Revision ID: silver@warwickcompsoc.co.uk-20100705000318-awwqm8ocpp5m47yz
Merged to trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
//  (C) Copyright John Maddock 2007.
2
 
//  Use, modification and distribution are subject to the
3
 
//  Boost Software License, Version 1.0. (See accompanying file
4
 
//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
5
 
//
6
 
//  This file is machine generated, do not edit by hand
7
 
 
8
 
// Polynomial evaluation using second order Horners rule
9
 
#ifndef BOOST_MATH_TOOLS_POLY_EVAL_10_HPP
10
 
#define BOOST_MATH_TOOLS_POLY_EVAL_10_HPP
11
 
 
12
 
namespace boost{ namespace math{ namespace tools{ namespace detail{
13
 
 
14
 
template <class T, class V>
15
 
inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<0>*)
16
 
{
17
 
   return static_cast<V>(0);
18
 
}
19
 
 
20
 
template <class T, class V>
21
 
inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
22
 
{
23
 
   return static_cast<V>(a[0]);
24
 
}
25
 
 
26
 
template <class T, class V>
27
 
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
28
 
{
29
 
   return static_cast<V>(a[1] * x + a[0]);
30
 
}
31
 
 
32
 
template <class T, class V>
33
 
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
34
 
{
35
 
   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
36
 
}
37
 
 
38
 
template <class T, class V>
39
 
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
40
 
{
41
 
   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
42
 
}
43
 
 
44
 
template <class T, class V>
45
 
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
46
 
{
47
 
   V x2 = x * x;
48
 
   return static_cast<V>((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x);
49
 
}
50
 
 
51
 
template <class T, class V>
52
 
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
53
 
{
54
 
   V x2 = x * x;
55
 
   return static_cast<V>(((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]);
56
 
}
57
 
 
58
 
template <class T, class V>
59
 
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
60
 
{
61
 
   V x2 = x * x;
62
 
   return static_cast<V>(((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x);
63
 
}
64
 
 
65
 
template <class T, class V>
66
 
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
67
 
{
68
 
   V x2 = x * x;
69
 
   return static_cast<V>((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
70
 
}
71
 
 
72
 
template <class T, class V>
73
 
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
74
 
{
75
 
   V x2 = x * x;
76
 
   return static_cast<V>((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
77
 
}
78
 
 
79
 
template <class T, class V>
80
 
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
81
 
{
82
 
   V x2 = x * x;
83
 
   return static_cast<V>(((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
84
 
}
85
 
 
86
 
 
87
 
}}}} // namespaces
88
 
 
89
 
#endif // include guard
90
 
 
 
1
//  (C) Copyright John Maddock 2007.
 
2
//  Use, modification and distribution are subject to the
 
3
//  Boost Software License, Version 1.0. (See accompanying file
 
4
//  LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
 
5
//
 
6
//  This file is machine generated, do not edit by hand
 
7
 
 
8
// Polynomial evaluation using second order Horners rule
 
9
#ifndef BOOST_MATH_TOOLS_POLY_EVAL_10_HPP
 
10
#define BOOST_MATH_TOOLS_POLY_EVAL_10_HPP
 
11
 
 
12
namespace boost{ namespace math{ namespace tools{ namespace detail{
 
13
 
 
14
template <class T, class V>
 
15
inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<0>*)
 
16
{
 
17
   return static_cast<V>(0);
 
18
}
 
19
 
 
20
template <class T, class V>
 
21
inline V evaluate_polynomial_c_imp(const T* a, const V&, const mpl::int_<1>*)
 
22
{
 
23
   return static_cast<V>(a[0]);
 
24
}
 
25
 
 
26
template <class T, class V>
 
27
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<2>*)
 
28
{
 
29
   return static_cast<V>(a[1] * x + a[0]);
 
30
}
 
31
 
 
32
template <class T, class V>
 
33
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<3>*)
 
34
{
 
35
   return static_cast<V>((a[2] * x + a[1]) * x + a[0]);
 
36
}
 
37
 
 
38
template <class T, class V>
 
39
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<4>*)
 
40
{
 
41
   return static_cast<V>(((a[3] * x + a[2]) * x + a[1]) * x + a[0]);
 
42
}
 
43
 
 
44
template <class T, class V>
 
45
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<5>*)
 
46
{
 
47
   V x2 = x * x;
 
48
   return static_cast<V>((a[4] * x2 + a[2]) * x2 + a[0] + (a[3] * x2 + a[1]) * x);
 
49
}
 
50
 
 
51
template <class T, class V>
 
52
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<6>*)
 
53
{
 
54
   V x2 = x * x;
 
55
   return static_cast<V>(((a[5] * x2 + a[3]) * x2 + a[1]) * x + (a[4] * x2 + a[2]) * x2 + a[0]);
 
56
}
 
57
 
 
58
template <class T, class V>
 
59
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<7>*)
 
60
{
 
61
   V x2 = x * x;
 
62
   return static_cast<V>(((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + ((a[5] * x2 + a[3]) * x2 + a[1]) * x);
 
63
}
 
64
 
 
65
template <class T, class V>
 
66
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<8>*)
 
67
{
 
68
   V x2 = x * x;
 
69
   return static_cast<V>((((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + ((a[6] * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
 
70
}
 
71
 
 
72
template <class T, class V>
 
73
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<9>*)
 
74
{
 
75
   V x2 = x * x;
 
76
   return static_cast<V>((((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0] + (((a[7] * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x);
 
77
}
 
78
 
 
79
template <class T, class V>
 
80
inline V evaluate_polynomial_c_imp(const T* a, const V& x, const mpl::int_<10>*)
 
81
{
 
82
   V x2 = x * x;
 
83
   return static_cast<V>(((((a[9] * x2 + a[7]) * x2 + a[5]) * x2 + a[3]) * x2 + a[1]) * x + (((a[8] * x2 + a[6]) * x2 + a[4]) * x2 + a[2]) * x2 + a[0]);
 
84
}
 
85
 
 
86
 
 
87
}}}} // namespaces
 
88
 
 
89
#endif // include guard
 
90