FEAT 3
Finite Element Analysis Toolbox
Loading...
Searching...
No Matches
gauss_legendre_driver.hpp
1// FEAT3: Finite Element Analysis Toolbox, Version 3
2// Copyright (C) 2010 by Stefan Turek & the FEAT group
3// FEAT3 is released under the GNU General Public License version 3,
4// see the file 'copyright.txt' in the top level directory for details.
5
6#pragma once
7
8// includes, FEAT
9#include <kernel/cubature/scalar/driver_base.hpp>
10#include <kernel/util/math.hpp>
11
12namespace FEAT
13{
14 namespace Cubature
15 {
16 namespace Scalar
17 {
28 public DriverBase
29 {
30 public:
32 static constexpr bool variadic = true;
34 static constexpr int min_points = 1;
36 static constexpr int max_points = 20;
37
39 static String name()
40 {
41 return "gauss-legendre";
42 }
43
53 template<
54 typename Weight_,
55 typename Coord_>
56 static void fill(Rule<Weight_, Coord_>& rule, int num_points)
57 {
58 // auxiliary variables
59 //Coord_ dc;
60 //Weight_ dw;
61
62 // how many points do we have?
63 switch(num_points)
64 {
65 /*case 1:
66 rule.get_coord(0) = Coord_(0);
67
68 rule.get_weight(0) = Weight_(2);
69 break;
70
71 case 2:
72 rule.get_coord(0) = -Math::sqrt(Coord_(1) / Coord_(3));
73 rule.get_coord(1) = +Math::sqrt(Coord_(1) / Coord_(3));
74
75 rule.get_weight(0) = Weight_(1);
76 rule.get_weight(1) = Weight_(1);
77 break;
78
79 case 3:
80 rule.get_coord(0) = -Math::sqrt(Coord_(3) / Coord_(5));
81 rule.get_coord(1) = Coord_(0);
82 rule.get_coord(2) = +Math::sqrt(Coord_(3) / Coord_(5));
83
84 rule.get_weight(0) = Weight_(5) / Weight_(9);
85 rule.get_weight(1) = Weight_(8) / Weight_(9);
86 rule.get_weight(2) = Weight_(5) / Weight_(9);
87 break;
88
89 case 4:
90 dc = Math::sqrt(Coord_(24) / Coord_(5));
91 rule.get_coord(0) = -Math::sqrt((Coord_(3) + dc) / Coord_(7));
92 rule.get_coord(1) = -Math::sqrt((Coord_(3) - dc) / Coord_(7));
93 rule.get_coord(2) = +Math::sqrt((Coord_(3) - dc) / Coord_(7));
94 rule.get_coord(3) = +Math::sqrt((Coord_(3) + dc) / Coord_(7));
95
96 dw = Math::sqrt(Weight_(30));
97 rule.get_weight(0) = (Weight_(18) - dw) / Weight_(36);
98 rule.get_weight(1) = (Weight_(18) + dw) / Weight_(36);
99 rule.get_weight(2) = (Weight_(18) + dw) / Weight_(36);
100 rule.get_weight(3) = (Weight_(18) - dw) / Weight_(36);
101 break;
102
103 case 5:
104 dc = Coord_(2) * Math::sqrt(Coord_(10) / Coord_(7));
105 rule.get_coord(0) = -Math::sqrt(Coord_(5) + dc) / Coord_(3);
106 rule.get_coord(1) = -Math::sqrt(Coord_(5) - dc) / Coord_(3);
107 rule.get_coord(2) = Coord_(0);
108 rule.get_coord(3) = +Math::sqrt(Coord_(5) - dc) / Coord_(3);
109 rule.get_coord(4) = +Math::sqrt(Coord_(5) + dc) / Coord_(3);
110
111 dw = Weight_(13) * Math::sqrt(Weight_(70));
112 rule.get_weight(0) = (Weight_(322) - dw) / Weight_(900);
113 rule.get_weight(1) = (Weight_(322) + dw) / Weight_(900);
114 rule.get_weight(2) = Weight_(128) / Weight_(225);
115 rule.get_weight(3) = (Weight_(322) + dw) / Weight_(900);
116 rule.get_weight(4) = (Weight_(322) - dw) / Weight_(900);
117 break;*/
118 case 1:
119 rule.get_coord ( 0) = Coord_(FEAT_F128C(+0.0));
120 rule.get_weight( 0) = Weight_(FEAT_F128C(2.0));
121 break;
122
123 case 2:
124 rule.get_coord ( 0) = Coord_(FEAT_F128C(-0.57735026918962576450914878050195745564760175127));
125 rule.get_coord ( 1) = Coord_(FEAT_F128C(+0.57735026918962576450914878050195745564760175127));
126 rule.get_weight( 0) = Weight_(FEAT_F128C(1.0));
127 rule.get_weight( 1) = Weight_(FEAT_F128C(1.0));
128 break;
129
130 case 3:
131 rule.get_coord ( 0) = Coord_(FEAT_F128C(+0.0));
132 rule.get_coord ( 1) = Coord_(FEAT_F128C(-0.77459666924148337703585307995647992216658434105));
133 rule.get_coord ( 2) = Coord_(FEAT_F128C(+0.77459666924148337703585307995647992216658434105));
134 rule.get_weight( 0) = Weight_(FEAT_F128C(0.888888888888888888888888888888888888888888888888));
135 rule.get_weight( 1) = Weight_(FEAT_F128C(0.555555555555555555555555555555555555555555555555));
136 rule.get_weight( 2) = Weight_(FEAT_F128C(0.555555555555555555555555555555555555555555555555));
137 break;
138
139 case 4:
140 rule.get_coord ( 0) = Coord_(FEAT_F128C(-0.33998104358485626480266575910324468720057586977));
141 rule.get_coord ( 1) = Coord_(FEAT_F128C(+0.33998104358485626480266575910324468720057586977));
142 rule.get_coord ( 2) = Coord_(FEAT_F128C(-0.86113631159405257522394648889280950509572537962));
143 rule.get_coord ( 3) = Coord_(FEAT_F128C(+0.86113631159405257522394648889280950509572537962));
144 rule.get_weight( 0) = Weight_(FEAT_F128C(0.652145154862546142626936050778000592764651304166));
145 rule.get_weight( 1) = Weight_(FEAT_F128C(0.652145154862546142626936050778000592764651304166));
146 rule.get_weight( 2) = Weight_(FEAT_F128C(0.347854845137453857373063949221999407235348695833));
147 rule.get_weight( 3) = Weight_(FEAT_F128C(0.347854845137453857373063949221999407235348695833));
148 break;
149
150 case 5:
151 rule.get_coord ( 0) = Coord_(FEAT_F128C(+0.0));
152 rule.get_coord ( 1) = Coord_(FEAT_F128C(-0.53846931010568309103631442070020880496728660690));
153 rule.get_coord ( 2) = Coord_(FEAT_F128C(+0.53846931010568309103631442070020880496728660690));
154 rule.get_coord ( 3) = Coord_(FEAT_F128C(-0.90617984593866399279762687829939296512565191076));
155 rule.get_coord ( 4) = Coord_(FEAT_F128C(+0.90617984593866399279762687829939296512565191076));
156 rule.get_weight( 0) = Weight_(FEAT_F128C(0.568888888888888888888888888888888888888888888888));
157 rule.get_weight( 1) = Weight_(FEAT_F128C(0.478628670499366468041291514835638192912295553343));
158 rule.get_weight( 2) = Weight_(FEAT_F128C(0.478628670499366468041291514835638192912295553343));
159 rule.get_weight( 3) = Weight_(FEAT_F128C(0.236926885056189087514264040719917362643260002212));
160 rule.get_weight( 4) = Weight_(FEAT_F128C(0.236926885056189087514264040719917362643260002212));
161 break;
162
163 case 6:
164 rule.get_coord ( 0) = Coord_(FEAT_F128C(+0.66120938646626451366139959501990534700644856439));
165 rule.get_coord ( 1) = Coord_(FEAT_F128C(-0.66120938646626451366139959501990534700644856439));
166 rule.get_coord ( 2) = Coord_(FEAT_F128C(-0.23861918608319690863050172168071193541861063014));
167 rule.get_coord ( 3) = Coord_(FEAT_F128C(+0.23861918608319690863050172168071193541861063014));
168 rule.get_coord ( 4) = Coord_(FEAT_F128C(-0.93246951420315202781230155449399460913476573771));
169 rule.get_coord ( 5) = Coord_(FEAT_F128C(+0.93246951420315202781230155449399460913476573771));
170 rule.get_weight( 0) = Weight_(FEAT_F128C(0.360761573048138607569833513837716111661521892746));
171 rule.get_weight( 1) = Weight_(FEAT_F128C(0.360761573048138607569833513837716111661521892746));
172 rule.get_weight( 2) = Weight_(FEAT_F128C(0.467913934572691047389870343989550994811655605769));
173 rule.get_weight( 3) = Weight_(FEAT_F128C(0.467913934572691047389870343989550994811655605769));
174 rule.get_weight( 4) = Weight_(FEAT_F128C(0.171324492379170345040296142172732893526822501484));
175 rule.get_weight( 5) = Weight_(FEAT_F128C(0.171324492379170345040296142172732893526822501484));
176 break;
177
178 case 7:
179 rule.get_coord ( 0) = Coord_(FEAT_F128C(+0.0));
180 rule.get_coord ( 1) = Coord_(FEAT_F128C(+0.40584515137739716690660641207696146334738201409));
181 rule.get_coord ( 2) = Coord_(FEAT_F128C(-0.40584515137739716690660641207696146334738201409));
182 rule.get_coord ( 3) = Coord_(FEAT_F128C(-0.74153118559939443986386477328078840707414764714));
183 rule.get_coord ( 4) = Coord_(FEAT_F128C(+0.74153118559939443986386477328078840707414764714));
184 rule.get_coord ( 5) = Coord_(FEAT_F128C(-0.94910791234275852452618968404785126240077093767));
185 rule.get_coord ( 6) = Coord_(FEAT_F128C(+0.94910791234275852452618968404785126240077093767));
186 rule.get_weight( 0) = Weight_(FEAT_F128C(0.417959183673469387755102040816326530612244897959));
187 rule.get_weight( 1) = Weight_(FEAT_F128C(0.381830050505118944950369775488975133878365083533));
188 rule.get_weight( 2) = Weight_(FEAT_F128C(0.381830050505118944950369775488975133878365083533));
189 rule.get_weight( 3) = Weight_(FEAT_F128C(0.279705391489276667901467771423779582486925065226));
190 rule.get_weight( 4) = Weight_(FEAT_F128C(0.279705391489276667901467771423779582486925065226));
191 rule.get_weight( 5) = Weight_(FEAT_F128C(0.129484966168869693270611432679082018328587402259));
192 rule.get_weight( 6) = Weight_(FEAT_F128C(0.129484966168869693270611432679082018328587402259));
193 break;
194
195 case 8:
196 rule.get_coord ( 0) = Coord_(FEAT_F128C(-0.18343464249564980493947614236018398066675781291));
197 rule.get_coord ( 1) = Coord_(FEAT_F128C(+0.18343464249564980493947614236018398066675781291));
198 rule.get_coord ( 2) = Coord_(FEAT_F128C(-0.52553240991632898581773904918924634904196424312));
199 rule.get_coord ( 3) = Coord_(FEAT_F128C(+0.52553240991632898581773904918924634904196424312));
200 rule.get_coord ( 4) = Coord_(FEAT_F128C(-0.79666647741362673959155393647583043683717173161));
201 rule.get_coord ( 5) = Coord_(FEAT_F128C(+0.79666647741362673959155393647583043683717173161));
202 rule.get_coord ( 6) = Coord_(FEAT_F128C(-0.96028985649753623168356086856947299042823523430));
203 rule.get_coord ( 7) = Coord_(FEAT_F128C(+0.96028985649753623168356086856947299042823523430));
204 rule.get_weight( 0) = Weight_(FEAT_F128C(0.362683783378361982965150449277195612194146039894));
205 rule.get_weight( 1) = Weight_(FEAT_F128C(0.362683783378361982965150449277195612194146039894));
206 rule.get_weight( 2) = Weight_(FEAT_F128C(0.313706645877887287337962201986601313260328999002));
207 rule.get_weight( 3) = Weight_(FEAT_F128C(0.313706645877887287337962201986601313260328999002));
208 rule.get_weight( 4) = Weight_(FEAT_F128C(0.222381034453374470544355994426240884430130870051));
209 rule.get_weight( 5) = Weight_(FEAT_F128C(0.222381034453374470544355994426240884430130870051));
210 rule.get_weight( 6) = Weight_(FEAT_F128C(0.101228536290376259152531354309962190115394091051));
211 rule.get_weight( 7) = Weight_(FEAT_F128C(0.101228536290376259152531354309962190115394091051));
212 break;
213
214 case 9:
215 rule.get_coord ( 0) = Coord_(FEAT_F128C(+0.0));
216 rule.get_coord ( 1) = Coord_(FEAT_F128C(-0.83603110732663579429942978806973487654410671812));
217 rule.get_coord ( 2) = Coord_(FEAT_F128C(+0.83603110732663579429942978806973487654410671812));
218 rule.get_coord ( 3) = Coord_(FEAT_F128C(-0.96816023950762608983557620290367287004940480049));
219 rule.get_coord ( 4) = Coord_(FEAT_F128C(+0.96816023950762608983557620290367287004940480049));
220 rule.get_coord ( 5) = Coord_(FEAT_F128C(-0.32425342340380892903853801464333660857195626073));
221 rule.get_coord ( 6) = Coord_(FEAT_F128C(+0.32425342340380892903853801464333660857195626073));
222 rule.get_coord ( 7) = Coord_(FEAT_F128C(-0.61337143270059039730870203934147418478572060494));
223 rule.get_coord ( 8) = Coord_(FEAT_F128C(+0.61337143270059039730870203934147418478572060494));
224 rule.get_weight( 0) = Weight_(FEAT_F128C(0.330239355001259763164525069286974048878810783572));
225 rule.get_weight( 1) = Weight_(FEAT_F128C(0.180648160694857404058472031242912809514337821732));
226 rule.get_weight( 2) = Weight_(FEAT_F128C(0.180648160694857404058472031242912809514337821732));
227 rule.get_weight( 3) = Weight_(FEAT_F128C(0.081274388361574411971892158110523650675661720782));
228 rule.get_weight( 4) = Weight_(FEAT_F128C(0.081274388361574411971892158110523650675661720782));
229 rule.get_weight( 5) = Weight_(FEAT_F128C(0.312347077040002840068630406584443665598754861261));
230 rule.get_weight( 6) = Weight_(FEAT_F128C(0.312347077040002840068630406584443665598754861261));
231 rule.get_weight( 7) = Weight_(FEAT_F128C(0.260610696402935462318742869418632849771840204437));
232 rule.get_weight( 8) = Weight_(FEAT_F128C(0.260610696402935462318742869418632849771840204437));
233 break;
234
235 case 10:
236 rule.get_coord ( 0) = Coord_(FEAT_F128C(-0.14887433898163121088482600112971998461756485942));
237 rule.get_coord ( 1) = Coord_(FEAT_F128C(+0.14887433898163121088482600112971998461756485942));
238 rule.get_coord ( 2) = Coord_(FEAT_F128C(-0.43339539412924719079926594316578416220007183765));
239 rule.get_coord ( 3) = Coord_(FEAT_F128C(+0.43339539412924719079926594316578416220007183765));
240 rule.get_coord ( 4) = Coord_(FEAT_F128C(-0.67940956829902440623432736511487357576929471183));
241 rule.get_coord ( 5) = Coord_(FEAT_F128C(+0.67940956829902440623432736511487357576929471183));
242 rule.get_coord ( 6) = Coord_(FEAT_F128C(-0.86506336668898451073209668842349304852754301496));
243 rule.get_coord ( 7) = Coord_(FEAT_F128C(+0.86506336668898451073209668842349304852754301496));
244 rule.get_coord ( 8) = Coord_(FEAT_F128C(-0.97390652851717172007796401208445205342826994669));
245 rule.get_coord ( 9) = Coord_(FEAT_F128C(+0.97390652851717172007796401208445205342826994669));
246 rule.get_weight( 0) = Weight_(FEAT_F128C(0.295524224714752870173892994651338329421046717026));
247 rule.get_weight( 1) = Weight_(FEAT_F128C(0.295524224714752870173892994651338329421046717026));
248 rule.get_weight( 2) = Weight_(FEAT_F128C(0.269266719309996355091226921569469352859759938460));
249 rule.get_weight( 3) = Weight_(FEAT_F128C(0.269266719309996355091226921569469352859759938460));
250 rule.get_weight( 4) = Weight_(FEAT_F128C(0.219086362515982043995534934228163192458771870522));
251 rule.get_weight( 5) = Weight_(FEAT_F128C(0.219086362515982043995534934228163192458771870522));
252 rule.get_weight( 6) = Weight_(FEAT_F128C(0.149451349150580593145776339657697332402556639669));
253 rule.get_weight( 7) = Weight_(FEAT_F128C(0.149451349150580593145776339657697332402556639669));
254 rule.get_weight( 8) = Weight_(FEAT_F128C(0.066671344308688137593568809893331792857864834320));
255 rule.get_weight( 9) = Weight_(FEAT_F128C(0.066671344308688137593568809893331792857864834320));
256 break;
257
258 case 11:
259 rule.get_coord ( 0) = Coord_(FEAT_F128C(+0.0));
260 rule.get_coord ( 1) = Coord_(FEAT_F128C(-0.26954315595234497233153198540086152467962186243));
261 rule.get_coord ( 2) = Coord_(FEAT_F128C(+0.26954315595234497233153198540086152467962186243));
262 rule.get_coord ( 3) = Coord_(FEAT_F128C(-0.51909612920681181592572566945860955448022711511));
263 rule.get_coord ( 4) = Coord_(FEAT_F128C(+0.51909612920681181592572566945860955448022711511));
264 rule.get_coord ( 5) = Coord_(FEAT_F128C(-0.73015200557404932409341625203115345804964306202));
265 rule.get_coord ( 6) = Coord_(FEAT_F128C(+0.73015200557404932409341625203115345804964306202));
266 rule.get_coord ( 7) = Coord_(FEAT_F128C(-0.88706259976809529907515776930392726663167575122));
267 rule.get_coord ( 8) = Coord_(FEAT_F128C(+0.88706259976809529907515776930392726663167575122));
268 rule.get_coord ( 9) = Coord_(FEAT_F128C(-0.97822865814605699280393800112285739077142240891));
269 rule.get_coord (10) = Coord_(FEAT_F128C(+0.97822865814605699280393800112285739077142240891));
270 rule.get_weight( 0) = Weight_(FEAT_F128C(0.272925086777900630714483528336342189156041969894));
271 rule.get_weight( 1) = Weight_(FEAT_F128C(0.262804544510246662180688869890509195372764677603));
272 rule.get_weight( 2) = Weight_(FEAT_F128C(0.262804544510246662180688869890509195372764677603));
273 rule.get_weight( 3) = Weight_(FEAT_F128C(0.233193764591990479918523704843175139431798172316));
274 rule.get_weight( 4) = Weight_(FEAT_F128C(0.233193764591990479918523704843175139431798172316));
275 rule.get_weight( 5) = Weight_(FEAT_F128C(0.186290210927734251426097641431655891691284748040));
276 rule.get_weight( 6) = Weight_(FEAT_F128C(0.186290210927734251426097641431655891691284748040));
277 rule.get_weight( 7) = Weight_(FEAT_F128C(0.125580369464904624634694299223940100197615791395));
278 rule.get_weight( 8) = Weight_(FEAT_F128C(0.125580369464904624634694299223940100197615791395));
279 rule.get_weight( 9) = Weight_(FEAT_F128C(0.055668567116173666482753720442548578728515625696));
280 rule.get_weight(10) = Weight_(FEAT_F128C(0.055668567116173666482753720442548578728515625696));
281 break;
282
283 case 12:
284 rule.get_coord ( 0) = Coord_(FEAT_F128C(-0.12523340851146891547244136946385312998339691630));
285 rule.get_coord ( 1) = Coord_(FEAT_F128C(+0.12523340851146891547244136946385312998339691630));
286 rule.get_coord ( 2) = Coord_(FEAT_F128C(-0.36783149899818019375269153664371756125636014133));
287 rule.get_coord ( 3) = Coord_(FEAT_F128C(+0.36783149899818019375269153664371756125636014133));
288 rule.get_coord ( 4) = Coord_(FEAT_F128C(-0.58731795428661744729670241894053428036909851404));
289 rule.get_coord ( 5) = Coord_(FEAT_F128C(+0.58731795428661744729670241894053428036909851404));
290 rule.get_coord ( 6) = Coord_(FEAT_F128C(-0.76990267419430468703689383321281807598492575001));
291 rule.get_coord ( 7) = Coord_(FEAT_F128C(+0.76990267419430468703689383321281807598492575001));
292 rule.get_coord ( 8) = Coord_(FEAT_F128C(-0.90411725637047485667846586611909619253759670921));
293 rule.get_coord ( 9) = Coord_(FEAT_F128C(+0.90411725637047485667846586611909619253759670921));
294 rule.get_coord (10) = Coord_(FEAT_F128C(-0.98156063424671925069054909014928082296015519981));
295 rule.get_coord (11) = Coord_(FEAT_F128C(+0.98156063424671925069054909014928082296015519981));
296 rule.get_weight( 0) = Weight_(FEAT_F128C(0.249147045813402785000562436042951210830460902569));
297 rule.get_weight( 1) = Weight_(FEAT_F128C(0.249147045813402785000562436042951210830460902569));
298 rule.get_weight( 2) = Weight_(FEAT_F128C(0.233492536538354808760849898924878056259409972199));
299 rule.get_weight( 3) = Weight_(FEAT_F128C(0.233492536538354808760849898924878056259409972199));
300 rule.get_weight( 4) = Weight_(FEAT_F128C(0.203167426723065921749064455809798376506518147274));
301 rule.get_weight( 5) = Weight_(FEAT_F128C(0.203167426723065921749064455809798376506518147274));
302 rule.get_weight( 6) = Weight_(FEAT_F128C(0.160078328543346226334652529543359071872011730490));
303 rule.get_weight( 7) = Weight_(FEAT_F128C(0.160078328543346226334652529543359071872011730490));
304 rule.get_weight( 8) = Weight_(FEAT_F128C(0.106939325995318430960254718193996224214570173470));
305 rule.get_weight( 9) = Weight_(FEAT_F128C(0.106939325995318430960254718193996224214570173470));
306 rule.get_weight(10) = Weight_(FEAT_F128C(0.047175336386511827194615961485017060317029073994));
307 rule.get_weight(11) = Weight_(FEAT_F128C(0.047175336386511827194615961485017060317029073994));
308 break;
309
310 case 13:
311 rule.get_coord ( 0) = Coord_(FEAT_F128C(+0.0));
312 rule.get_coord ( 1) = Coord_(FEAT_F128C(-0.23045831595513479406552812109798883521154237588));
313 rule.get_coord ( 2) = Coord_(FEAT_F128C(+0.23045831595513479406552812109798883521154237588));
314 rule.get_coord ( 3) = Coord_(FEAT_F128C(-0.44849275103644685287791285212763986780192166744));
315 rule.get_coord ( 4) = Coord_(FEAT_F128C(+0.44849275103644685287791285212763986780192166744));
316 rule.get_coord ( 5) = Coord_(FEAT_F128C(-0.64234933944034022064398460699551565007169739826));
317 rule.get_coord ( 6) = Coord_(FEAT_F128C(+0.64234933944034022064398460699551565007169739826));
318 rule.get_coord ( 7) = Coord_(FEAT_F128C(-0.80157809073330991279420648958285989030561572479));
319 rule.get_coord ( 8) = Coord_(FEAT_F128C(+0.80157809073330991279420648958285989030561572479));
320 rule.get_coord ( 9) = Coord_(FEAT_F128C(-0.91759839922297796520654783650071951239047479011));
321 rule.get_coord (10) = Coord_(FEAT_F128C(+0.91759839922297796520654783650071951239047479011));
322 rule.get_coord (11) = Coord_(FEAT_F128C(-0.98418305471858814947282944880710961106499056192));
323 rule.get_coord (12) = Coord_(FEAT_F128C(+0.98418305471858814947282944880710961106499056192));
324 rule.get_weight( 0) = Weight_(FEAT_F128C(0.232551553230873910194589515268835948156627477306));
325 rule.get_weight( 1) = Weight_(FEAT_F128C(0.226283180262897238412090186039776618434757737615));
326 rule.get_weight( 2) = Weight_(FEAT_F128C(0.226283180262897238412090186039776618434757737615));
327 rule.get_weight( 3) = Weight_(FEAT_F128C(0.207816047536888502312523219306052763386582609199));
328 rule.get_weight( 4) = Weight_(FEAT_F128C(0.207816047536888502312523219306052763386582609199));
329 rule.get_weight( 5) = Weight_(FEAT_F128C(0.178145980761945738280046691996097995512812650661));
330 rule.get_weight( 6) = Weight_(FEAT_F128C(0.178145980761945738280046691996097995512812650661));
331 rule.get_weight( 7) = Weight_(FEAT_F128C(0.138873510219787238463601776868871467621862718263));
332 rule.get_weight( 8) = Weight_(FEAT_F128C(0.138873510219787238463601776868871467621862718263));
333 rule.get_weight( 9) = Weight_(FEAT_F128C(0.092121499837728447914421775953797120923683999862));
334 rule.get_weight(10) = Weight_(FEAT_F128C(0.092121499837728447914421775953797120923683999862));
335 rule.get_weight(11) = Weight_(FEAT_F128C(0.040484004765315879520021592200986060041986545744));
336 rule.get_weight(12) = Weight_(FEAT_F128C(0.040484004765315879520021592200986060041986545744));
337 break;
338
339 case 14:
340 rule.get_coord ( 0) = Coord_(FEAT_F128C(-0.10805494870734366206624465021983474761195160547));
341 rule.get_coord ( 1) = Coord_(FEAT_F128C(+0.10805494870734366206624465021983474761195160547));
342 rule.get_coord ( 2) = Coord_(FEAT_F128C(-0.31911236892788976043567182416847546683426120353));
343 rule.get_coord ( 3) = Coord_(FEAT_F128C(+0.31911236892788976043567182416847546683426120353));
344 rule.get_coord ( 4) = Coord_(FEAT_F128C(-0.51524863635815409196529071855118866230888528256));
345 rule.get_coord ( 5) = Coord_(FEAT_F128C(+0.51524863635815409196529071855118866230888528256));
346 rule.get_coord ( 6) = Coord_(FEAT_F128C(-0.68729290481168547014801980301933413753840121274));
347 rule.get_coord ( 7) = Coord_(FEAT_F128C(+0.68729290481168547014801980301933413753840121274));
348 rule.get_coord ( 8) = Coord_(FEAT_F128C(-0.82720131506976499318979474265039496103970110147));
349 rule.get_coord ( 9) = Coord_(FEAT_F128C(+0.82720131506976499318979474265039496103970110147));
350 rule.get_coord (10) = Coord_(FEAT_F128C(-0.92843488366357351733639113937787426447703921040));
351 rule.get_coord (11) = Coord_(FEAT_F128C(+0.92843488366357351733639113937787426447703921040));
352 rule.get_coord (12) = Coord_(FEAT_F128C(-0.98628380869681233884159726670405280167609140723));
353 rule.get_coord (13) = Coord_(FEAT_F128C(+0.98628380869681233884159726670405280167609140723));
354 rule.get_weight( 0) = Weight_(FEAT_F128C(0.215263853463157790195876443316260035274997558054));
355 rule.get_weight( 1) = Weight_(FEAT_F128C(0.215263853463157790195876443316260035274997558054));
356 rule.get_weight( 2) = Weight_(FEAT_F128C(0.205198463721295603965924065661218055710339061309));
357 rule.get_weight( 3) = Weight_(FEAT_F128C(0.205198463721295603965924065661218055710339061309));
358 rule.get_weight( 4) = Weight_(FEAT_F128C(0.185538397477937813741716590125157036248922602937));
359 rule.get_weight( 5) = Weight_(FEAT_F128C(0.185538397477937813741716590125157036248922602937));
360 rule.get_weight( 6) = Weight_(FEAT_F128C(0.157203167158193534569601938623842156605668037337));
361 rule.get_weight( 7) = Weight_(FEAT_F128C(0.157203167158193534569601938623842156605668037337));
362 rule.get_weight( 8) = Weight_(FEAT_F128C(0.121518570687903184689414809072476625956669345690));
363 rule.get_weight( 9) = Weight_(FEAT_F128C(0.121518570687903184689414809072476625956669345690));
364 rule.get_weight(10) = Weight_(FEAT_F128C(0.080158087159760209805633277062854309583697785394));
365 rule.get_weight(11) = Weight_(FEAT_F128C(0.080158087159760209805633277062854309583697785394));
366 rule.get_weight(12) = Weight_(FEAT_F128C(0.035119460331751863031832876138191780619705609277));
367 rule.get_weight(13) = Weight_(FEAT_F128C(0.035119460331751863031832876138191780619705609277));
368 break;
369
370 case 15:
371 rule.get_coord ( 0) = Coord_(FEAT_F128C(+0.0));
372 rule.get_coord ( 1) = Coord_(FEAT_F128C(-0.20119409399743452230062830339459620781283645446));
373 rule.get_coord ( 2) = Coord_(FEAT_F128C(+0.20119409399743452230062830339459620781283645446));
374 rule.get_coord ( 3) = Coord_(FEAT_F128C(-0.39415134707756336989720737098104546836275277615));
375 rule.get_coord ( 4) = Coord_(FEAT_F128C(+0.39415134707756336989720737098104546836275277615));
376 rule.get_coord ( 5) = Coord_(FEAT_F128C(-0.57097217260853884753722673725391064123838639628));
377 rule.get_coord ( 6) = Coord_(FEAT_F128C(+0.57097217260853884753722673725391064123838639628));
378 rule.get_coord ( 7) = Coord_(FEAT_F128C(-0.72441773136017004741618605461393800963089929458));
379 rule.get_coord ( 8) = Coord_(FEAT_F128C(+0.72441773136017004741618605461393800963089929458));
380 rule.get_coord ( 9) = Coord_(FEAT_F128C(-0.84820658341042721620064832077421685136625617473));
381 rule.get_coord (10) = Coord_(FEAT_F128C(+0.84820658341042721620064832077421685136625617473));
382 rule.get_coord (11) = Coord_(FEAT_F128C(-0.93727339240070590430775894771020947124399627351));
383 rule.get_coord (12) = Coord_(FEAT_F128C(+0.93727339240070590430775894771020947124399627351));
384 rule.get_coord (13) = Coord_(FEAT_F128C(-0.98799251802048542848956571858661258114697281712));
385 rule.get_coord (14) = Coord_(FEAT_F128C(+0.98799251802048542848956571858661258114697281712));
386 rule.get_weight( 0) = Weight_(FEAT_F128C(0.202578241925561272880620199967519314838662158009));
387 rule.get_weight( 1) = Weight_(FEAT_F128C(0.198431485327111576456118326443839324818692559957));
388 rule.get_weight( 2) = Weight_(FEAT_F128C(0.198431485327111576456118326443839324818692559957));
389 rule.get_weight( 3) = Weight_(FEAT_F128C(0.186161000015562211026800561866422824506226012277));
390 rule.get_weight( 4) = Weight_(FEAT_F128C(0.186161000015562211026800561866422824506226012277));
391 rule.get_weight( 5) = Weight_(FEAT_F128C(0.166269205816993933553200860481208811130900180098));
392 rule.get_weight( 6) = Weight_(FEAT_F128C(0.166269205816993933553200860481208811130900180098));
393 rule.get_weight( 7) = Weight_(FEAT_F128C(0.139570677926154314447804794511028322520850275315));
394 rule.get_weight( 8) = Weight_(FEAT_F128C(0.139570677926154314447804794511028322520850275315));
395 rule.get_weight( 9) = Weight_(FEAT_F128C(0.107159220467171935011869546685869303415543715758));
396 rule.get_weight(10) = Weight_(FEAT_F128C(0.107159220467171935011869546685869303415543715758));
397 rule.get_weight(11) = Weight_(FEAT_F128C(0.070366047488108124709267416450667338466708032754));
398 rule.get_weight(12) = Weight_(FEAT_F128C(0.070366047488108124709267416450667338466708032754));
399 rule.get_weight(13) = Weight_(FEAT_F128C(0.030753241996117268354628393577204417721748144833));
400 rule.get_weight(14) = Weight_(FEAT_F128C(0.030753241996117268354628393577204417721748144833));
401 break;
402
403 case 16:
404 rule.get_coord ( 0) = Coord_(FEAT_F128C(-0.09501250983763744018531933542495806313035305568));
405 rule.get_coord ( 1) = Coord_(FEAT_F128C(+0.09501250983763744018531933542495806313035305568));
406 rule.get_coord ( 2) = Coord_(FEAT_F128C(-0.28160355077925891323046050146049610648606949077));
407 rule.get_coord ( 3) = Coord_(FEAT_F128C(+0.28160355077925891323046050146049610648606949077));
408 rule.get_coord ( 4) = Coord_(FEAT_F128C(-0.45801677765722738634241944298357757354003161303));
409 rule.get_coord ( 5) = Coord_(FEAT_F128C(+0.45801677765722738634241944298357757354003161303));
410 rule.get_coord ( 6) = Coord_(FEAT_F128C(-0.61787624440264374844667176404879101899188221776));
411 rule.get_coord ( 7) = Coord_(FEAT_F128C(+0.61787624440264374844667176404879101899188221776));
412 rule.get_coord ( 8) = Coord_(FEAT_F128C(-0.75540440835500303389510119484744226835381365645));
413 rule.get_coord ( 9) = Coord_(FEAT_F128C(+0.75540440835500303389510119484744226835381365645));
414 rule.get_coord (10) = Coord_(FEAT_F128C(-0.86563120238783174388046789771239313238733538484));
415 rule.get_coord (11) = Coord_(FEAT_F128C(+0.86563120238783174388046789771239313238733538484));
416 rule.get_coord (12) = Coord_(FEAT_F128C(-0.94457502307323257607798841553460834509113927259));
417 rule.get_coord (13) = Coord_(FEAT_F128C(+0.94457502307323257607798841553460834509113927259));
418 rule.get_coord (14) = Coord_(FEAT_F128C(-0.98940093499164993259615417345033262742627407165));
419 rule.get_coord (15) = Coord_(FEAT_F128C(+0.98940093499164993259615417345033262742627407165));
420 rule.get_weight( 0) = Weight_(FEAT_F128C(0.189450610455068496285396723208283105146908988395));
421 rule.get_weight( 1) = Weight_(FEAT_F128C(0.189450610455068496285396723208283105146908988395));
422 rule.get_weight( 2) = Weight_(FEAT_F128C(0.182603415044923588866763667969219939383556223654));
423 rule.get_weight( 3) = Weight_(FEAT_F128C(0.182603415044923588866763667969219939383556223654));
424 rule.get_weight( 4) = Weight_(FEAT_F128C(0.169156519395002538189312079030359962211639473416));
425 rule.get_weight( 5) = Weight_(FEAT_F128C(0.169156519395002538189312079030359962211639473416));
426 rule.get_weight( 6) = Weight_(FEAT_F128C(0.149595988816576732081501730547478548970491068207));
427 rule.get_weight( 7) = Weight_(FEAT_F128C(0.149595988816576732081501730547478548970491068207));
428 rule.get_weight( 8) = Weight_(FEAT_F128C(0.124628971255533872052476282192016420144886859222));
429 rule.get_weight( 9) = Weight_(FEAT_F128C(0.124628971255533872052476282192016420144886859222));
430 rule.get_weight(10) = Weight_(FEAT_F128C(0.095158511682492784809925107602246226355263503183));
431 rule.get_weight(11) = Weight_(FEAT_F128C(0.095158511682492784809925107602246226355263503183));
432 rule.get_weight(12) = Weight_(FEAT_F128C(0.062253523938647892862843836994377694274986508352));
433 rule.get_weight(13) = Weight_(FEAT_F128C(0.062253523938647892862843836994377694274986508352));
434 rule.get_weight(14) = Weight_(FEAT_F128C(0.027152459411754094851780572456018103512267375566));
435 rule.get_weight(15) = Weight_(FEAT_F128C(0.027152459411754094851780572456018103512267375566));
436 break;
437
438 case 17:
439 rule.get_coord ( 0) = Coord_(FEAT_F128C(+0.0));
440 rule.get_coord ( 1) = Coord_(FEAT_F128C(-0.17848418149584785585067749365406555747541933269));
441 rule.get_coord ( 2) = Coord_(FEAT_F128C(+0.17848418149584785585067749365406555747541933269));
442 rule.get_coord ( 3) = Coord_(FEAT_F128C(-0.35123176345387631529718551709534600504053975157));
443 rule.get_coord ( 4) = Coord_(FEAT_F128C(+0.35123176345387631529718551709534600504053975157));
444 rule.get_coord ( 5) = Coord_(FEAT_F128C(-0.51269053708647696788624656862955187458292372241));
445 rule.get_coord ( 6) = Coord_(FEAT_F128C(+0.51269053708647696788624656862955187458292372241));
446 rule.get_coord ( 7) = Coord_(FEAT_F128C(-0.65767115921669076585030221664300233514780589147));
447 rule.get_coord ( 8) = Coord_(FEAT_F128C(+0.65767115921669076585030221664300233514780589147));
448 rule.get_coord ( 9) = Coord_(FEAT_F128C(-0.78151400389680140692523005552047605022397247274));
449 rule.get_coord (10) = Coord_(FEAT_F128C(+0.78151400389680140692523005552047605022397247274));
450 rule.get_coord (11) = Coord_(FEAT_F128C(-0.88023915372698590212295569448815569262341681793));
451 rule.get_coord (12) = Coord_(FEAT_F128C(+0.88023915372698590212295569448815569262341681793));
452 rule.get_coord (13) = Coord_(FEAT_F128C(-0.95067552176876776122271695789580302144338504655));
453 rule.get_coord (14) = Coord_(FEAT_F128C(+0.95067552176876776122271695789580302144338504655));
454 rule.get_coord (15) = Coord_(FEAT_F128C(-0.99057547531441733567543401994066527650778985045));
455 rule.get_coord (16) = Coord_(FEAT_F128C(+0.99057547531441733567543401994066527650778985045));
456 rule.get_weight( 0) = Weight_(FEAT_F128C(0.179446470356206525458265644261885621448780319897));
457 rule.get_weight( 1) = Weight_(FEAT_F128C(0.176562705366992646325270990113197239150924418000));
458 rule.get_weight( 2) = Weight_(FEAT_F128C(0.176562705366992646325270990113197239150924418000));
459 rule.get_weight( 3) = Weight_(FEAT_F128C(0.168004102156450044509970663788323155021198128965));
460 rule.get_weight( 4) = Weight_(FEAT_F128C(0.168004102156450044509970663788323155021198128965));
461 rule.get_weight( 5) = Weight_(FEAT_F128C(0.154045761076810288081431594801958611940483058471));
462 rule.get_weight( 6) = Weight_(FEAT_F128C(0.154045761076810288081431594801958611940483058471));
463 rule.get_weight( 7) = Weight_(FEAT_F128C(0.135136368468525473286319981702350197372125853234));
464 rule.get_weight( 8) = Weight_(FEAT_F128C(0.135136368468525473286319981702350197372125853234));
465 rule.get_weight( 9) = Weight_(FEAT_F128C(0.111883847193403971094788385626355926735843424263));
466 rule.get_weight(10) = Weight_(FEAT_F128C(0.111883847193403971094788385626355926735843424263));
467 rule.get_weight(11) = Weight_(FEAT_F128C(0.085036148317179180883535370191062073850491389218));
468 rule.get_weight(12) = Weight_(FEAT_F128C(0.085036148317179180883535370191062073850491389218));
469 rule.get_weight(13) = Weight_(FEAT_F128C(0.055459529373987201129440165358244660512846251953));
470 rule.get_weight(14) = Weight_(FEAT_F128C(0.055459529373987201129440165358244660512846251953));
471 rule.get_weight(15) = Weight_(FEAT_F128C(0.024148302868547931960110026287565324691697315945));
472 rule.get_weight(16) = Weight_(FEAT_F128C(0.024148302868547931960110026287565324691697315945));
473 break;
474
475 case 18:
476 rule.get_coord ( 0) = Coord_(FEAT_F128C(-0.08477501304173530124226185293578381173331738690));
477 rule.get_coord ( 1) = Coord_(FEAT_F128C(+0.08477501304173530124226185293578381173331738690));
478 rule.get_coord ( 2) = Coord_(FEAT_F128C(-0.25188622569150550958897285487791123016286176565));
479 rule.get_coord ( 3) = Coord_(FEAT_F128C(+0.25188622569150550958897285487791123016286176565));
480 rule.get_coord ( 4) = Coord_(FEAT_F128C(-0.41175116146284264603593179383305163707898968212));
481 rule.get_coord ( 5) = Coord_(FEAT_F128C(+0.41175116146284264603593179383305163707898968212));
482 rule.get_coord ( 6) = Coord_(FEAT_F128C(-0.55977083107394753460787154852532913692762648577));
483 rule.get_coord ( 7) = Coord_(FEAT_F128C(+0.55977083107394753460787154852532913692762648577));
484 rule.get_coord ( 8) = Coord_(FEAT_F128C(-0.69168704306035320787489108128884838945227057281));
485 rule.get_coord ( 9) = Coord_(FEAT_F128C(+0.69168704306035320787489108128884838945227057281));
486 rule.get_coord (10) = Coord_(FEAT_F128C(-0.80370495897252311568241745501459079710329892161));
487 rule.get_coord (11) = Coord_(FEAT_F128C(+0.80370495897252311568241745501459079710329892161));
488 rule.get_coord (12) = Coord_(FEAT_F128C(-0.89260246649755573920606059112714551540789527135));
489 rule.get_coord (13) = Coord_(FEAT_F128C(+0.89260246649755573920606059112714551540789527135));
490 rule.get_coord (14) = Coord_(FEAT_F128C(-0.95582394957139775518119589292977630997284413481));
491 rule.get_coord (15) = Coord_(FEAT_F128C(+0.95582394957139775518119589292977630997284413481));
492 rule.get_coord (16) = Coord_(FEAT_F128C(-0.99156516842093094673001600470615077025257893684));
493 rule.get_coord (17) = Coord_(FEAT_F128C(+0.99156516842093094673001600470615077025257893684));
494 rule.get_weight( 0) = Weight_(FEAT_F128C(0.169142382963143591840656470134986610334105819370));
495 rule.get_weight( 1) = Weight_(FEAT_F128C(0.169142382963143591840656470134986610334105819370));
496 rule.get_weight( 2) = Weight_(FEAT_F128C(0.164276483745832722986053776465927590412338953997));
497 rule.get_weight( 3) = Weight_(FEAT_F128C(0.164276483745832722986053776465927590412338953997));
498 rule.get_weight( 4) = Weight_(FEAT_F128C(0.154684675126265244925418003836374772193218396267));
499 rule.get_weight( 5) = Weight_(FEAT_F128C(0.154684675126265244925418003836374772193218396267));
500 rule.get_weight( 6) = Weight_(FEAT_F128C(0.140642914670650651204731303751947228095502410330));
501 rule.get_weight( 7) = Weight_(FEAT_F128C(0.140642914670650651204731303751947228095502410330));
502 rule.get_weight( 8) = Weight_(FEAT_F128C(0.122555206711478460184519126800201555228163897333));
503 rule.get_weight( 9) = Weight_(FEAT_F128C(0.122555206711478460184519126800201555228163897333));
504 rule.get_weight(10) = Weight_(FEAT_F128C(0.100942044106287165562813984924834607062801138887));
505 rule.get_weight(11) = Weight_(FEAT_F128C(0.100942044106287165562813984924834607062801138887));
506 rule.get_weight(12) = Weight_(FEAT_F128C(0.076425730254889056529129677616636525605317906208));
507 rule.get_weight(13) = Weight_(FEAT_F128C(0.076425730254889056529129677616636525605317906208));
508 rule.get_weight(14) = Weight_(FEAT_F128C(0.049714548894969796453334946202638641680866246128));
509 rule.get_weight(15) = Weight_(FEAT_F128C(0.049714548894969796453334946202638641680866246128));
510 rule.get_weight(16) = Weight_(FEAT_F128C(0.021616013526483310313342710266452469387685231475));
511 rule.get_weight(17) = Weight_(FEAT_F128C(0.021616013526483310313342710266452469387685231475));
512 break;
513
514 case 19:
515 rule.get_coord ( 0) = Coord_(FEAT_F128C(+0.0));
516 rule.get_coord ( 1) = Coord_(FEAT_F128C(-0.16035864564022537586809611574074354950487350047));
517 rule.get_coord ( 2) = Coord_(FEAT_F128C(+0.16035864564022537586809611574074354950487350047));
518 rule.get_coord ( 3) = Coord_(FEAT_F128C(-0.31656409996362983199011732884984491789228521913));
519 rule.get_coord ( 4) = Coord_(FEAT_F128C(+0.31656409996362983199011732884984491789228521913));
520 rule.get_coord ( 5) = Coord_(FEAT_F128C(-0.46457074137596094571726714810410236797628571462));
521 rule.get_coord ( 6) = Coord_(FEAT_F128C(+0.46457074137596094571726714810410236797628571462));
522 rule.get_coord ( 7) = Coord_(FEAT_F128C(-0.60054530466168102346963816494623927986832208273));
523 rule.get_coord ( 8) = Coord_(FEAT_F128C(+0.60054530466168102346963816494623927986832208273));
524 rule.get_coord ( 9) = Coord_(FEAT_F128C(-0.72096617733522937861709586082378162965714183290));
525 rule.get_coord (10) = Coord_(FEAT_F128C(+0.72096617733522937861709586082378162965714183290));
526 rule.get_coord (11) = Coord_(FEAT_F128C(-0.82271465653714282497892248671271390177453848620));
527 rule.get_coord (12) = Coord_(FEAT_F128C(+0.82271465653714282497892248671271390177453848620));
528 rule.get_coord (13) = Coord_(FEAT_F128C(-0.90315590361481790164266092853231248780939393405));
529 rule.get_coord (14) = Coord_(FEAT_F128C(+0.90315590361481790164266092853231248780939393405));
530 rule.get_coord (15) = Coord_(FEAT_F128C(-0.96020815213483003085277884068765152661509150327));
531 rule.get_coord (16) = Coord_(FEAT_F128C(+0.96020815213483003085277884068765152661509150327));
532 rule.get_coord (17) = Coord_(FEAT_F128C(-0.99240684384358440318901767025326049358931640140));
533 rule.get_coord (18) = Coord_(FEAT_F128C(+0.99240684384358440318901767025326049358931640140));
534 rule.get_weight( 0) = Weight_(FEAT_F128C(0.161054449848783695979163625320916735039902558578));
535 rule.get_weight( 1) = Weight_(FEAT_F128C(0.158968843393954347649956439465047201678780158195));
536 rule.get_weight( 2) = Weight_(FEAT_F128C(0.158968843393954347649956439465047201678780158195));
537 rule.get_weight( 3) = Weight_(FEAT_F128C(0.152766042065859666778855400897662998461008267236));
538 rule.get_weight( 4) = Weight_(FEAT_F128C(0.152766042065859666778855400897662998461008267236));
539 rule.get_weight( 5) = Weight_(FEAT_F128C(0.142606702173606611775746109441902972475668344824));
540 rule.get_weight( 6) = Weight_(FEAT_F128C(0.142606702173606611775746109441902972475668344824));
541 rule.get_weight( 7) = Weight_(FEAT_F128C(0.128753962539336227675515784856877117055839577093));
542 rule.get_weight( 8) = Weight_(FEAT_F128C(0.128753962539336227675515784856877117055839577093));
543 rule.get_weight( 9) = Weight_(FEAT_F128C(0.111566645547333994716023901681765997481331853839));
544 rule.get_weight(10) = Weight_(FEAT_F128C(0.111566645547333994716023901681765997481331853839));
545 rule.get_weight(11) = Weight_(FEAT_F128C(0.091490021622449999464462094123839652660911651296));
546 rule.get_weight(12) = Weight_(FEAT_F128C(0.091490021622449999464462094123839652660911651296));
547 rule.get_weight(13) = Weight_(FEAT_F128C(0.069044542737641226580708258006013044961848031687));
548 rule.get_weight(14) = Weight_(FEAT_F128C(0.069044542737641226580708258006013044961848031687));
549 rule.get_weight(15) = Weight_(FEAT_F128C(0.044814226765699600332838157401994211951754227467));
550 rule.get_weight(16) = Weight_(FEAT_F128C(0.044814226765699600332838157401994211951754227467));
551 rule.get_weight(17) = Weight_(FEAT_F128C(0.019461788229726477036312041464438435752906609069));
552 rule.get_weight(18) = Weight_(FEAT_F128C(0.019461788229726477036312041464438435752906609069));
553 break;
554
555 case 20:
556 rule.get_coord ( 0) = Coord_(FEAT_F128C(-0.07652652113349733375464040939883821100479626681));
557 rule.get_coord ( 1) = Coord_(FEAT_F128C(+0.07652652113349733375464040939883821100479626681));
558 rule.get_coord ( 2) = Coord_(FEAT_F128C(-0.22778585114164507808049619536857462474308893768));
559 rule.get_coord ( 3) = Coord_(FEAT_F128C(+0.22778585114164507808049619536857462474308893768));
560 rule.get_coord ( 4) = Coord_(FEAT_F128C(-0.37370608871541956067254817702492723739574632170));
561 rule.get_coord ( 5) = Coord_(FEAT_F128C(+0.37370608871541956067254817702492723739574632170));
562 rule.get_coord ( 6) = Coord_(FEAT_F128C(-0.51086700195082709800436405095525099842549132920));
563 rule.get_coord ( 7) = Coord_(FEAT_F128C(+0.51086700195082709800436405095525099842549132920));
564 rule.get_coord ( 8) = Coord_(FEAT_F128C(-0.63605368072651502545283669622628593674338911679));
565 rule.get_coord ( 9) = Coord_(FEAT_F128C(+0.63605368072651502545283669622628593674338911679));
566 rule.get_coord (10) = Coord_(FEAT_F128C(-0.74633190646015079261430507035564159031073067956));
567 rule.get_coord (11) = Coord_(FEAT_F128C(+0.74633190646015079261430507035564159031073067956));
568 rule.get_coord (12) = Coord_(FEAT_F128C(-0.83911697182221882339452906170152068532962936506));
569 rule.get_coord (13) = Coord_(FEAT_F128C(+0.83911697182221882339452906170152068532962936506));
570 rule.get_coord (14) = Coord_(FEAT_F128C(-0.91223442825132590586775244120329811304918479742));
571 rule.get_coord (15) = Coord_(FEAT_F128C(+0.91223442825132590586775244120329811304918479742));
572 rule.get_coord (16) = Coord_(FEAT_F128C(-0.96397192727791379126766613119727722191206032780));
573 rule.get_coord (17) = Coord_(FEAT_F128C(+0.96397192727791379126766613119727722191206032780));
574 rule.get_coord (18) = Coord_(FEAT_F128C(-0.99312859918509492478612238847132027822264713090));
575 rule.get_coord (19) = Coord_(FEAT_F128C(+0.99312859918509492478612238847132027822264713090));
576 rule.get_weight( 0) = Weight_(FEAT_F128C(0.152753387130725850698084331955097593491948645112));
577 rule.get_weight( 1) = Weight_(FEAT_F128C(0.152753387130725850698084331955097593491948645112));
578 rule.get_weight( 2) = Weight_(FEAT_F128C(0.149172986472603746787828737001969436692679904081));
579 rule.get_weight( 3) = Weight_(FEAT_F128C(0.149172986472603746787828737001969436692679904081));
580 rule.get_weight( 4) = Weight_(FEAT_F128C(0.142096109318382051329298325067164933034515413392));
581 rule.get_weight( 5) = Weight_(FEAT_F128C(0.142096109318382051329298325067164933034515413392));
582 rule.get_weight( 6) = Weight_(FEAT_F128C(0.131688638449176626898494499748163134916110511146));
583 rule.get_weight( 7) = Weight_(FEAT_F128C(0.131688638449176626898494499748163134916110511146));
584 rule.get_weight( 8) = Weight_(FEAT_F128C(0.118194531961518417312377377711382287005041219548));
585 rule.get_weight( 9) = Weight_(FEAT_F128C(0.118194531961518417312377377711382287005041219548));
586 rule.get_weight(10) = Weight_(FEAT_F128C(0.101930119817240435036750135480349876166691656023));
587 rule.get_weight(11) = Weight_(FEAT_F128C(0.101930119817240435036750135480349876166691656023));
588 rule.get_weight(12) = Weight_(FEAT_F128C(0.083276741576704748724758143222046206100177828583));
589 rule.get_weight(13) = Weight_(FEAT_F128C(0.083276741576704748724758143222046206100177828583));
590 rule.get_weight(14) = Weight_(FEAT_F128C(0.062672048334109063569506535187041606351601076578));
591 rule.get_weight(15) = Weight_(FEAT_F128C(0.062672048334109063569506535187041606351601076578));
592 rule.get_weight(16) = Weight_(FEAT_F128C(0.040601429800386941331039952274932109879090639989));
593 rule.get_weight(17) = Weight_(FEAT_F128C(0.040601429800386941331039952274932109879090639989));
594 rule.get_weight(18) = Weight_(FEAT_F128C(0.017614007139152118311861962351852816362143105543));
595 rule.get_weight(19) = Weight_(FEAT_F128C(0.017614007139152118311861962351852816362143105543));
596 break;
597 }
598 }
599 }; // class GaussLegendreDriver<...>
600 } // namespace Scalar
601 } // namespace Cubature
602} // namespace FEAT
Scalar cubature driver base class.
Definition: driver_base.hpp:23
Gauss-Legendre Rule driver class template.
static constexpr int max_points
this rule has at most 5 points
static constexpr int min_points
this rule has at least 1 point
static void fill(Rule< Weight_, Coord_ > &rule, int num_points)
Fills the cubature rule structure.
static constexpr bool variadic
this rule is variadic
static String name()
Returns the name of the cubature rule.
Scalar Cubature Rule class template.
Definition: rule.hpp:39
String class implementation.
Definition: string.hpp:46
FEAT namespace.
Definition: adjactor.hpp:12