9#include <kernel/cubature/scalar/driver_base.hpp>
39 return "newton-cotes-open";
60 rule.get_coord(0) = Coord_(0);
62 rule.get_weight(0) = Weight_(2);
66 rule.get_coord(0) = -Coord_(1) / Coord_(3);
67 rule.get_coord(1) = Coord_(1) / Coord_(3);
69 rule.get_weight(0) = Weight_(1);
70 rule.get_weight(1) = Weight_(1);
74 rule.get_coord(0) = -Coord_(1) / Coord_(2);
75 rule.get_coord(1) = Coord_(0);
76 rule.get_coord(2) = Coord_(1) / Coord_(2);
78 rule.get_weight(0) = Weight_(4) / Weight_(3);
79 rule.get_weight(1) = - Weight_(2) / Weight_(3);
80 rule.get_weight(2) = Weight_(4) / Weight_(3);
84 rule.get_coord(0) = -Coord_(3) / Coord_(5);
85 rule.get_coord(1) = -Coord_(1) / Coord_(5);
86 rule.get_coord(2) = Coord_(1) / Coord_(5);
87 rule.get_coord(3) = Coord_(3) / Coord_(5);
89 rule.get_weight(0) = Weight_(11) / Weight_(12);
90 rule.get_weight(1) = Weight_(1) / Weight_(12);
91 rule.get_weight(2) = Weight_(1) / Weight_(12);
92 rule.get_weight(3) = Weight_(11) / Weight_(12);
96 rule.get_coord(0) = -Coord_(2) / Coord_(3);
97 rule.get_coord(1) = -Coord_(1) / Coord_(3);
98 rule.get_coord(2) = Coord_(0);
99 rule.get_coord(3) = Coord_(1) / Coord_(3);
100 rule.get_coord(4) = Coord_(2) / Coord_(3);
102 rule.get_weight(0) = Weight_(11) / Weight_(10);
103 rule.get_weight(1) = - Weight_(14) / Weight_(10);
104 rule.get_weight(2) = Weight_(26) / Weight_(10);
105 rule.get_weight(3) = - Weight_(14) / Weight_(10);
106 rule.get_weight(4) = Weight_(11) / Weight_(10);
110 rule.get_coord(0) = -Coord_(5) / Coord_(7);
111 rule.get_coord(1) = -Coord_(3) / Coord_(7);
112 rule.get_coord(2) = -Coord_(1) / Coord_(7);
113 rule.get_coord(3) = Coord_(1) / Coord_(7);
114 rule.get_coord(4) = Coord_(3) / Coord_(7);
115 rule.get_coord(5) = Coord_(5) / Coord_(7);
117 rule.get_weight(0) = Weight_(611) / Weight_(720);
118 rule.get_weight(1) = -Weight_(453) / Weight_(720);
119 rule.get_weight(2) = Weight_(562) / Weight_(720);
120 rule.get_weight(3) = Weight_(562) / Weight_(720);
121 rule.get_weight(4) = -Weight_(453) / Weight_(720);
122 rule.get_weight(5) = Weight_(611) / Weight_(720);
126 rule.get_coord(0) = -Coord_(3) / Coord_(4);
127 rule.get_coord(1) = -Coord_(1) / Coord_(2);
128 rule.get_coord(2) = -Coord_(1) / Coord_(4);
129 rule.get_coord(3) = Coord_(0);
130 rule.get_coord(4) = Coord_(1) / Coord_(4);
131 rule.get_coord(5) = Coord_(1) / Coord_(2);
132 rule.get_coord(6) = Coord_(3) / Coord_(4);
134 rule.get_weight(0) = Weight_(920) / Weight_(945);
135 rule.get_weight(1) = -Weight_(1908) / Weight_(945);
136 rule.get_weight(2) = Weight_(4392) / Weight_(945);
137 rule.get_weight(3) = -Weight_(4918) / Weight_(945);
138 rule.get_weight(4) = Weight_(4392) / Weight_(945);
139 rule.get_weight(5) = -Weight_(1908) / Weight_(945);
140 rule.get_weight(6) = Weight_(920) / Weight_(945);
Scalar cubature driver base class.
Open Newton-Cotes Rule driver class template.
static constexpr bool variadic
this rule is variadic
static String name()
Returns the name of the cubature rule.
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 1 point
static constexpr int max_points
this rule has at most 7 points
Scalar Cubature Rule class template.
String class implementation.