9#include <kernel/cubature/scalar/driver_base.hpp>
39 return "newton-cotes-closed";
48 template<
typename Functor_>
49 static void alias(Functor_& functor)
51 functor.alias(
"simpson", 3);
52 functor.alias(
"pulcherrima", 4);
53 functor.alias(
"milne-boole", 5);
54 functor.alias(
"6-point", 6);
55 functor.alias(
"weddle", 7);
76 rule.get_coord(0) = -Coord_(1);
77 rule.get_coord(1) = Coord_(1);
79 rule.get_weight(0) = Weight_(1);
80 rule.get_weight(1) = Weight_(1);
84 rule.get_coord(0) = -Coord_(1);
85 rule.get_coord(1) = Coord_(0);
86 rule.get_coord(2) = Coord_(1);
88 rule.get_weight(0) = Weight_(1) / Weight_(3);
89 rule.get_weight(1) = Weight_(4) / Weight_(3);
90 rule.get_weight(2) = Weight_(1) / Weight_(3);
94 rule.get_coord(0) = -Coord_(1);
95 rule.get_coord(1) = -Coord_(1) / Coord_(3);
96 rule.get_coord(2) = Coord_(1) / Coord_(3);
97 rule.get_coord(3) = Coord_(1);
99 rule.get_weight(0) = Weight_(1) / Weight_(4);
100 rule.get_weight(1) = Weight_(3) / Weight_(4);
101 rule.get_weight(2) = Weight_(3) / Weight_(4);
102 rule.get_weight(3) = Weight_(1) / Weight_(4);
106 rule.get_coord(0) = -Coord_(1);
107 rule.get_coord(1) = -Coord_(1) / Coord_(2);
108 rule.get_coord(2) = Coord_(0);
109 rule.get_coord(3) = Coord_(1) / Coord_(2);
110 rule.get_coord(4) = Coord_(1);
112 rule.get_weight(0) = Weight_(7) / Weight_(45);
113 rule.get_weight(1) = Weight_(32) / Weight_(45);
114 rule.get_weight(2) = Weight_(12) / Weight_(45);
115 rule.get_weight(3) = Weight_(32) / Weight_(45);
116 rule.get_weight(4) = Weight_(7) / Weight_(45);
120 rule.get_coord(0) = -Coord_(1);
121 rule.get_coord(1) = -Coord_(3) / Coord_(5);
122 rule.get_coord(2) = -Coord_(1) / Coord_(5);
123 rule.get_coord(3) = Coord_(1) / Coord_(5);
124 rule.get_coord(4) = Coord_(3) / Coord_(5);
125 rule.get_coord(5) = Coord_(1);
127 rule.get_weight(0) = Weight_(19) / Weight_(144);
128 rule.get_weight(1) = Weight_(75) / Weight_(144);
129 rule.get_weight(2) = Weight_(50) / Weight_(144);
130 rule.get_weight(3) = Weight_(50) / Weight_(144);
131 rule.get_weight(4) = Weight_(75) / Weight_(144);
132 rule.get_weight(5) = Weight_(19) / Weight_(144);
136 rule.get_coord(0) = -Coord_(1);
137 rule.get_coord(1) = -Coord_(2) / Coord_(3);
138 rule.get_coord(2) = -Coord_(1) / Coord_(3);
139 rule.get_coord(3) = Coord_(0);
140 rule.get_coord(4) = Coord_(1) / Coord_(3);
141 rule.get_coord(5) = Coord_(2) / Coord_(3);
142 rule.get_coord(6) = Coord_(1);
144 rule.get_weight(0) = Weight_(41) / Weight_(420);
145 rule.get_weight(1) = Weight_(216) / Weight_(420);
146 rule.get_weight(2) = Weight_(27) / Weight_(420);
147 rule.get_weight(3) = Weight_(272) / Weight_(420);
148 rule.get_weight(4) = Weight_(27) / Weight_(420);
149 rule.get_weight(5) = Weight_(216) / Weight_(420);
150 rule.get_weight(6) = Weight_(41) / Weight_(420);
Scalar cubature driver base class.
Closed Newton-Cotes Rule driver class template.
static constexpr int max_points
this rule has at most 7 points
static constexpr bool variadic
this rule is variadic
static void alias(Functor_ &functor)
Adds the driver's aliases.
static void fill(Rule< Weight_, Coord_ > &rule, int num_points)
Fills the cubature rule structure.
static constexpr int min_points
this rule has at least 2 points
static String name()
Returns the name of the cubature rule.
Scalar Cubature Rule class template.
String class implementation.