Alamo
Function.H
Go to the documentation of this file.
1#ifndef NUMERIC_FUNCTION_H
2#define NUMERIC_FUNCTION_H
3
4
5namespace Numeric
6{
7namespace Function
8{
9
10template<int d> class Polynomial;
11
12template<>
13class Polynomial<3>
14{
15public:
17 {
18 a[0] = a0; a[1] = a1; a[2] = a2; a[3] = a3;
19 }
20 AMREX_FORCE_INLINE
21 Set::Scalar operator() (const Set::Scalar x) const
22 {
23 return a[0] + x * (a[1] + x * (a[2] + x * a[3]));
24 }
25private:
26 std::array<Set::Scalar, 4> a;
27};
28
29template<>
30class Polynomial<4>
31{
32public:
34 {
35 a[0] = a0; a[1] = a1; a[2] = a2; a[3] = a3; a[4] = a4;
36 }
37 AMREX_FORCE_INLINE
38 Set::Scalar operator() (const Set::Scalar x) const
39 {
40 return a[0] + x * (a[1] + x * (a[2] + x * (a[3] + x * a[4])));
41 }
43 {
44 return Polynomial<3>(a[1], 2. * a[2], 3 * a[3], 4 * a[4]);
45 }
46private:
47 std::array<Set::Scalar, 5> a;
48};
49
50}
51}
52
53
54
55
56
57
58#endif
std::array< Set::Scalar, 4 > a
Definition Function.H:26
Polynomial(Set::Scalar a0, Set::Scalar a1, Set::Scalar a2, Set::Scalar a3)
Definition Function.H:16
std::array< Set::Scalar, 5 > a
Definition Function.H:47
Polynomial(Set::Scalar a0, Set::Scalar a1, Set::Scalar a2, Set::Scalar a3, Set::Scalar a4)
Definition Function.H:33
Polynomial< 3 > D() const
Definition Function.H:42
This namespace contains some numerical tools.
Definition Function.H:6
amrex::Real Scalar
Definition Base.H:19