v0.13.2
Loading...
Searching...
No Matches
quad.c
Go to the documentation of this file.
1/* Parallel Hierarchical Grid -- an adaptive finite element library.
2 *
3 * Copyright (C) 2005-2010 State Key Laboratory of Scientific and
4 * Engineering Computing, Chinese Academy of Sciences. */
5
6/* This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
19 * MA 02110-1301 USA */
20
21/* $Id: quad.c,v 1.229 2015/10/09 06:33:18 zlb Exp $ */
22
23/* Numerical Quadrature */
24
25#define _F(n) n /* no suffix */
26#define FALSE 0
27#define TRUE 1
28
29#include "quad.h"
30#include "quad-permu.h"
31
32#ifdef Length
33# undef Length
34#endif
35#define Length(wts) (sizeof(wts) / (sizeof(wts[0])))
36
37/*--------------------------- 1D quadrature rules ------------------------*/
38
39static double QUAD_1D_P1_wts[] = {
40 Dup2(1.)
41};
42static double QUAD_1D_P1_pts[Length(QUAD_1D_P1_wts) * 2] = {
43 Perm2(.5)
44};
46 "1D P1", /* name */
47 1, /* dim */
48 1, /* order */
49 Length(QUAD_1D_P1_wts), /* npoints */
50 QUAD_1D_P1_pts, /* points */
51 QUAD_1D_P1_wts, /* weights */
52 -1 /* id */
53};
54
55static double QUAD_1D_P3_wts[] = {
56 Dup11(.5)
57};
58static double QUAD_1D_P3_pts[Length(QUAD_1D_P3_wts) * 2] = {
59 /* (3 - sqrt(3)) / 6, (3 + sqrt(3)) / 6 */
60 Perm11(.21132486540518711774542560974902127)
61};
63 "1D P3", /* name */
64 1, /* dim */
65 3, /* order */
66 Length(QUAD_1D_P3_wts), /* npoints */
67 QUAD_1D_P3_pts, /* points */
68 QUAD_1D_P3_wts, /* weights */
69 -1 /* id */
70};
71
72static double QUAD_1D_P5_wts[] = {
73 Dup11(5./18.),
74 Dup2(4./9.)
75};
76static double QUAD_1D_P5_pts[Length(QUAD_1D_P5_wts) * 2] = {
77 /* (5 - sqrt(15)) / 10, 1 / 2, (5 + sqrt(15)) / 10 */
78 Perm11(.11270166537925831148207346002176004),
79 Perm2(.5)
80};
82 "1D P5", /* name */
83 1, /* dim */
84 5, /* order */
85 Length(QUAD_1D_P5_wts), /* npoints */
86 QUAD_1D_P5_pts, /* points */
87 QUAD_1D_P5_wts, /* weights */
88 -1 /* id */
89};
90
91static double QUAD_1D_P7_wts[] = {
92 /* (18 - sqrt(30)) / 72, (18 + sqrt(30)) / 72 */
93 Dup11(.17392742256872692868653197461099970),
94 Dup11(.32607257743127307131346802538900030)
95};
96static double QUAD_1D_P7_pts[Length(QUAD_1D_P7_wts) * 2] = {
97 /* (35 \pm sqrt(525 \pm 70 * sqrt(30))) / 70 */
98 Perm11(.06943184420297371238802675555359525),
99 Perm11(.33000947820757186759866712044837766)
100};
102 "1D P7", /* name */
103 1, /* dim */
104 7, /* order */
105 Length(QUAD_1D_P7_wts), /* npoints */
106 QUAD_1D_P7_pts, /* points */
107 QUAD_1D_P7_wts, /* weights */
108 -1 /* id */
109};
110
111static double QUAD_1D_P9_wts[] = {
112 /* (322 \pm 13 * sqrt(70)) / 1800 */
113 Dup2(128./450.),
114 Dup11(.11846344252809454375713202035995868),
115 Dup11(.23931433524968323402064575741781910)
116};
117static double QUAD_1D_P9_pts[Length(QUAD_1D_P9_wts) * 2] = {
118 /* (21 \pm sqrt(245 \pm 14 * sqrt(70))) / 42 */
119 Perm2(0.5),
120 Perm11(.04691007703066800360118656085030352),
121 Perm11(.23076534494715845448184278964989560)
122};
124 "1D P9", /* name */
125 1, /* dim */
126 9, /* order */
127 Length(QUAD_1D_P9_wts), /* npoints */
128 QUAD_1D_P9_pts, /* points */
129 QUAD_1D_P9_wts, /* weights */
130 -1 /* id */
131};
132
133static double QUAD_1D_P11_wts[] = {
134 Dup11(.08566224618958517252014807108636645),
135 Dup11(.18038078652406930378491675691885806),
136 Dup11(.23395696728634552369493517199477550)
137};
139 Perm11(.96623475710157601390615077724699730),
140 Perm11(.83060469323313225683069979750995267),
141 Perm11(.61930959304159845431525086084035597)
142};
144 "1D P11", /* name */
145 1, /* dim */
146 11, /* order */
147 Length(QUAD_1D_P11_wts), /* npoints */
148 QUAD_1D_P11_pts, /* points */
149 QUAD_1D_P11_wts, /* weights */
150 -1 /* id */
151};
152
153static double QUAD_1D_P13_wts[] = {
154 Dup11(.06474248308443484663530571633954101),
155 Dup11(.13985269574463833395073388571188979),
156 Dup11(.19091502525255947247518488774448757),
157 Dup2(.20897959183673469387755102040816327)
158};
160 Perm11(.97455395617137926226309484202392563),
161 Perm11(.87076559279969721993193238664039420),
162 Perm11(.70292257568869858345330320603848073),
163 Perm2(.5)
164};
166 "1D P13", /* name */
167 1, /* dim */
168 13, /* order */
169 Length(QUAD_1D_P13_wts), /* npoints */
170 QUAD_1D_P13_pts, /* points */
171 QUAD_1D_P13_wts, /* weights */
172 -1 /* id */
173};
174
175static double QUAD_1D_P15_wts[] = {
176 Dup11(.05061426814518812957626567715498110),
177 Dup11(.11119051722668723527217799721312044),
178 Dup11(.15685332293894364366898110099330066),
179 Dup11(.18134189168918099148257522463859781)
180};
182 Perm11(.98014492824876811584178043428473650),
183 Perm11(.89833323870681336979577696823791522),
184 Perm11(.76276620495816449290886952459462317),
185 Perm11(.59171732124782490246973807118009199)
186};
188 "1D P15", /* name */
189 1, /* dim */
190 15, /* order */
191 Length(QUAD_1D_P15_wts), /* npoints */
192 QUAD_1D_P15_pts, /* points */
193 QUAD_1D_P15_wts, /* weights */
194 -1 /* id */
195};
196
197static double QUAD_1D_P17_wts[] = {
198 Dup11(.04063719418078720598594607905526183),
199 Dup11(.09032408034742870202923601562145640),
200 Dup11(.13030534820146773115937143470931642),
201 Dup11(.15617353852000142003431520329222183),
202 Dup2(.16511967750062988158226253464348702)
203};
205 Perm11(.98408011975381304491778810145183644),
206 Perm11(.91801555366331789714971489403486744),
207 Perm11(.80668571635029519865435101967073709),
208 Perm11(.66212671170190446451926900732166830),
209 Perm2(.5)
210};
212 "1D P17", /* name */
213 1, /* dim */
214 17, /* order */
215 Length(QUAD_1D_P17_wts), /* npoints */
216 QUAD_1D_P17_pts, /* points */
217 QUAD_1D_P17_wts, /* weights */
218 -1 /* id */
219};
220
221static double QUAD_1D_P19_wts[] = {
222 Dup11(.03333567215434406879678440494666590),
223 Dup11(.07472567457529029657288816982884867),
224 Dup11(.10954318125799102199776746711408160),
225 Dup11(.13463335965499817754561346078473468),
226 Dup11(.14776211235737643508694649732566916)
227};
229 Perm11(.98695326425858586003898200604222603),
230 Perm11(.93253168334449225536604834421174652),
231 Perm11(.83970478414951220311716368255743679),
232 Perm11(.71669769706462359539963297158289208),
233 Perm11(.57443716949081560544241300056485999)
234};
236 "1D P19", /* name */
237 1, /* dim */
238 19, /* order */
239 Length(QUAD_1D_P19_wts), /* npoints */
240 QUAD_1D_P19_pts, /* points */
241 QUAD_1D_P19_wts, /* weights */
242 -1 /* id */
243};
244
245static double QUAD_1D_P21_wts[] = {
246 Dup11(.02783428355808683324137686022127429),
247 Dup11(.06279018473245231231734714961197005),
248 Dup11(.09314510546386712571304882071582795),
249 Dup11(.11659688229599523995926185242158757),
250 Dup11(.13140227225512333109034443494525460),
251 Dup2(.13646254338895031535724176416817109)
252};
254 Perm11(.98911432907302849640196900056142870),
255 Perm11(.94353129988404764953757888465196363),
256 Perm11(.86507600278702466204670812601557673),
257 Perm11(.75954806460340590796286283472930478),
258 Perm11(.63477157797617248616576599270043076),
259 Perm2(.5)
260};
262 "1D P21", /* name */
263 1, /* dim */
264 21, /* order */
265 Length(QUAD_1D_P21_wts), /* npoints */
266 QUAD_1D_P21_pts, /* points */
267 QUAD_1D_P21_wts, /* weights */
268 -1 /* id */
269};
270
271/*--------------------------- 2D cubature rules ------------------------*/
272
273static double QUAD_2D_P1_wts[] = {
274 Dup3(1.)
275};
276static double QUAD_2D_P1_pts[Length(QUAD_2D_P1_wts) * 3] = {
277 Perm3(1./3.)
278};
280 "2D P1", /* name */
281 2, /* dim */
282 1, /* order */
283 Length(QUAD_2D_P1_wts), /* npoints = 1 */
284 QUAD_2D_P1_pts, /* points */
285 QUAD_2D_P1_wts, /* weights */
286 -1 /* id */
287};
288
289static double QUAD_2D_P2_wts[] = {
290 Dup21(1./3.)
291};
292static double QUAD_2D_P2_pts[Length(QUAD_2D_P2_wts) * 3] = {
293 Perm21(1./6.)
294};
296 "2D P2", /* name */
297 2, /* dim */
298 2, /* order */
299 Length(QUAD_2D_P2_wts), /* npoints = 3 */
300 QUAD_2D_P2_pts, /* points */
301 QUAD_2D_P2_wts, /* weights */
302 -1 /* id */
303};
304
305#if 0
306/* Note: this rule has points on the edges */
307static double QUAD_2D_P3_wts[] = {
308 Dup21(1./30.),
309 Dup21(3./10.)
310};
311static double QUAD_2D_P3_pts[Length(QUAD_2D_P3_wts) * 3] = {
312 Perm21(.5),
313 /* 1/6 */
314 Perm21(1./6.)
315};
316#else
317static double QUAD_2D_P3_wts[] = {
318 Dup21(.28114980244097964825351432270207695),
319 Dup21(.05218353089235368507981901063125638)
320};
321static double QUAD_2D_P3_pts[Length(QUAD_2D_P3_wts) * 3] = {
322 Perm21(.16288285039589191090016180418490635),
323 Perm21(.47791988356756370000000000000000000)
324};
325#endif
327 "2D P3", /* name */
328 2, /* dim */
329 3, /* order */
330 Length(QUAD_2D_P3_wts), /* npoints = 6 */
331 QUAD_2D_P3_pts, /* points */
332 QUAD_2D_P3_wts, /* weights */
333 -1 /* id */
334};
335
336static double QUAD_2D_P4_wts[] = {
337 /* (620 + sqrt(213125 - 53320 * sqrt(10))) / 3720 */
338 Dup21(.22338158967801146569500700843312280),
339 /* (620 - sqrt(213125 - 53320 * sqrt(10))) / 3720 */
340 Dup21(.10995174365532186763832632490021053)
341};
342static double QUAD_2D_P4_pts[Length(QUAD_2D_P4_wts) * 3] = {
343 /* (8 - sqrt(10) + sqrt(38 - 44 * sqrt(2 / 5))) / 18 */
344 Perm21(.44594849091596488631832925388305199),
345 /* (8 - sqrt(10) - sqrt(38 - 44 * sqrt(2 / 5))) / 18 */
346 Perm21(.09157621350977074345957146340220151)
347};
349 "2D P4", /* name */
350 2, /* dim */
351 4, /* order */
352 Length(QUAD_2D_P4_wts), /* npoints = 6 */
353 QUAD_2D_P4_pts, /* points */
354 QUAD_2D_P4_wts, /* weights */
355 -1 /* id */
356};
357
358static double QUAD_2D_P5_wts[] = {
359 /* (155 - sqrt(15)) / 1200 */
360 Dup21(.12593918054482715259568394550018133),
361 /* (155 + sqrt(15)) / 1200 */
362 Dup21(.13239415278850618073764938783315200),
363 Dup3(9./40.)
364};
365static double QUAD_2D_P5_pts[Length(QUAD_2D_P5_wts) * 3] = {
366 /* (6 - sqrt(15)) / 21 */
367 Perm21(.10128650732345633880098736191512383),
368 /* (6 + sqrt(15)) / 21 */
369 Perm21(.47014206410511508977044120951344760),
370 /* 1 / 3 */
371 Perm3(1./3.)
372};
374 "2D P5", /* name */
375 2, /* dim */
376 5, /* order */
377 Length(QUAD_2D_P5_wts), /* npoints = 7 */
378 QUAD_2D_P5_pts, /* points */
379 QUAD_2D_P5_wts, /* weights */
380 -1 /* id */
381};
382
383#if 0
384/* An 11-point unsymmetric rule reported in:
385 * Day, David M., Mark A. Taylor, "A new 11 point degree 6 cubature
386 * formula for the triangle [Proceedings of the ICIAM 2007],"
387 * Journal Article, Proceedings of Applied Mathematics and Mechanics,
388 * Accepted/Published January 2008. */
389static double QUAD_2D_P6_wts[] = {
390 Dup0(.03806807185295551439063192528703396),
391 Dup0(.03837935530775265554764109222240791),
392 Dup0(.04620045674456241859455515980217997),
393 Dup0(.05346758944419901689402679518609906),
394 Dup0(.08375582696574588108371037842585680),
395 Dup0(.10164483302551605906571229513115369),
396 Dup0(.10186152446136717571450065716620939),
397 Dup0(.11142183166000185684914076857474210),
398 Dup0(.11200945026294611573462286906312035),
399 Dup0(.12478757143755821156418716664966669),
400 Dup0(.18840348883739509456127089249153007)
401};
402static double QUAD_2D_P6_pts[Length(QUAD_2D_P6_wts) * 3] = {
403 Perm30(.05725498667747685254386401337490528,.89549814678987956946437486806257514),
404 Perm30(.89536264002457947703053711751108844,.06182822125032174107784815639931401),
405 Perm30(.68447574845651404000000000000000000,.02334373849768321288645813914257559),
406 Perm30(.06874625591502945506138017629748138,.06003027574726303099667885025487684),
407 Perm30(.61567620557584050877805946045395354,.33346180834137626773374382178966904),
408 Perm30(.62794614119778946000000000000000000,.15918918599215148000000000000000000),
409 Perm30(.06290913834186374714863309341182919,.65529509370545247000000000000000000),
410 Perm30(.06837821192050999512347955121812458,.30911768542826747346974929569953382),
411 Perm30(.28752945837439246626570898085589649,.63642650917962018000000000000000000),
412 Perm30(.32878355641313448865307686080999177,.07702400564246333220945276738749036),
413 Perm30(.31229040501364539638767631759216157,.35234478644589918332680050733851911)
414};
416 "2D P6", /* name */
417 2, /* dim */
418 6, /* order */
419 Length(QUAD_2D_P6_wts), /* npoints = 11 */
420 QUAD_2D_P6_pts, /* points */
421 QUAD_2D_P6_wts, /* weights */
422 -1 /* id */
423};
424#else
425static double QUAD_2D_P6_wts[] = {
426 Dup21(.05084490637020681692093680910686898),
427 Dup21(.11678627572637936602528961138557944),
428 Dup111(.08285107561837357519355345642044245)
429};
430static double QUAD_2D_P6_pts[Length(QUAD_2D_P6_wts) * 3] = {
431 Perm21(.06308901449150222834033160287081916),
432 Perm21(.24928674517091042129163855310701908),
433 Perm111(.05314504984481694735324967163139815,
434 .31035245103378440541660773395655215)
435};
437 "2D P6", /* name */
438 2, /* dim */
439 6, /* order */
440 Length(QUAD_2D_P6_wts), /* npoints = 12 */
441 QUAD_2D_P6_pts, /* points */
442 QUAD_2D_P6_wts, /* weights */
443 -1 /* id */
444};
445#endif
446
447#if 0
448static double QUAD_2D_P7_wts[] = {
449 Dup21(0.0102558174092),
450 Dup111(0.1116047046647),
451 Dup21(0.1679775595335),
452 Dup21(0.2652238803946)
453};
454static double QUAD_2D_P7_pts[Length(QUAD_2D_P7_wts) * 3] = {
455 Perm21(0.),
456 Perm111(0.7839656651012, 0.1738960507345),
457 Perm21(0.4743880861752),
458 Perm21(0.2385615300181)
459};
460#else
461static double QUAD_2D_P7_wts[] = {
462 Dup21(.01353386251566556156682309245259393),
463 Dup21(.07895125443201098137652145029770332),
464 Dup21(.12860792781890607455665553308952344),
465 Dup111(.05612014428337535791666662874675632)
466};
467static double QUAD_2D_P7_pts[Length(QUAD_2D_P7_wts) * 3] = {
468 Perm21(.02826392415607634022359600691324002),
469 Perm21(.47431132326722257527522522793181654),
470 Perm21(.24114332584984881025414351267036207),
471 Perm111(.76122274802452380000000000000000000,
472 .04627087779880891064092559391702049)
473};
474#endif
476 "2D P7", /* name */
477 2, /* dim */
478 7, /* order */
479 Length(QUAD_2D_P7_wts), /* npoints = 15 */
480 QUAD_2D_P7_pts, /* points */
481 QUAD_2D_P7_wts, /* weights */
482 -1 /* id */
483};
484
485static double QUAD_2D_P8_wts[] = {
486 Dup3(.14431560767778716825109111048906462),
487 Dup21(.10321737053471825028179155029212903),
488 Dup21(.03245849762319808031092592834178060),
489 Dup21(.09509163426728462479389610438858432),
490 Dup111(.02723031417443499426484469007390892)
491};
492static double QUAD_2D_P8_pts[Length(QUAD_2D_P8_wts) * 3] = {
493 Perm3(.33333333333333333333333333333333333),
494 Perm21(.17056930775176020662229350149146450),
495 Perm21(.05054722831703097545842355059659895),
496 Perm21(.45929258829272315602881551449416932),
497 Perm111(.26311282963463811342178578628464359,
498 .00839477740995760533721383453929445)
499};
501 "2D P8", /* name */
502 2, /* dim */
503 8, /* order */
504 Length(QUAD_2D_P8_wts), /* npoints = 16 */
505 QUAD_2D_P8_pts, /* points */
506 QUAD_2D_P8_wts, /* weights */
507 -1 /* id */
508};
509
510#if 0
511static double QUAD_2D_P9_wts[] = {
512 Dup21(0.0519871420646),
513 Dup111(0.0707034101784),
514 Dup111(0.0909390760952),
515 Dup21(0.1032344051380),
516 Dup21(0.1881601469167)
517};
518static double QUAD_2D_P9_pts[Length(QUAD_2D_P9_wts) * 3] = {
519 Perm21(0.0451890097844),
520 Perm111(0.7475124727339, 0.2220631655373),
521 Perm111(0.1369912012649, 0.2182900709714),
522 Perm21(0.4815198347833),
523 Perm21(0.4036039798179)
524};
526 "2D P9", /* name */
527 2, /* dim */
528 9, /* order */
529 21, /* npoints */
530 QUAD_2D_P9_pts, /* points */
531 QUAD_2D_P9_wts, /* weights */
532 -1 /* id */
533};
534#else
535static double QUAD_2D_P9_wts[] = {
536 Dup3(.09713579628279883381924198250728863),
537 Dup21(.03133470022713907053685483128720932),
538 Dup21(.02557767565869803126167879855899982),
539 Dup21(.07782754100477427931673935629940396),
540 Dup21(.07964773892721025303289177426404527),
541 Dup111(.04328353937728937728937728937728938)
542};
543static double QUAD_2D_P9_pts[Length(QUAD_2D_P9_wts) * 3] = {
544 Perm3(.33333333333333333333333333333333333),
545 Perm21(.48968251919873762778370692483619280),
546 Perm21(.04472951339445270986510658996627636),
547 Perm21(.43708959149293663726993036443535497),
548 Perm21(.18820353561903273024096128046733557),
549 Perm111(.74119859878449802069007987352342383,
550 .22196298916076569567510252769319107)
551};
553 "2D P9", /* name */
554 2, /* dim */
555 9, /* order */
556 Length(QUAD_2D_P9_wts), /* npoints = 19 */
557 QUAD_2D_P9_pts, /* points */
558 QUAD_2D_P9_wts, /* weights */
559 -1 /* id */
560};
561#endif
562
563static double QUAD_2D_P10_wts[] = {
564 Dup3(.08093742879762288025711312381650193),
565 Dup21(.07729858800296312168250698238034344),
566 Dup21(.07845763861237173136809392083439673),
567 Dup21(.01746916799592948691760716329067815),
568 Dup21(.00429237418483282803048040209013191),
569 Dup111(.03746885821046764297902076548504452),
570 Dup111(.02694935259187995964544947958109671)
571};
573 Perm3(.33333333333333333333333333333333333),
574 Perm21(.42727317884677553809044271751544715),
575 Perm21(.18309922244867502052157438485022004),
576 Perm21(.49043401970113058745397122237684843),
577 Perm21(.01257244555158053273132908502104126),
578 Perm111(.65426866792006614066657009558762790,
579 .30804600168524770000000000000000000),
580 Perm111(.12280457706855927343012981748128116,
581 .03337183373930478624081644177478038)
582};
584 "2D P10", /* name */
585 2, /* dim */
586 10, /* order */
587 Length(QUAD_2D_P10_wts), /* npoints = 25 */
588 QUAD_2D_P10_pts, /* points */
589 QUAD_2D_P10_wts, /* weights */
590 -1 /* id */
591};
592
593static double QUAD_2D_P11_wts[] = {
594 Dup3(.08117796029686715951547596874982357),
595 Dup21(.01232404350690949411847390101623284),
596 Dup21(.06282800974441010728333942816029398),
597 Dup21(.01222037904936452975521221500393789),
598 Dup21(.06770134895281150992098886182322559),
599 Dup21(.04021969362885169042356688960756866),
600 Dup111(.01476227271771610133629306558778206),
601 Dup111(.04072799645829903966033695848161786)
602};
604 Perm3(.33333333333333333333333333333333333),
605 Perm21(.03093835524543078489519501499130475),
606 Perm21(.43649818113412884191761527655997324),
607 Perm21(.49898476370259326628798698383139087),
608 Perm21(.21468819795859433660687581387825086),
609 Perm21(.11368310404211339020529315622836178),
610 Perm111(.82561876616486290435880620030835800,
611 .15974230459185018980086078822500751),
612 Perm111(.64047231013486526767703659081896681,
613 .31178371570959900000000000000000000)
614};
616 "2D P11", /* name */
617 2, /* dim */
618 11, /* order */
619 Length(QUAD_2D_P11_wts), /* npoints = 28 */
620 QUAD_2D_P11_pts, /* points */
621 QUAD_2D_P11_wts, /* weights */
622 -1 /* id */
623};
624
625static double QUAD_2D_P12_wts[] = {
626 Dup21(.00616626105155901723386648378523035),
627 Dup21(.06285822421788510035427051309288255),
628 Dup21(.03479611293070894298932839729499937),
629 Dup21(.04369254453803840213545726255747497),
630 Dup21(.02573106644045533541779092307156443),
631 Dup111(.02235677320230344571183907670231999),
632 Dup111(.01731623110865889237164210081103407),
633 Dup111(.04037155776638092951782869925223677)
634};
636 Perm21(.02131735045321037024685697551572825),
637 Perm21(.27121038501211592234595134039689474),
638 Perm21(.12757614554158592467389632515428357),
639 Perm21(.43972439229446027297973662348436108),
640 Perm21(.48821738977380488256466206525881104),
641 Perm111(.69583608678780342214163552323607254,
642 .28132558098993954824813069297455275),
643 Perm111(.85801403354407263059053661662617818,
644 .11625191590759714124135414784260182),
645 Perm111(.60894323577978780685619243776371007,
646 .27571326968551419397479634607976398)
647};
649 "2D P12", /* name */
650 2, /* dim */
651 12, /* order */
652 Length(QUAD_2D_P12_wts), /* npoints = 33 */
653 QUAD_2D_P12_pts, /* points */
654 QUAD_2D_P12_wts, /* weights */
655 -1 /* id */
656};
657
658static double QUAD_2D_P13_wts[] = {
659 Dup3(.06796003658683164428177442468088488),
660 Dup21(.05560196753045332870725746601046147),
661 Dup21(.05827848511919998140476708351333981),
662 Dup21(.00605233710353917184179280003229082),
663 Dup21(.02399440192889473077371079945095965),
664 Dup111(.03464127614084837046598682851091822),
665 Dup111(.01496540110516566726324585713290344),
666 Dup111(.02417903981159381913744574557306076),
667 Dup111(.00959068100354326272259509016611089)
668};
670 Perm3(.33333333333333333333333333333333333),
671 Perm21(.42694141425980040602081253503137421),
672 Perm21(.22137228629183290065481255470507908),
673 Perm21(.02150968110884318386929131353405208),
674 Perm21(.48907694645253934990068971909020439),
675 Perm111(.62354599555367557081585435318623659,
676 .30844176089211777465847185254124531),
677 Perm111(.86470777029544277530254595089569318,
678 .11092204280346339541286954522167452),
679 Perm111(.74850711589995219517301859578870965,
680 .16359740106785048023388790171095725),
681 Perm111(.72235779312418796526062013230478405,
682 .27251581777342966618005046435408685)
683};
685 "2D P13", /* name */
686 2, /* dim */
687 13, /* order */
688 Length(QUAD_2D_P13_wts), /* npoints = 37 */
689 QUAD_2D_P13_pts, /* points */
690 QUAD_2D_P13_wts, /* weights */
691 -1 /* id */
692};
693
694static double QUAD_2D_P14_wts[] = {
695 Dup21(.04216258873699301753823043732418613),
696 Dup21(.00492340360240008168182602350904215),
697 Dup21(.01443369966977666760170992148065332),
698 Dup21(.03278835354412535064131097873862534),
699 Dup21(.02188358136942889064084494596332597),
700 Dup21(.05177410450729158631478491016639640),
701 Dup111(.02466575321256367396287524518363623),
702 Dup111(.03857151078706068322848902781041086),
703 Dup111(.01443630811353384049608869199901580),
704 Dup111(.00501022883850067176986009308248912)
705};
707 Perm21(.17720553241254343695661069046505908),
708 Perm21(.01939096124870104817825009505452951),
709 Perm21(.06179988309087260126747882843693579),
710 Perm21(.41764471934045392250944082218564344),
711 Perm21(.48896391036217863867737602045239024),
712 Perm21(.27347752830883865975494428326269856),
713 Perm111(.17226668782135557837528960161365733,
714 .05712475740364793903567712421891471),
715 Perm111(.57022229084668317349769621336235426,
716 .09291624935697182475824858954872035),
717 Perm111(.29837288213625775297083151805961273,
718 .01464695005565440967054132792007421),
719 Perm111(.11897449769695684539818196192990548,
720 .00126833093287202508724640109549269)
721};
723 "2D P14", /* name */
724 2, /* dim */
725 14, /* order */
726 Length(QUAD_2D_P14_wts), /* npoints = 42 */
727 QUAD_2D_P14_pts, /* points */
728 QUAD_2D_P14_wts, /* weights */
729 -1 /* id */
730};
731
732/* a 49-point rule communicated by Freddie Witherden (freddie@witherden.org)
733 * 2D 49 point order 15 rule (1:4:6, 346 tries, 3288 evals), error = 4.251e-17
734 */
735static double QUAD_2D_P15_wts[] = {
736 Dup3(.02357126703190634206659321140821418),
737 Dup21(.01517314955721170450311858877690239),
738 Dup21(.01297600128392884154979521077280757),
739 Dup21(.01706629596800615670942600046160914),
740 Dup21(.04576001946273760698482638108892258),
741 Dup111(.00222757447282223154006065426298478),
742 Dup111(.02701014165986947101315702212247500),
743 Dup111(.02608377963958756403057720483642768),
744 Dup111(.01211015327702828337230795926322736),
745 Dup111(.01564785059680444573399007149035058),
746 Dup111(.03417088937929479242522512890637806)
747};
749 Perm3(.33333333333333333333333333333333333),
750 Perm21(.11022229622834687297855264132259850),
751 Perm21(.05197643301003435047003197947889073),
752 Perm21(.49114565807532554119014945122395425),
753 Perm21(.39315718888435884048226809785071794),
754 Perm111(.03737440487572919066543605209836625,
755 .96251835223001214880811969560396873),
756 Perm111(.24824877798467321198263980694374938,
757 .19316669854521416819773100288721521),
758 Perm111(.20699402274830217740486528153682148,
759 .08689590883549962551575259619781217),
760 Perm111(.14854110526954708137688902238435510,
761 .01743682539845430796259020511767948),
762 Perm111(.30674237923596382376588728350286621,
763 .01749251095825766163254977051260599),
764 Perm111(.36703198754220473278855469116984882,
765 .09034802175864556044634095119222305)
766};
768 "2D P15", /* name */
769 2, /* dim */
770 15, /* order */
771 Length(QUAD_2D_P15_wts), /* npoints = 49 */
772 QUAD_2D_P15_pts, /* points */
773 QUAD_2D_P15_wts, /* weights */
774 -1 /* id */
775};
776
777static double QUAD_2D_P16_wts[] = {
778 Dup3(.04802218868037709055183940458051988),
779 Dup21(.01470910030680192710340364286186919),
780 Dup21(.02954458654931925599530972679646409),
781 Dup21(.02612501735108837749859756549171557),
782 Dup21(.00278038735239000697500301613866207),
783 Dup21(.03182177300053664950342729005594961),
784 Dup21(.00864583434950965990117373416984893),
785 Dup111(.01430033290449536514661642536825213),
786 Dup111(.02784977720360082995222987342395349),
787 Dup111(.00704167340663609756237018808928069),
788 Dup111(.01789983825993372860177020907581078),
789 Dup111(.02745820038434976307247003810091720),
790 Dup111(.00729979693943176208411254408777766)
791};
793 Perm3(.33333333333333333333333333333333333),
794 Perm21(.08179498313137387264146559311886101),
795 Perm21(.16530060196977965062676193293355656),
796 Perm21(.46859210534946138669460289729660561),
797 Perm21(.01443881344541668261410895669566020),
798 Perm21(.24178428539178335340689445929320769),
799 Perm21(.49531034298776996406549508687740551),
800 Perm111(.65051340266135229943114468484168666,
801 .33139974453708955658132316818259388),
802 Perm111(.60401128149599703984940410303596702,
803 .30324716274994218504155217807834692),
804 Perm111(.80216825757474166361686194781166705,
805 .18802805952123717344418211429398875),
806 Perm111(.75650560644282839655115407575806082,
807 .18350466852229686368238027743700035),
808 Perm111(.46593843871411818488381073359154639,
809 .35964594879750460000000000000001000),
810 Perm111(.90639484399204150136249966186534000,
811 .07719437129575543228251522505271386)
812};
814 "2D P16", /* name */
815 2, /* dim */
816 16, /* order */
817 Length(QUAD_2D_P16_wts), /* npoints = 55 */
818 QUAD_2D_P16_pts, /* points */
819 QUAD_2D_P16_wts, /* weights */
820 -1 /* id */
821};
822
823/* A 60-point order 17 rule found by using the number of points reported in:
824 * H. Xiao and Z. Gimbutas,
825 * A numerical algorithm for the construction of efficient quadrature
826 * rules in two and higher dimensions,
827 * Computers and Mathematics with Applications, 59 (2010), 663-676 */
828static double QUAD_2D_P17_wts[] = {
829 Dup21(.03829254008003568749425168889491817),
830 Dup21(.01669528699775339594318472807122019),
831 Dup21(.00143512454359061224492929722268097),
832 Dup21(.02864276849185053630399044294140648),
833 Dup21(.03408569078206214964786810427776196),
834 Dup21(.02467274200053089056925349793140004),
835 Dup21(.00586679757537134154263246190805349),
836 Dup21(.02321859500422896151112767944153052),
837 Dup111(.03084965458251406099116307348593810),
838 Dup111(.01881398544005420038782109445200127),
839 Dup111(.00512343450397285555007197439694996),
840 Dup111(.00701239348475201777118052342883162),
841 Dup111(.01538229443504461311363086994295179),
842 Dup111(.00303013148261713122418018061550803)
843};
845 Perm21(.24056306963626902977934166278860247),
846 Perm21(.08092323589766073062004798772340524),
847 Perm21(.01001414912499135088254841140047604),
848 Perm21(.15437652078663289107430782196727737),
849 Perm21(.41716986201996268598941663596983268),
850 Perm21(.47086974573840098186867398532866671),
851 Perm21(.49811803384542204444865152799034832),
852 Perm21(.36473840565291924199871629076775930),
853 Perm111(.10986590708262616153720966373050601,
854 .30466576969866569523225839525499357),
855 Perm111(.20493227462918790108024139159058423,
856 .05248758390645425414786013344982922),
857 Perm111(.05813921564266244000000000000000000,
858 .01500053995225954378593128753997425),
859 Perm111(.13859554086776482539309659376771751,
860 .01501023347973182500884052064335399),
861 Perm111(.34660546952009260087829868774027952,
862 .02336212893314653752768977049783837),
863 Perm111(.24821986889585591697209834974065293,
864 .00000099999999999965762180770907324)
865 /*9.99999999999657621807709073237881438e-7*/
866};
868 "2D P17", /* name */
869 2, /* dim */
870 17, /* order */
871 Length(QUAD_2D_P17_wts), /* npoints = 60 */
872 QUAD_2D_P17_pts, /* points */
873 QUAD_2D_P17_wts, /* weights */
874 -1 /* id */
875};
876
877/* A 67-point order 18 rule found by using the number of points reported in:
878 * H. Xiao and Z. Gimbutas,
879 * A numerical algorithm for the construction of efficient quadrature
880 * rules in two and higher dimensions,
881 * Computers and Mathematics with Applications, 59 (2010), 663-676 */
882static double QUAD_2D_P18_wts[] = {
883 Dup3(.03074852123911585539935333820159969),
884 Dup21(.02031833884545839730521676856098738),
885 Dup21(.01379028660476693880147269080330003),
886 Dup21(.00053200561694778056109294261721746),
887 Dup21(.03347199405984789811876973462144190),
888 Dup21(.03111639660200613119689389250158563),
889 Dup21(.01310702749173875567860153100348528),
890 Dup111(.01691165391748007879456553323826843),
891 Dup111(.02759288648857947802009593334620683),
892 Dup111(.01636590841398656595815221611374510),
893 Dup111(.00764170497271963595084711372125680),
894 Dup111(.00772983528000622700809279634102600),
895 Dup111(.00958612447436150376044024017260990),
896 Dup111(.00421751677474444290984387716007124),
897 Dup111(.01532825819455314086704628681920691)
898};
900 Perm3(1./3.),
901 Perm21(.15163850697260486492387353795772074),
902 Perm21(.07243870556733287047426206374480081),
903 Perm21(.00375894434106834585702462733286887),
904 Perm21(.41106710187591949855469549486746318),
905 Perm21(.26561460990537421478430796115175039),
906 Perm21(.47491821132404573588789755091754023),
907 Perm111(.06612245802840338770053947185398348,
908 .17847912556588763355267204638676643),
909 Perm111(.26857330639601384733212028806856623,
910 .14906691012577383920019113944789784),
911 Perm111(.30206195771287080772484323648551723,
912 .05401173533902423468044436247084948),
913 Perm111(.13277883027138932992144407050471004,
914 .01433152477894195356844867129563809),
915 Perm111(.25650615977424154068897765977748937,
916 .01050501881924193559868603344210775),
917 Perm111(.41106566867461836291309677848250996,
918 .01169182467466708527042342649785763),
919 Perm111(.04727614183265178252228403898505622,
920 .01249893248349544012804819357953175),
921 Perm111(.38504403441316367334400254247436861,
922 .52452892523249571422861434426430408)
923};
925 "2D P18", /* name */
926 2, /* dim */
927 18, /* order */
928 Length(QUAD_2D_P18_wts), /* npoints = 67 */
929 QUAD_2D_P18_pts, /* points */
930 QUAD_2D_P18_wts, /* weights */
931 -1 /* id */
932};
933
934/* Note: the rule QUAD_2D_P19 was taken from the book by
935 * P. Solin, K. Segeth, and I. Dolezel,
936 * "Higer-order Finite Element Methods",
937 * Chapman and Hall/CRC Press, 2003. */
938static double QUAD_2D_P19_wts[] = {
939 Dup3(.03290633138891865208361434484647497),
940 Dup21(.01033073189127205336703996357174833),
941 Dup21(.02238724726301639252918455603516271),
942 Dup21(.03026612586946807086528019098259122),
943 Dup21(.03049096780219778100003158657852042),
944 Dup21(.02415921274164090491184803098664001),
945 Dup21(.01605080358680087529162277027642948),
946 Dup21(.00808458026178406048180567324219442),
947 Dup21(.00207936202748478075134750167439841),
948 Dup111(.00388487690498138975670499199277266),
949 Dup111(.02557416061202190389292970195260027),
950 Dup111(.00888090357333805774552592470351753),
951 Dup111(.01612454676173139121978526932783766),
952 Dup111(.00249194181749067544058464757594956),
953 Dup111(.01824284011895057837766571320973615),
954 Dup111(.01025856373619852130804807004235813),
955 Dup111(.00379992885530191397907315371363970)
956};
958 Perm3(.33333333333333333333333333333333333),
959 Perm21(.48960998707300633196613106574829817),
960 Perm21(.45453689269789266204675939053572830),
961 Perm21(.40141668064943118739399562381068860),
962 Perm21(.25555165440309761132218176810926787),
963 Perm21(.17707794215212955164267520651590115),
964 Perm21(.11006105322795186130008495167737397),
965 Perm21(.05552862425183967124867841247135571),
966 Perm21(.01262186377722866849023476677870599),
967 Perm111(.60063379479464500000000000000000000,
968 .39575478735694286230479469406582787),
969 Perm111(.13446675453077978561204319893264695,
970 .55760326158878396836395324250118097),
971 Perm111(.72098702581736505521665290233827892,
972 .26456694840652020804030173490121494),
973 Perm111(.59452706895587092461388928802650670,
974 .35853935220595058842492699064590088),
975 Perm111(.83933147368083857861749007714840520,
976 .15780740596859474473767360335950651),
977 Perm111(.22386142409791569130336938950653642,
978 .70108797892617336732328833655951158),
979 Perm111(.82293132406985663162747155916053316,
980 .14242160111338343731557475687723745),
981 Perm111(.92434425262078402945585913790156314,
982 .06549462808293770339232652498592557)
983};
985 "2D P19", /* name */
986 2, /* dim */
987 19, /* order */
988 Length(QUAD_2D_P19_wts), /* npoints = 73 */
989 QUAD_2D_P19_pts, /* points */
990 QUAD_2D_P19_wts, /* weights */
991 -1 /* id */
992};
993
994/* Rules 20-24, 26-29 are found by Simone Weikl (simone.weikl@googlemail.com),
995 * Diploma Thesis, Technische Universiat Munchen, Zentrum Mathematik, 2011 */
996
997static double QUAD_2D_P20_wts[] = {
998 Dup3(.02343898837621685337578235989880370),
999 Dup21(.01701187887065179140821050028462978),
1000 Dup21(.02213462902539847149771471956849632),
1001 Dup21(.02225012034148936704815054477635356),
1002 Dup21(.02108801427518765728972259255778044),
1003 Dup21(.01436673198237250674135242117943876),
1004 Dup21(.00596064247309054870158068681368087),
1005 Dup21(.00185446185638856226012710730597991),
1006 Dup111(.00766503799888173467975505965999393),
1007 Dup111(.00611096641377269564490800130795800),
1008 Dup111(.00329750122890750342409287108138500),
1009 Dup111(.00258504328745784243926241647780699),
1010 Dup111(.01604829966346833686116840419650012),
1011 Dup111(.00987379147789446687652271685071374),
1012 Dup111(.00817314741769008089505196969930370),
1013 Dup111(.02127212420812707803762062418100071),
1014 Dup111(.01629559968072678577307785994248523),
1015 Dup111(.01910541781474788066581373037653881)
1016};
1018 Perm3(.33333333333333333333333333333333333),
1019 Perm21(.47253969049374944291236394079678822),
1020 Perm21(.43559179765819053474788158522088855),
1021 Perm21(.38548317769095410374903697427852223),
1022 Perm21(.18589787266938260089793207404361894),
1023 Perm21(.10294309387227568202927226453268166),
1024 Perm21(.04420435682210499536228665005842580),
1025 Perm21(.01187700008194990884008379159291605),
1026 Perm111(.42317710194393600041367501539791831,
1027 .56624681421216737896202019229528315),
1028 Perm111(.28717803493735130968896269265785627,
1029 .70363134375008177073022062562769704),
1030 Perm111(.16282486571070316869304103317873899,
1031 .83237331116054735414989063179341648),
1032 Perm111(.06468063449817511170284328732719589,
1033 .92925769945837560706677619337951412),
1034 Perm111(.33400627700511908113700959506140627,
1035 .61323701639938793580192466071340766),
1036 Perm111(.21092379552418127847921338445298798,
1037 .75151051490601053625741794541954190),
1038 Perm111(.11508038084136831598057023754719804,
1039 .85015113156210283588089253042485358),
1040 Perm111(.31075208646508429564535326048014931,
1041 .56198974953953613108255692415961755),
1042 Perm111(.20200619801045898902767636571938539,
1043 .70171644023616188456192811677305342),
1044 Perm111(.28902320790895929973608959414472710,
1045 .49138856232319209839401293034098827)
1046};
1048 "2D P20", /* name */
1049 2, /* dim */
1050 20, /* order */
1051 Length(QUAD_2D_P20_wts), /* npoints = 82 */
1052 QUAD_2D_P20_pts, /* points */
1053 QUAD_2D_P20_wts, /* weights */
1054 -1 /* id */
1055};
1056
1057/* The rule below is reported in the paper:
1058 * Papanicolopulos, S., A.,
1059 * New fully symmetric and rotationally symmetric cubature rules on the
1060 * triangle using minimal orthonormal bases,
1061 * J. Computational and Applied Mathematics, Vol. 294, 2016, pp.39-48 */
1062static double QUAD_2D_P21_wts[] = {
1063 Dup21(.00153252214157029927832972284942362),
1064 Dup21(.00295964208580089055557643244435822),
1065 Dup21(.00710507195198322705473634640429004),
1066 Dup21(.01242202545015119261392701182790142),
1067 Dup21(.01315385309054860400530165567389379),
1068 Dup21(.01610711993355940881429849025111080),
1069 Dup21(.01955699832742153003791726026064669),
1070 Dup21(.02114714580341115240235728776162335),
1071 Dup21(.02148724961809553292499438055586582),
1072 Dup111(.00324321603629715843164230514808509),
1073 Dup111(.00444606682456729614112175291076191),
1074 Dup111(.00444713701276898568121864572732943),
1075 Dup111(.00719283008979440275755795626382300),
1076 Dup111(.00968818276967735751464842894718971),
1077 Dup111(.01077186725474600415287816641481312),
1078 Dup111(.01537644879227419490362875554570800),
1079 Dup111(.01541820162505099647808429434299382),
1080 Dup111(.01872799408182348912155361034660658),
1081 Dup111(.01961890797839586264061345700479913)
1082};
1084 Perm21(.01083064791389613439818531875282892),
1085 Perm21(.49868116928006762187511807510022292),
1086 Perm21(.05320630259370221372937428477043579),
1087 Perm21(.48436880679907196058128682726473251),
1088 Perm21(.11717932446409532061312493414817476),
1089 Perm21(.18619987453160044065356184245386411),
1090 Perm21(.23770504697050237030777008826766300),
1091 Perm21(.45111809686333143558277239278860940),
1092 Perm21(.29890161661837960265935712860196744),
1093 Perm111(.01017037551397023833029242013076474,.05610607874044113073901605353578031),
1094 Perm111(.00740148001912942691985111704851672,.23806090893927819107377783880076336),
1095 Perm111(.00948888021003903598802889438007338,.13371423612729252503412567154133090),
1096 Perm111(.01078708528953292731070298166591233,.36087827036133643028378433162192850),
1097 Perm111(.04888641015641196213015335363186247,.12856000707434670174510612755634180),
1098 Perm111(.04079047843492138579001393428298806,.23192922019831618515287729451119134),
1099 Perm111(.10225476525427212998164710587805099,.21318238024685212224076314392042087),
1100 Perm111(.05619510372649343472752614615138017,.34615363893081412151163375832691108),
1101 Perm111(.19392111402204940534236787859220491,.35741779412597604193763009688130316),
1102 Perm111(.13139693759954925634229231531863966,.30964180048539107980510336108955521)
1103};
1105 "2D P21", /* name */
1106 2, /* dim */
1107 21, /* order */
1108 Length(QUAD_2D_P21_wts), /* npoints = 87 */
1109 QUAD_2D_P21_pts, /* points */
1110 QUAD_2D_P21_wts, /* weights */
1111 -1 /* id */
1112};
1113
1114/* The rule below is reported in the paper:
1115 * Papanicolopulos, S., A.,
1116 * New fully symmetric and rotationally symmetric cubature rules on the
1117 * triangle using minimal orthonormal bases,
1118 * J. Computational and Applied Mathematics, Vol. 294, 2016, pp.39-48 */
1119static double QUAD_2D_P22_wts[] = {
1120 Dup21(.00069714569625074030369942481362133),
1121 Dup21(.00173365376198036236244040089465219),
1122 Dup21(.00466131304304557368006266059260170),
1123 Dup21(.01158457676559956471190194225470023),
1124 Dup21(.01187897403302190998142733919159934),
1125 Dup21(.01533880365566670016085333491517060),
1126 Dup21(.01971637694027233703178135471037246),
1127 Dup21(.02057215149173475351932757540044250),
1128 Dup21(.02384066027813703919931347525917147),
1129 Dup21(.02446119708987487225534932817494781),
1130 Dup111(.00182862802731120927204804019418561),
1131 Dup111(.00188044970396283839898767788993490),
1132 Dup111(.00370410864001110188501003141229496),
1133 Dup111(.00466834037183480579057625840302880),
1134 Dup111(.00721134117192958564362665357306283),
1135 Dup111(.00796743335988734266364119940269571),
1136 Dup111(.00903580036943713630598503580960509),
1137 Dup111(.00948064111155901466263790694355664),
1138 Dup111(.01561737012835320857159572546229795),
1139 Dup111(.01624531918105698418898193939757981),
1140 Dup111(.02178480822353151268049778007478454)
1141};
1143 Perm21(.00722823551590805269240186985118743),
1144 Perm21(.49971491656223188463531154910591767),
1145 Perm21(.04195252727280408802705553682804348),
1146 Perm21(.31413219152050094565940577630042994),
1147 Perm21(.48001365161711654879356466888729030),
1148 Perm21(.12308745423016114898448687333895172),
1149 Perm21(.44571963043911530549256371899531770),
1150 Perm21(.18986241218389367642303052024426076),
1151 Perm21(.26033923338175577283598939801891875),
1152 Perm21(.39636684767162598240715439210378845),
1153 Perm111(.00773958468860307799587341381217818,.03910016782732837999359532547054414),
1154 Perm111(.00057706413021840388680988197995853,.29956301031600608000000000000000000),
1155 Perm111(.00979577185352314036856347829609728,.09916758085225246952608204467401148),
1156 Perm111(.00918868020649896490029828421437019,.18619068155280570806618576756346898),
1157 Perm111(.01346708756840181797029316077776570,.40293889185510044331704310704540997),
1158 Perm111(.05062631246733689522786952921020785,.10358808540929187702277517444504398),
1159 Perm111(.04838811776183765022487372116607709,.18082300688832890010580439799931826),
1160 Perm111(.02749143585326034673258117826660649,.28194341507949187524318191991162303),
1161 Perm111(.06713397444770439007586079560898384,.35071285339799134366628146898304461),
1162 Perm111(.09670430361686034561495436311127678,.23017640440360132139166340852745074),
1163 Perm111(.15193045482670229286438888320778608,.31159323586348644974639923203001594)
1164};
1166 "2D P22", /* name */
1167 2, /* dim */
1168 22, /* order */
1169 Length(QUAD_2D_P22_wts), /* npoints = 96 */
1170 QUAD_2D_P22_pts, /* points */
1171 QUAD_2D_P22_wts, /* weights */
1172 -1 /* id */
1173};
1174
1175/* The rule below is reported in the paper:
1176 * Papanicolopulos, S., A.,
1177 * New fully symmetric and rotationally symmetric cubature rules on the
1178 * triangle using minimal orthonormal bases,
1179 * J. Computational and Applied Mathematics, Vol. 294, 2016, pp.39-48 */
1180static double QUAD_2D_P23_wts[] = {
1181 Dup21(.00102338493393064825880875292048368),
1182 Dup21(.00234953285611607429820752203919566),
1183 Dup21(.00442272294831746458300712854673892),
1184 Dup21(.00935939493458907159588059346569364),
1185 Dup21(.01122330490795551618339838001860665),
1186 Dup21(.01145539386071866483451404196187953),
1187 Dup21(.01485152819027043031788493609445202),
1188 Dup21(.01873399097752303244589658710992199),
1189 Dup21(.02009544889817501015648393973138171),
1190 Dup21(.02186952160246302231865049077371942),
1191 Dup111(.00139037413890586280792572004623041),
1192 Dup111(.00209361317170022977809045175923150),
1193 Dup111(.00226272789116058493926098904342501),
1194 Dup111(.00509887607853182356576648513174798),
1195 Dup111(.00580279248634163562097040517303610),
1196 Dup111(.00699047412016323154662825915726588),
1197 Dup111(.01010544741268549508636466193618720),
1198 Dup111(.01094068682011104235992829469791130),
1199 Dup111(.01269774746720014444245594705387966),
1200 Dup111(.01493690521473593308948584780344384),
1201 Dup111(.01624594488896314707519973030797813),
1202 Dup111(.02040896492113806885822368822529305)
1203};
1205 Perm21(.00884309098564000781144468419871075),
1206 Perm21(.49904231799536473576318688106778703),
1207 Perm21(.04191849463192120115455956274854522),
1208 Perm21(.08384395940074188671519383182016759),
1209 Perm21(.35156602225687808437472423305189879),
1210 Perm21(.48142250008209757218970635991224348),
1211 Perm21(.13603683917665686011746620285416514),
1212 Perm21(.44588621023292908434421744174344724),
1213 Perm21(.19833791969077397732302473244075886),
1214 Perm21(.39764873352592070572902821621712745),
1215 Perm111(.00215375088982479143593969096276917,.11147822164436514858831541609060182),
1216 Perm111(.00797567048343379974299672675667051,.04599876191192738898335879375393121),
1217 Perm111(.00222521306870228962165445623994274,.29991704500621364115075519706889153),
1218 Perm111(.01056799023421332981938693231799616,.19450617255148173513923298602622080),
1219 Perm111(.02639015796005238716769753666365164,.10487601375183195540194359053325350),
1220 Perm111(.01372661478891633442412470482374058,.39359274155812221677807114606384301),
1221 Perm111(.03293167071711912354883994110324428,.27745010154284908600010796990105572),
1222 Perm111(.05645836928678800749584878194121292,.17041930960722382214358721748321713),
1223 Perm111(.24905869950604636107649169253437782,.28048464594062623291197233102900262),
1224 Perm111(.06710022884559872615982757386133093,.35940684385217631018244572992741760),
1225 Perm111(.10095848404745636455551318905522403,.23967897332407877845308433492438781),
1226 Perm111(.15208140311691476836002821658866124,.31660538238914823066544783358734965)
1227};
1229 "2D P23", /* name */
1230 2, /* dim */
1231 23, /* order */
1232 Length(QUAD_2D_P23_wts), /* npoints = 102 */
1233 QUAD_2D_P23_pts, /* points */
1234 QUAD_2D_P23_wts, /* weights */
1235 -1 /* id */
1236};
1237
1238/* The rule below is reported in the paper:
1239 * Papanicolopulos, S., A.,
1240 * New fully symmetric and rotationally symmetric cubature rules on the
1241 * triangle using minimal orthonormal bases,
1242 * J. Computational and Applied Mathematics, Vol. 294, 2016, pp.39-48 */
1243static double QUAD_2D_P24_wts[] = {
1244 Dup3(.02293794348096749067720820639821200),
1245 Dup21(.00076737746111581423045153600120047),
1246 Dup21(.00552357844475169754997038457424443),
1247 Dup21(.00838499530275631071273403550487762),
1248 Dup21(.01221738017800235239788392469826439),
1249 Dup21(.01307039060561178310890784719893180),
1250 Dup21(.01788122775842957825015047766363903),
1251 Dup21(.01822174413909730956979133198261050),
1252 Dup21(.02164149721756761699449458590855473),
1253 Dup21(.02168831292692260197279166115848309),
1254 Dup111(.00174618458266172170313203275603945),
1255 Dup111(.00183857160374278724340785925075360),
1256 Dup111(.00199893663336212883772988094673110),
1257 Dup111(.00206369617133590779327617815189614),
1258 Dup111(.00229539508715841568165484400462521),
1259 Dup111(.00457952328890823144675590528548258),
1260 Dup111(.00529323009909540365054590996973504),
1261 Dup111(.00557874699599088171390666100209646),
1262 Dup111(.00861933948725664134146173130325259),
1263 Dup111(.00999235399224706921212863098136616),
1264 Dup111(.01030561620768130769226672677282150),
1265 Dup111(.01460454612625024725227714201539116),
1266 Dup111(.01499850067625046347206078267251109),
1267 Dup111(.01923078311743667878627312147552622)
1268};
1270 Perm3(.33333333333333333333333333333333333),
1271 Perm21(.00764481587209140357148961957868539),
1272 Perm21(.49512326693489419346010327445636948),
1273 Perm21(.08533571470774055253577908615445653),
1274 Perm21(.47540435757943002732921306991884855),
1275 Perm21(.14361312600254966163076940146917127),
1276 Perm21(.44000137550057370651541171540277806),
1277 Perm21(.20438684787130391661942173912629914),
1278 Perm21(.39155520703268199132653695865910252),
1279 Perm21(.26936069184956821890376700734821267),
1280 Perm111(.00128915765322182138873877223282987,.38930032117370399940994358985608046),
1281 Perm111(.00804615544134750962080148406751868,.03994551899851089671071946872000290),
1282 Perm111(.00397463904079080448292596145774045,.17756755351844720149250759536631588),
1283 Perm111(.00565339683877998034115515308702144,.09730437316339079594262256407299041),
1284 Perm111(.03654164634700071865936106746572505,.04737913646955582393784813835746318),
1285 Perm111(.00847203125278924422001665909111615,.27654233490622630027478984616955668),
1286 Perm111(.03186878555848486368527331611156268,.10186004800841345175103882567179717),
1287 Perm111(.02507448575695932327989859470575696,.17990041142989784948776341885611339),
1288 Perm111(.02495464920723698331110869690511693,.37476148829145151703198672023817762),
1289 Perm111(.07180692748992666960708660113790562,.16285371365641890528167019069210662),
1290 Perm111(.04649536832522560731056542252010275,.26299994692532693286696577835230479),
1291 Perm111(.07944565832892777248067300362002874,.35387462268603241581179193663132046),
1292 Perm111(.11210496839891452618514886571897182,.24045272001109686579097131221331152),
1293 Perm111(.16288704432089312482891199962593472,.31632883636136616749409848630342490)
1294};
1296 "2D P24", /* name */
1297 2, /* dim */
1298 24, /* order */
1299 Length(QUAD_2D_P24_wts), /* npoints = 112 */
1300 QUAD_2D_P24_pts, /* points */
1301 QUAD_2D_P24_wts, /* weights */
1302 -1 /* id */
1303};
1304
1305/* The rule below is reported in the paper:
1306 * S. Wandzura and H. Xiao, Symmetric quadrature rules on a triangle,
1307 * Computers and Mathematics with Applications, 45 (2003), 1829�C1840,
1308 * and was communicated by Don Wilton (dwilton@mindspring.com) */
1309static double QUAD_2D_P25_wts[] = {
1310 Dup21(.00800558188002042313368589293942171),
1311 Dup21(.01594707683239049085408554937789681),
1312 Dup21(.01310914123079550369839487163291327),
1313 Dup21(.01958300096563560520647726105123795),
1314 Dup21(.01647088544153726359394636789647424),
1315 Dup21(.00854727907409214131204679403754348),
1316 Dup21(.00816188585722650120293135168156145),
1317 Dup21(.00612114653998375062550303141747500),
1318 Dup21(.00290849826493666035989604760244737),
1319 Dup21(.00069227524566199872959231564688970),
1320 Dup111(.00124828919927740405463308732687347),
1321 Dup111(.00340475290880302630290932517884509),
1322 Dup111(.00335965432606405469389982622818046),
1323 Dup111(.00171615653949675776835927257382091),
1324 Dup111(.00148085631671560275966191325505238),
1325 Dup111(.00351131261072868028754024041382735),
1326 Dup111(.00739355014970648910670774728325426),
1327 Dup111(.00798308747737656611293770143977919),
1328 Dup111(.00435596261315803802370299459187773),
1329 Dup111(.00736505670141783108374850348433179),
1330 Dup111(.01096357284641954589593589943582605),
1331 Dup111(.01174996174354112327739198111865119),
1332 Dup111(.01001560071379857640896706453029824),
1333 Dup111(.01330964078762866755490152722632760),
1334 Dup111(.01415444650522613072733705129605375),
1335 Dup111(.01488137956116800324975278964173671)
1336};
1338 Perm21(.48602675846341286632108494106576852),
1339 Perm21(.43441069933617422686934557925604870),
1340 Perm21(.38988913524396382753969636952404462),
1341 Perm21(.29844323401980449068329287355490048),
1342 Perm21(.23404417233737183658023656970596734),
1343 Perm21(.15146833460901760000000000000000000),
1344 Perm21(.11273389354599349281729186486594851),
1345 Perm21(.07771569209152620223369817320827966),
1346 Perm21(.03489309361429690849533026177733858),
1347 Perm21(.00725818462093238916117013110606335),
1348 Perm111(.00129235270444219584099302931665302,.22721445215336410000000000000000000),
1349 Perm111(.00539970127211620182189732363132860,.43501055485357173125113362379450230),
1350 Perm111(.00638400303397498941895749776744540,.32030959927220447113000026445341979),
1351 Perm111(.00502821150199308271328582097413442,.09175032228000531039287201063543536),
1352 Perm111(.00682675862178184570668051931419220,.03801083585872443391784793002157854),
1353 Perm111(.01001619963992951145867446496978043,.15742521848531178511320753380098114),
1354 Perm111(.02575781317339004661287123576293491,.23988965977853325914298591466950265),
1355 Perm111(.03022789811991582345896227492462806,.36194311812606053179871201193912355),
1356 Perm111(.03050499010716207795935512861230592,.08355196095482845510691464351287596),
1357 Perm111(.04595654736256931928622033280840303,.14844322073241812268238560824628123),
1358 Perm111(.06744280054027761427028802732221226,.28373970872753497227148332506495505),
1359 Perm111(.07004509141591061747706842947324321,.40689937511878760390382808292080011),
1360 Perm111(.08391152464011664050042868280051014,.19411398702489250643935208871855679),
1361 Perm111(.12037553567715270000000000000000000,.32413434700070320631848835964861372),
1362 Perm111(.14806689915736669746097550576436943,.22927748355598104616627200389359665),
1363 Perm111(.19177186586732510675561189736742768,.32561812259598383120936369037062376)
1364};
1366 "2D P25", /* name */
1367 2, /* dim */
1368 25, /* order */
1369 Length(QUAD_2D_P25_wts), /* npoints = 126 */
1370 QUAD_2D_P25_pts, /* points */
1371 QUAD_2D_P25_wts, /* weights */
1372 -1 /* id */
1373};
1374
1375static double QUAD_2D_P26_wts[] = {
1376 Dup3(.01417752160999602353323977972271527),
1377 Dup21(.01562847738814814970970457453697594),
1378 Dup21(.01463752622911178264133988219347403),
1379 Dup21(.01199877346634344861456211855900933),
1380 Dup21(.01408927503571013898691920328509770),
1381 Dup21(.01137089506541742371508421522672789),
1382 Dup21(.00576148405319945074736514087034656),
1383 Dup21(.00288047484993807908673712870762860),
1384 Dup21(.00061792400780682863983571128624684),
1385 Dup111(.00369419331787613967876812943308712),
1386 Dup111(.00343799094677204927555439258769779),
1387 Dup111(.00286153444220796869854630479719978),
1388 Dup111(.00203926220043675486828725055944921),
1389 Dup111(.00212260415935469294564133350026422),
1390 Dup111(.00119562615477588655866810063068187),
1391 Dup111(.00685739162489405400311650380844794),
1392 Dup111(.00734359958211473751194803942744208),
1393 Dup111(.00692380910755335710497733455285917),
1394 Dup111(.00568034562903817703600660475801349),
1395 Dup111(.00482902212700270888221406835346564),
1396 Dup111(.01217016111615610869604849372625312),
1397 Dup111(.01093398470027832184481918666951027),
1398 Dup111(.00874472678661106729318818910817295),
1399 Dup111(.00680604517250698803302377412054323),
1400 Dup111(.01411590919743288381954091229224022),
1401 Dup111(.01311478562571945830368980380706058),
1402 Dup111(.01294033945976499045298096058107199)
1403};
1405 Perm3(.33333333333333333333333333333333333),
1406 Perm21(.42738077638464831074877265985432388),
1407 Perm21(.38699172838462112393769349339592202),
1408 Perm21(.29080160649677600000000000000000000),
1409 Perm21(.21955119391561192225377283920396941),
1410 Perm21(.14147766876769242783780816190264115),
1411 Perm21(.08529773902470504192646771859292695),
1412 Perm21(.03245379871194203562256093430387330),
1413 Perm21(.00688528565235726390272245979876787),
1414 Perm111(.43994521155768505420225073420375411,
1415 .55367421644525807832051112152536738),
1416 Perm111(.32999703483323129491627843183841851,
1417 .66364319673874589711499831297210598),
1418 Perm111(.23082959156933124460906369415091164,
1419 .76308863521363336439140145775470392),
1420 Perm111(.14794411408540751228070615912033131,
1421 .84674293184236109088401920967886276),
1422 Perm111(.08331051165939022562807285094666142,
1423 .90927752172075602921190126258082178),
1424 Perm111(.03550260326758216848726613913161973,
1425 .95859557015929357672073151433554495),
1426 Perm111(.43799285096397419659511807977149749,
1427 .52875010002019513801184885338236967),
1428 Perm111(.34184511530123979780425420810756385,
1429 .62501066255799393838930209588631898),
1430 Perm111(.24321991316551786475075820451965981,
1431 .72464470136332536323906998980156002),
1432 Perm111(.15369391178063810461104521948139224,
1433 .81668780811826632451173297381674549),
1434 Perm111(.08182824840515584556272055876947980,
1435 .88137737650647236457017244683395591),
1436 Perm111(.40543528702386735945093314372836966,
1437 .51444288504473371249851667233726474),
1438 Perm111(.30047523445100120928119574237532588,
1439 .62059693664252388102960854157646856),
1440 Perm111(.21029877498305665945876052946338960,
1441 .71260468401313836547438957626142950),
1442 Perm111(.14192949723680286586293618687501310,
1443 .78364422636910025200372459985859611),
1444 Perm111(.32282570605532179374541311121620042,
1445 .53538969633347138690064718160659645),
1446 Perm111(.22503850086766503651915588373212567,
1447 .63399334111941569685209117569438308),
1448 Perm111(.30622801452292528203795810454570981,
1449 .48023900880456248705776905427268046)
1450};
1452 "2D P26", /* name */
1453 2, /* dim */
1454 26, /* order */
1455 Length(QUAD_2D_P26_wts), /* npoints = 133 */
1456 QUAD_2D_P26_pts, /* points */
1457 QUAD_2D_P26_wts, /* weights */
1458 -1 /* id */
1459};
1460
1461static double QUAD_2D_P27_wts[] = {
1462 Dup3(.00132645422676788269875694817310637),
1463 Dup21(.01017606777254880480746165608356455),
1464 Dup21(.01355363518955792585297110164615270),
1465 Dup21(.01435575232352898855810447417832482),
1466 Dup21(.01762154025479284493331530463863313),
1467 Dup21(.01286456612407540576521896438320606),
1468 Dup21(.01021120788721442034062871052526150),
1469 Dup21(.00805484559136441340259536953879069),
1470 Dup21(.00485083247712445072994650912354335),
1471 Dup21(.00276034923845063648517112406186915),
1472 Dup21(.00064652022402423359706690809995414),
1473 Dup111(.00298280618704304171833833804758432),
1474 Dup111(.00286890029157565788749757647924691),
1475 Dup111(.00146771786779737406777795858954528),
1476 Dup111(.00163545643437809674920446933139427),
1477 Dup111(.00326270663499477733596716702887470),
1478 Dup111(.00127830372794885836417837000658451),
1479 Dup111(.00355054931897130700729806858502069),
1480 Dup111(.00705687847901615495175919551339405),
1481 Dup111(.00710874754932738751234293916033450),
1482 Dup111(.00619331568447356835579144233234119),
1483 Dup111(.00430573263634848540647054196708181),
1484 Dup111(.00538152713709093753671677026319717),
1485 Dup111(.00946147607081304454837567274132095),
1486 Dup111(.01038776441184486432462624183330042),
1487 Dup111(.00693741437082199035643509373698783),
1488 Dup111(.01056786087493971379972576670902532),
1489 Dup111(.01001591520410395750929434758482549),
1490 Dup111(.01145776939470566123752859291178484),
1491 Dup111(.01297709014466941197797189467632131)
1492};
1494 Perm3(.33333333333333333333333333333333333),
1495 Perm21(.46427084805466920349262004314703836),
1496 Perm21(.43229831434028157352333551631753476),
1497 Perm21(.39075381477193176882883899825279826),
1498 Perm21(.29984903083812250736371384535095833),
1499 Perm21(.24238609336669501198579355664452309),
1500 Perm21(.19575163384470794764935880541589295),
1501 Perm21(.11096422071801854111207889228991412),
1502 Perm21(.06784943782072336611132231104850517),
1503 Perm21(.03248814431443691367844218208374596),
1504 Perm21(.00702227048619495308291407220447055),
1505 Perm111(.44433448769671943201275224300444114,
1506 .55016916248187282000891941332861776),
1507 Perm111(.24271988774832453561075341685216292,
1508 .75119868054856110177318171512240453),
1509 Perm111(.15818892475209601952406305738166283,
1510 .83835069531284232651520750772598161),
1511 Perm111(.08845560649090179633078521783025438,
1512 .90629410967510652581883999276555543),
1513 Perm111(.33999316891507000002332849881468819,
1514 .65372187099256441503697325319687970),
1515 Perm111(.03671154847229659731571109853308589,
1516 .95724604370116430180960160528414269),
1517 Perm111(.08124029610361356005058157071908989,
1518 .89177919384281966240532352562349587),
1519 Perm111(.43194999140455781310320628223711064,
1520 .53892333102966923458236030560490706),
1521 Perm111(.32699693161719831316306130873483095,
1522 .64047090201394740296518952785936033),
1523 Perm111(.23408117072735995645396481889795017,
1524 .73431597148508412293269931866205238),
1525 Perm111(.15347363272308466475181254734395719,
1526 .82492267618399551423539156004582949),
1527 Perm111(.12699941589030054190683503157639795,
1528 .81688483424950280690392059398500667),
1529 Perm111(.36806660226545525465188762517330287,
1530 .55934053585742889058858737838306859),
1531 Perm111(.26979607114851247262701085083588115,
1532 .65088590636580683812387505565452156),
1533 Perm111(.18699471085773505905185124894492060,
1534 .74499601198138427785033316282140954),
1535 Perm111(.34595044287272788784072078462621499,
1536 .52709408040032769073500598867000113),
1537 Perm111(.18245632238005479720023182986667859,
1538 .69385768740918414496471841615003464),
1539 Perm111(.26018384965949842909231289915918049,
1540 .59478379886135638965559275913807350),
1541 Perm111(.31984867358313578155757977176391537,
1542 .48237346031069377766871464449285085)
1543};
1545 "2D P27", /* name */
1546 2, /* dim */
1547 27, /* order */
1548 Length(QUAD_2D_P27_wts), /* npoints = 145 */
1549 QUAD_2D_P27_pts, /* points */
1550 QUAD_2D_P27_wts, /* weights */
1551 -1 /* id */
1552};
1553
1554static double QUAD_2D_P28_wts[] = {
1555 Dup3(.00372851181690746808458802773780931),
1556 Dup21(.00193654415522499089798121523079372),
1557 Dup21(.00605141039266348349682076643537264),
1558 Dup21(.01141411355071663950946117311831634),
1559 Dup21(.01608007376313012939112012516866485),
1560 Dup21(.01403532910432407033763380729780537),
1561 Dup21(.00978327794286426243399757092983715),
1562 Dup21(.01267830169820560106561705330317056),
1563 Dup21(.01011411585946974486266089228810336),
1564 Dup21(.00376318422499545225814714605310903),
1565 Dup21(.00243119330615522129960297283149783),
1566 Dup21(.00042588994531646428122960119842518),
1567 Dup111(.00206901772064515543837924811367839),
1568 Dup111(.00215432386268054430571141067616092),
1569 Dup111(.00166065394763716989540584667501249),
1570 Dup111(.00138084032913645059993106848688128),
1571 Dup111(.00360171025661803306118091200062737),
1572 Dup111(.00097386114094506619777294737048538),
1573 Dup111(.00535413394306626012053016995775099),
1574 Dup111(.00423736286661477466768017827663045),
1575 Dup111(.00330847570421703082215419515418717),
1576 Dup111(.00448583942101861046216741271009491),
1577 Dup111(.00776555845120818901711264608747662),
1578 Dup111(.00687043734971177067707693439653168),
1579 Dup111(.00584068837096601687691778384738186),
1580 Dup111(.00888657317183860444062439413402823),
1581 Dup111(.01038315778562466496474547463182699),
1582 Dup111(.00655128753862388719526464995777170),
1583 Dup111(.00877076875255828946048204111223478),
1584 Dup111(.01218892935729072907621500755722349),
1585 Dup111(.01250643549629844281533668106200953),
1586 Dup111(.01269847559228270197407683124148953)
1587};
1589 Perm3(.33333333333333333333333333333333333),
1590 Perm21(.49835341312677973221949148740253129),
1591 Perm21(.48856275409050881854170094866703248),
1592 Perm21(.46478147828724737521816425323927792),
1593 Perm21(.38976627332101772838564635544311420),
1594 Perm21(.30154675118298200000000000000000000),
1595 Perm21(.26157407405925900000000000000000000),
1596 Perm21(.21410788634590951182959860455114779),
1597 Perm21(.17013819127147552416852263597020987),
1598 Perm21(.06437078350269442260455184210867187),
1599 Perm21(.03056003210401320908223320131174623),
1600 Perm21(.00570940793308473608535324150722078),
1601 Perm111(.29536153497141490674708319047417597,
1602 .70085350685240175269511103394845061),
1603 Perm111(.20287670215559760434708665743838398,
1604 .79193561974577570926640621745254478),
1605 Perm111(.12817949523631330608909975560928685,
1606 .86701504698388816611813701911598314),
1607 Perm111(.07052544109205498392587648111966164,
1608 .92391986491477366531821910182946052),
1609 Perm111(.39532631740896702860171237522193030,
1610 .59771306110677331467243551041521591),
1611 Perm111(.02956827316914143637172672359648260,
1612 .96465253113231383432304266408275803),
1613 Perm111(.30675094998690715371535728527788425,
1614 .66850082953013352645351336823624571),
1615 Perm111(.22517182313337122500507617369889188,
1616 .75132263382025994493510577224942991),
1617 Perm111(.07635892427059552575901260109062831,
1618 .89611941137326587665824353804536658),
1619 Perm111(.14042475531972069418905256134644577,
1620 .83328227859710106355842490700741297),
1621 Perm111(.39118747052871590865900820029002383,
1622 .57082898894634335709509739044406166),
1623 Perm111(.19396081112987221646366179522225910,
1624 .75010271498110326795986200675381153),
1625 Perm111(.11586020721321567595528110784524463,
1626 .81777490624407893257309046195761535),
1627 Perm111(.28023728574593295635247200998364845,
1628 .65528264369963779978719065630966078),
1629 Perm111(.35489334757487301545619510855666152,
1630 .55787563056563336146991239029436233),
1631 Perm111(.14534210735467833470209926430836432,
1632 .74965464658825236845917501382975580),
1633 Perm111(.21353594460615902118568163630567554,
1634 .67815620035398476715714603087527412),
1635 Perm111(.38905986757978011881345023070696881,
1636 .47478610218807292068119420965885141),
1637 Perm111(.27562890222960030201915925622737738,
1638 .58603008200093619992681987776326855),
1639 Perm111(.31377995329904710006329372044106871,
1640 .49151146351194286330016259453399046)
1641};
1643 "2D P28", /* name */
1644 2, /* dim */
1645 28, /* order */
1646 Length(QUAD_2D_P28_wts), /* npoints = 154 */
1647 QUAD_2D_P28_pts, /* points */
1648 QUAD_2D_P28_wts, /* weights */
1649 -1 /* id */
1650};
1651
1652static double QUAD_2D_P29_wts[] = {
1653 Dup3(.01390369197243498012196860526728523),
1654 Dup21(.00119407074555933681859037971323571),
1655 Dup21(.00558417807814421700320296020710969),
1656 Dup21(.01401429650050351710041595861194328),
1657 Dup21(.01410780604708034305616878409304137),
1658 Dup21(.01342810431576591351787528351663394),
1659 Dup21(.01217537497609338458269338763086290),
1660 Dup21(.00722294427143959319468499698239233),
1661 Dup21(.00443751867960735637759182913807913),
1662 Dup21(.00019771881519265609682851845605640),
1663 Dup111(.00129189419129147303154103509431602),
1664 Dup111(.00112772642035394166015974617443553),
1665 Dup111(.00184745171735374848441682404155343),
1666 Dup111(.00071782203324654941618021167082972),
1667 Dup111(.00351318664214703198725396103172539),
1668 Dup111(.00349660600844854338988705837555120),
1669 Dup111(.00241690948038281274650124841577492),
1670 Dup111(.00081313466613996608724908914031470),
1671 Dup111(.00564942974660398293146765321429865),
1672 Dup111(.00445904031659885067338404631595062),
1673 Dup111(.00185640152529500022792451101805069),
1674 Dup111(.00701742231395962656370871380070187),
1675 Dup111(.00476963067992196310852157152860163),
1676 Dup111(.00768181583252764607257537723234668),
1677 Dup111(.00866304121915658321589732638654127),
1678 Dup111(.00694192073189620264349957702824600),
1679 Dup111(.00608713825993680733195825320444232),
1680 Dup111(.00987867211691082287437749173658670),
1681 Dup111(.01040317740016649468355653503351506),
1682 Dup111(.00677295750139824628718993144871263),
1683 Dup111(.00832356466794721739792214655562608),
1684 Dup111(.01175825678556958331667970045402759),
1685 Dup111(.01268117819931458364046050771195975)
1686};
1688 Perm3(.33333333333333333333333333333333333),
1689 Perm21(.49941626286799955409520464498316269),
1690 Perm21(.48948346983261497522938052895559610),
1691 Perm21(.38337490646926000907612840544797942),
1692 Perm21(.28657967124624950515035657391568590),
1693 Perm21(.23675743798075908296846185092132762),
1694 Perm21(.18444854262549379977888738237869426),
1695 Perm21(.09592097238345002706204055857161251),
1696 Perm21(.05732663714886085602392016667935097),
1697 Perm21(.00360814709934401389942946854275571),
1698 Perm111(.32459168027628713302158859225874986,
1699 .67371212175894638940968866052450810),
1700 Perm111(.20538296110395026907966241605897587,
1701 .79285585098032246467154265489876875),
1702 Perm111(.12781715504878891712709027697510756,
1703 .86682261130980615198333080160570653),
1704 Perm111(.06397213170443202744985506555180679,
1705 .93422003016808671513846621034706181),
1706 Perm111(.40877270304610163463977433263460813,
1707 .58330425747295030197062188244089100),
1708 Perm111(.26000366001505949148390106470940356,
1709 .72820244365190777874589416567626502),
1710 Perm111(.08370103760471207151750106127384500,
1711 .89846466640643977698190152996194171),
1712 Perm111(.02277724243943714846816275979306666,
1713 .97158629182957065178007512301223061),
1714 Perm111(.33249703304933480878170490873619909,
1715 .64248824389424048968615511405857584),
1716 Perm111(.17546771597780866991339541376496896,
1717 .80343317590650447549486585236617441),
1718 Perm111(.04239144337139153742306881985042489,
1719 .93728223742102642341436645741650662),
1720 Perm111(.23808696074926436006355587074260398,
1721 .71698190885093363334019663932316818),
1722 Perm111(.11385025949319543285234976170424461,
1723 .84431131334463485469301787175078758),
1724 Perm111(.40769947121073335745665277255775013,
1725 .54824721541790114707748890982833737),
1726 Perm111(.30971996601029726066117003751273698,
1727 .62232557895213827911084197477161010),
1728 Perm111(.16501257707342404851428639610530038,
1729 .76776792910869773214284522469888712),
1730 Perm111(.43736489346938777507788866536148926,
1731 .48468874869866900000000000000000000),
1732 Perm111(.23036169231961739485460160639223048,
1733 .66627592302530221745209390079397421),
1734 Perm111(.35305476702238759018727511157688575,
1735 .54053899274173894698475001785466288),
1736 Perm111(.15871875580457590021286449358564550,
1737 .72119885820756830541154885697690356),
1738 Perm111(.40214959194205300000000000000000001,
1739 .45482738530050760506736521027227478),
1740 Perm111(.27186848606196062046228695803969211,
1741 .57716886061275534659861021805529577),
1742 Perm111(.32870389995531448574405098549674708,
1743 .47881463249708848352487404443818064)
1744};
1746 "2D P29", /* name */
1747 2, /* dim */
1748 29, /* order */
1749 Length(QUAD_2D_P29_wts), /* npoints = 166 */
1750 QUAD_2D_P29_pts, /* points */
1751 QUAD_2D_P29_wts, /* weights */
1752 -1 /* id */
1753};
1754
1755/*---------------------------- 3D cubature rules ---------------------------*/
1756
1757static double QUAD_3D_P1_wts[] = {
1758 Dup4(1.)
1759};
1760static double QUAD_3D_P1_pts[Length(QUAD_3D_P1_wts) * 4] = {
1761 Perm4(.25)
1762};
1764 "3D P1", /* name */
1765 3, /* dim */
1766 1, /* order */
1767 Length(QUAD_3D_P1_wts), /* npoints = 1 */
1768 QUAD_3D_P1_pts, /* points */
1769 QUAD_3D_P1_wts, /* weights */
1770 -1 /* id */
1771};
1772
1773static double QUAD_3D_P2_wts[] = {
1774 Dup31(.25)
1775};
1776static double QUAD_3D_P2_pts[Length(QUAD_3D_P2_wts) * 4] = {
1777 /* (5. - sqrt(5.)) / 20, (5. + 3 * sqrt(5.)) / 20 */
1778 Perm31(.13819660112501051517954131656343619)
1779};
1781 "3D P2", /* name */
1782 3, /* dim */
1783 2, /* order */
1784 Length(QUAD_3D_P2_wts), /* npoints = 4 */
1785 QUAD_3D_P2_pts, /* points */
1786 QUAD_3D_P2_wts, /* weights */
1787 -1 /* id */
1788};
1789
1790#if 0
1791static double QUAD_3D_P3_wts[] = {
1792 Dup31(1./40.),
1793 Dup31(9./40.)
1794};
1795static double QUAD_3D_P3_pts[Length(QUAD_3D_P3_wts) * 4] = {
1796 Perm31(0., 1.),
1797 Perm31(1./3., 0.)
1798};
1799#else
1800static double QUAD_3D_P3_wts[] = {
1801 /* 1 / 8 + sqrt((1715161837 - 406006699 * sqrt(17)) / 23101) / 3120 */
1802 Dup31(.13852796651186214232361769837564129),
1803 /* 1 / 8 - sqrt((1715161837 - 406006699 * sqrt(17)) / 23101) / 3120 */
1804 Dup31(.11147203348813785767638230162435871)
1805};
1806static double QUAD_3D_P3_pts[Length(QUAD_3D_P3_wts) * 4] = {
1807 /* (55 - 3 * sqrt(17) + sqrt(1022 - 134 * sqrt(17))) / 196 */
1808 Perm31(.32805469671142664733580581998119743),
1809 /* (55 - 3 * sqrt(17) - sqrt(1022 - 134 * sqrt(17))) / 196 */
1810 Perm31(.10695227393293068277170204157061650)
1811};
1812#endif
1814 "3D P3", /* name */
1815 3, /* dim */
1816 3, /* order */
1817 Length(QUAD_3D_P3_wts), /* npoints = 8 */
1818 QUAD_3D_P3_pts, /* points */
1819 QUAD_3D_P3_wts, /* weights */
1820 -1 /* id */
1821};
1822
1823#if 0
1824static double QUAD_3D_P4_wts[] = {
1825 Dup4(-148./1875.), /* negative weight */
1826 Dup31(343./7500.),
1827 Dup22(56./375.)
1828};
1829static double QUAD_3D_P4_pts[Length(QUAD_3D_P4_wts) * 4] = {
1830 Perm4(0.25),
1831 Perm31(1./14.),
1832 Perm22(0.1005964238332008)
1833};
1834QUAD QUAD_3D_P4_ = {
1835 "3D P4", /* name */
1836 3, /* dim */
1837 4, /* order */
1838 11, /* npoints = 11 */
1839 QUAD_3D_P4_pts, /* points */
1840 QUAD_3D_P4_wts, /* weights */
1841 -1 /* id */
1842};
1843#else
1844static double QUAD_3D_P4_wts[] = {
1845 Dup31(.07349304311636194934358694586367885),
1846 Dup31(.11268792571801585036501492847638892),
1847 Dup22(.04254602077708146686093208377328816)
1848};
1849static double QUAD_3D_P4_pts[Length(QUAD_3D_P4_wts) * 4] = {
1850 Perm31(.09273525031089122628655892066032137),
1851 Perm31(.31088591926330060975814749494040332),
1852 Perm22(.04550370412564965000000000000000000)
1853};
1855 "3D P4", /* name */
1856 3, /* dim */
1857 4, /* order */
1858 Length(QUAD_3D_P4_wts), /* npoints = 14 */
1859 QUAD_3D_P4_pts, /* points */
1860 QUAD_3D_P4_wts, /* weights */
1861 -1 /* id */
1862};
1863#endif
1864
1865#if 0
1866/* Stroud T3:5-1 p315 */
1867static double QUAD_3D_P5_wts[] = {
1868 Dup4(16./135.),
1869 /* (2665 + 14 * sqrt(15)) / 37800 */
1870 Dup31(.07193708377901862),
1871 /* (2665 - 14 * sqrt(15)) / 37800 */
1872 Dup31(.06906820722627239),
1873 Dup22(20./378.)
1874};
1875static double QUAD_3D_P5_pts[Length(QUAD_3D_P5_wts) * 4] = {
1876 Perm4(.25),
1877 /* (7 - sqrt(15)) / 34, (13 + 3 * sqrt(15)) / 34 */
1878 Perm31(.09197107805272303),
1879 /* (7 + sqrt(15)) / 34, (13 - 3 * sqrt(15)) / 34 */
1880 Perm31(.31979362782962991),
1881 /* (10 - 2 * sqrt(15)) / 40, (10 + 2 * sqrt(15)) / 40 */
1882 Perm22(.05635083268962916)
1883};
1884QUAD QUAD_3D_P5_ = {
1885 "3D P5", /* name */
1886 3, /* dim */
1887 5, /* order */
1888 15, /* npoints = 15 */
1889 QUAD_3D_P5_pts, /* points */
1890 QUAD_3D_P5_wts, /* weights */
1891 -1 /* id */
1892};
1893#else
1894static double QUAD_3D_P5_wts[] = {
1895 Dup31(.11268792571801585079918565233328633),
1896 Dup31(.07349304311636194954371020548632750),
1897 Dup22(.04254602077708146643806942812025744)
1898
1899};
1900static double QUAD_3D_P5_pts[Length(QUAD_3D_P5_wts) * 4] = {
1901 Perm31(.31088591926330060979734573376345783),
1902 Perm31(.09273525031089122640232391373703061),
1903 Perm22(.04550370412564964949188052627933943)
1904};
1906 "3D P5", /* name */
1907 3, /* dim */
1908 5, /* order */
1909 Length(QUAD_3D_P5_wts), /* npoints = 14 */
1910 QUAD_3D_P5_pts, /* points */
1911 QUAD_3D_P5_wts, /* weights */
1912 -1 /* id */
1913};
1914#endif
1915
1916static double QUAD_3D_P6_wts[] = {
1917 Dup31(.03992275025816749209969062755747998),
1918 Dup31(.01007721105532064294801323744593686),
1919 Dup31(.05535718154365472209515327785372602),
1920 Dup211(27./560.)
1921};
1922static double QUAD_3D_P6_pts[Length(QUAD_3D_P6_wts) * 4] = {
1923 Perm31(.21460287125915202928883921938628499),
1924 Perm31(.04067395853461135311557944895641006),
1925 Perm31(.32233789014227551034399447076249213),
1926 /* (3 - sqrt(5)) / 12, (5 + sqrt(5)) / 12, (1 + sqrt(5)) / 12 */
1927 Perm211(.06366100187501752529923552760572698,
1928 .60300566479164914136743113906093969)
1929};
1931 "3D P6", /* name */
1932 3, /* dim */
1933 6, /* order */
1934 Length(QUAD_3D_P6_wts), /* npoints = 24 */
1935 QUAD_3D_P6_pts, /* points */
1936 QUAD_3D_P6_wts, /* weights */
1937 -1 /* id */
1938};
1939
1940static double QUAD_3D_P7_wts[] = {
1941 Dup4(.09548528946413084886057843611722638),
1942 Dup31(.04232958120996702907628617079854674),
1943 Dup22(.03189692783285757993427482408294246),
1944 Dup211(.03720713072833462136961556119148112),
1945 Dup211(.00811077082990334156610343349109654)
1946};
1947static double QUAD_3D_P7_pts[Length(QUAD_3D_P7_wts) * 4] = {
1948 Perm4(.25),
1949 Perm31(.31570114977820279942342999959331149),
1950 Perm22(.05048982259839636876305382298656247),
1951 Perm211(.18883383102600104773643110385458576,
1952 .57517163758700002348324157702230752),
1953 Perm211(.02126547254148324598883610149981994,
1954 .81083024109854856111810537984823239)
1955};
1957 "3D P7", /* name */
1958 3, /* dim */
1959 7, /* order */
1960 Length(QUAD_3D_P7_wts), /* npoints = 35 */
1961 QUAD_3D_P7_pts, /* points */
1962 QUAD_3D_P7_wts, /* weights */
1963 -1 /* id */
1964};
1965
1966static double QUAD_3D_P8_wts[] = {
1967 Dup31(.00639714777990232132145142033517302),
1968 Dup31(.04019044802096617248816115847981783),
1969 Dup31(.02430797550477032117486910877192260),
1970 Dup31(.05485889241369744046692412399039144),
1971 Dup22(.03571961223409918246495096899661762),
1972 Dup211(.00718319069785253940945110521980376),
1973 Dup211(.01637218194531911754093813975611913)
1974};
1975static double QUAD_3D_P8_pts[Length(QUAD_3D_P8_wts) * 4] = {
1976 Perm31(.03967542307038990126507132953938949),
1977 Perm31(.31448780069809631378416056269714830),
1978 Perm31(.10198669306270330000000000000000000),
1979 Perm31(.18420369694919151227594641734890918),
1980 Perm22(.06343628775453989240514123870189827),
1981 Perm211(.02169016206772800480266248262493018,
1982 .71993192203946593588943495335273478),
1983 Perm211(.20448008063679571424133557487274534,
1984 .58057719012880922417539817139062041)
1985};
1987 "3D P8", /* name */
1988 3, /* dim */
1989 8, /* order */
1990 Length(QUAD_3D_P8_wts), /* npoints = 46 */
1991 QUAD_3D_P8_pts, /* points */
1992 QUAD_3D_P8_wts, /* weights */
1993 -1 /* id */
1994};
1995
1996static double QUAD_3D_P9_wts[] = {
1997 Dup4(.05489853459364812686895885032391298),
1998 Dup31(.00421825735654367356185795185819147),
1999 Dup31(.02348412311384798927791501022996111),
2000 Dup31(.00421283454980389148648831814037819),
2001 Dup31(.02994712640542812769203037546126163),
2002 Dup22(.03695441750679136335292416138761121),
2003 Dup211(.00817349224171051348425319650294732),
2004 Dup211(.00987978656102278957913113314297149),
2005 Dup211(.02160718741919244401497646690335203)
2006};
2007static double QUAD_3D_P9_pts[Length(QUAD_3D_P9_wts) * 4] = {
2008 Perm4(.25000000000000000000000000000000000),
2009 Perm31(.03785502061999503609086515586175707),
2010 Perm31(.16954439965012220000000000000000000),
2011 Perm31(.05484140424416689000000000000000000),
2012 Perm31(.32229717190921058836777748445908171),
2013 Perm22(.10961777508972033704050355954365052),
2014 Perm211(.45915766038590539763886410168178216,.08004485927247373376034330857923567),
2015 Perm211(.03296694775357210169727386483414899,.71879584022434055051132299796383374),
2016 Perm211(.18174359672117481549870278661377760,.60023700739524674102301240348069459)
2017};
2019 "3D P9", /* name */
2020 3, /* dim */
2021 9, /* order */
2022 Length(QUAD_3D_P9_wts), /* npoints = 59 */
2023 QUAD_3D_P9_pts, /* points */
2024 QUAD_3D_P9_wts, /* weights */
2025 -1 /* id */
2026};
2027
2028static double QUAD_3D_P10_wts[] = {
2029 Dup4(.04574189830483037077884770618329337),
2030 Dup31(.01092727610912416907498417206565671),
2031 Dup31(.00055352334192264689534558564012282),
2032 Dup31(.02569337913913269580782688316792080),
2033 Dup22(.00055387649657283109312967562590035),
2034 Dup211(.01044842402938294329072628200105773),
2035 Dup211(.02513844602651287118280517785487423),
2036 Dup211(.01178620679249594711782155323755017),
2037 Dup211(.01332022473886650471019828463616468),
2038 Dup211(.00615987577565961666092767531756180)
2039};
2041 Perm4(.25000000000000000000000000000000000),
2042 Perm31(.11425191803006935688146412277598412),
2043 Perm31(.01063790234539248531264164411274776),
2044 Perm31(.31274070833535645859816704980806110),
2045 Perm22(.01631296303281644000000000000000000),
2046 Perm211(.03430622963180452385835196582344460,.59830121060139461905983787517050400),
2047 Perm211(.12346418534551115945916818783743644,.47120066204746310257913700590727081),
2048 Perm211(.40991962933181117418479812480531207,.16546413290740130923509687990363569),
2049 Perm211(.17397243903011716743177479785668929,.62916375300275643773181882027844514),
2050 Perm211(.03002157005631784150255786784038011,.81213056814351208262160080755918730)
2051};
2053 "3D P10", /* name */
2054 3, /* dim */
2055 10, /* order */
2056 Length(QUAD_3D_P10_wts), /* npoints = 79 */
2057 QUAD_3D_P10_pts, /* points */
2058 QUAD_3D_P10_wts, /* weights */
2059 -1 /* id */
2060};
2061
2062static double QUAD_3D_P11_wts[] = {
2063 Dup31(.01612698613577620369120244222737879),
2064 Dup31(.00178872341812357138976990346996962),
2065 Dup31(.00847529348343123401863799968389086),
2066 Dup31(.01238021263944669050859562763135516),
2067 Dup31(.02205586697199415746140963638568037),
2068 Dup31(.02295765467664274421265594265203307),
2069 Dup22(.00120553827014535727045055662252294),
2070 Dup22(.02479381575164443454447803302296997),
2071 Dup211(.01203878836480353606935457416590660),
2072 Dup211(.00189370204498242146248858917618493),
2073 Dup211(.01838752922255814184581020943433469),
2074 Dup211(.00375249249801662461193260176157591),
2075 Dup211(.00633289841693951300885921328914879)
2076};
2078 Perm31(.12460560449278830000000000000000000),
2079 Perm31(.02609630765687464746851542316261877),
2080 Perm31(.07193883255798884087330011042809557),
2081 Perm31(.32611122454203676937273102302894204),
2082 Perm31(.29405882789858127213310307732130217),
2083 Perm31(.19271399104965490000000000000000000),
2084 Perm22(.00047127204692773946587837159205225),
2085 Perm22(.10321360207480949336085123341390539),
2086 Perm211(.04349989920159741251267172033621503,.63045319723555591476353398203997141),
2087 Perm211(.01414839289422299290755441603794058,.82491678632147090000000000000000000),
2088 Perm211(.21646077368258425486341884576246642,.52711130286496480000000000000000000),
2089 Perm211(.13301884366834711587538262083530116,.73318551371398651551736762818473584),
2090 Perm211(.44054756810613723082959230959880706,.11506799584377921703650823955291194)
2091};
2093 "3D P11", /* name */
2094 3, /* dim */
2095 11, /* order */
2096 Length(QUAD_3D_P11_wts), /* npoints = 96 */
2097 QUAD_3D_P11_pts, /* points */
2098 QUAD_3D_P11_wts, /* weights */
2099 -1 /* id */
2100};
2101
2102#if 0
2103/* This rule has smaller smallest weight, but larger smallest coordinate */
2104static double QUAD_3D_P12_wts[] = {
2105 Dup4(.02589965672379885946221733044466074),
2106 Dup31(.01188011778542489263304669307765255),
2107 Dup31(.00019243842802940139599667156916414),
2108 Dup31(.01460564220714648400941139428792250),
2109 Dup31(.02353236994618624831565909171056252),
2110 Dup31(.00346404243764658661894167546736912),
2111 Dup31(.00228568518874660364931057482041380),
2112 Dup22(.00501950062495183938689269420528004),
2113 Dup211(.00320174248310251480919195429036897),
2114 Dup211(.00202024177312536986954908485107823),
2115 Dup211(.01899921243817155551496634864579523),
2116 Dup211(.01117477555012353260111605364799274),
2117 Dup211(.00207779882840923556600240825180423),
2118 Dup211(.00869161875227804588294414185879858),
2119 Dup1111(.00692322823546859111673842508505270)
2120};
2121static double QUAD_3D_P12_pts[Length(QUAD_3D_P12_wts) * 4] = {
2122 Perm4(.25000000000000000000000000000000000),
2123 Perm31(.19116879305510430000000000000000000),
2124 Perm31(.00682229647466825300000000000000000),
2125 Perm31(.11103797219861743807174062535414434),
2126 Perm31(.30431537393096840008351569498769254),
2127 Perm31(.33330701922933059830641111348885293),
2128 Perm31(.03749731365321851391723610755748038),
2129 Perm22(.02908058522435483091440010450122699),
2130 Perm211(.10629116753733978623182625071275481,.77130194925321140000000000000000000),
2131 Perm211(.01502748327185297263655744616273496,.65443537701179976723333225063505233),
2132 Perm211(.11858644579813568530889450851753765,.47382134604605374894284625141111954),
2133 Perm211(.23794356469277477534447903853264153,.49612597976538932876414383840091269),
2134 Perm211(.01843178364329910061032558678799065,.83375846651196750385382238298017745),
2135 Perm211(.42701814417313713339071532305024250,.12504688768243536523870060457848538),
2136 Perm1111(.64187643174850151718866301627283112,.24168463603891561876101692273289702,.09328358047945690018548146926510585)
2137};
2139 "3D P12", /* name */
2140 3, /* dim */
2141 12, /* order */
2142 Length(QUAD_3D_P12_wts), /* npoints = 127 */
2143 QUAD_3D_P12_pts, /* points */
2144 QUAD_3D_P12_wts, /* weights */
2145 -1 /* id */
2146};
2147#else
2148/* This rule has larger smallest weight, but smaller smallest coordinate */
2149static double QUAD_3D_P12_wts[] = {
2150 Dup4(.02340581914868067999082580773836836),
2151 Dup31(.00484469946470415656870798306091558),
2152 Dup31(.00079865303812732982185563521014343),
2153 Dup31(.01311872008808756207964488505025527),
2154 Dup31(.02352182961292765917274505054313770),
2155 Dup31(.00210860882494149803857437048649497),
2156 Dup31(.00047839298963616600187228601742259),
2157 Dup22(.00204546234216855322941711800170502),
2158 Dup211(.00334576331671817115245418532677178),
2159 Dup211(.01181044822479275264785338274950585),
2160 Dup211(.00290156990282342152841364375092118),
2161 Dup211(.00949250645501753676094846901252898),
2162 Dup211(.02094018358085748583183796760479700),
2163 Dup211(.00171435866337409051521874943702732),
2164 Dup1111(.00759915954173370886076474450830409)
2165};
2167 Perm4(.25000000000000000000000000000000000),
2168 Perm31(.19318721110347230000000000000000000),
2169 Perm31(.01811701371436566878506928822499717),
2170 Perm31(.10700751831426066518406159227423033),
2171 Perm31(.29936173715970702940603127680004538),
2172 Perm31(.33333033333333333042835213613025030),
2173 Perm31(.16575369007421640000000000000000000),
2174 Perm22(.04009986052352575650366980228640728),
2175 Perm211(.01951844463761131301132122485607343,.59982639757597731668263005976738196),
2176 Perm211(.24970741896308715787490891769354198,.47400425629911050000000000000000000),
2177 Perm211(.07674205857869954726322831328843659,.83056291375422969598432041821082569),
2178 Perm211(.43011409627915217536723647418133112,.02265922072588833582931396831630072),
2179 Perm211(.12197854304894211937147375564906792,.47765370899783134571567376444973682),
2180 Perm211(.01480482319031682427540691439704854,.81083799468092699988474915243749073),
2181 Perm1111(.65250697573013212016385330106711095,.22646235632397177636617160407210034,.02251830769546778956654013747639605)
2182};
2184 "3D P12", /* name */
2185 3, /* dim */
2186 12, /* order */
2187 Length(QUAD_3D_P12_wts), /* npoints = 127 */
2188 QUAD_3D_P12_pts, /* points */
2189 QUAD_3D_P12_wts, /* weights */
2190 -1 /* id */
2191};
2192#endif
2193
2194static double QUAD_3D_P13_wts[] = {
2195 Dup4(.02191579945212728678229670892998658),
2196 Dup31(.00809592740005652573580359966615063),
2197 Dup31(.00130319185047278813746994806952476),
2198 Dup31(.01996610676014222116016391561580003),
2199 Dup31(.02125705756007566772097136088386650),
2200 Dup22(.00077331890737182713690269661719116),
2201 Dup22(.01755491389570430512641028370006205),
2202 Dup211(.00213830361001659899343287397434178),
2203 Dup211(.00256560169283338620814651902766716),
2204 Dup211(.00338953948455728203040932651810398),
2205 Dup211(.01135828330503278417235563981454793),
2206 Dup211(.01103203882197761043040360052454856),
2207 Dup211(.00457602573785952356043458354199517),
2208 Dup211(.00827343104220868129752243222682095),
2209 Dup211(.00586641165391940007076312979369247),
2210 Dup1111(.00313458521939849614410720196518793)
2211};
2213 Perm4(.25000000000000000000000000000000000),
2214 Perm31(.09935339765028269917868020572165369),
2215 Perm31(.02361873260499568532036302265004401),
2216 Perm31(.30089166537572662790706731844610997),
2217 Perm31(.18156624280757148139366685840064601),
2218 Perm22(.00428160639152879988718710754508354),
2219 Perm22(.12290357421888442998582785890620434),
2220 Perm211(.28318219770202728236417353077594322,.43037955664247500440987356786807501),
2221 Perm211(.02239485904524970717572425710098278,.83488749018470024820940398932904512),
2222 Perm211(.02191788402113435132324662419880111,.67691762094326571059673391273529166),
2223 Perm211(.21481417044274656673534260788169227,.52280311286258745560867693994038579),
2224 Perm211(.08000490008644308882018405418010744,.24689045570275147370034631014113188),
2225 Perm211(.11579466150271899371721034492503850,.74997281767443310000000000000000000),
2226 Perm211(.39129315347000474438672195978809687,.18835457382799180000000000000000000),
2227 Perm211(.45315745821242834581317282468854978,.02202033169457796534173826092007299),
2228 Perm1111(.27324999892429634023602493512400674,.60775441245653315696274741541102470,.00561877924700169073874366184065955)
2229};
2231 "3D P13", /* name */
2232 3, /* dim */
2233 13, /* order */
2234 Length(QUAD_3D_P13_wts), /* npoints = 149 */
2235 QUAD_3D_P13_pts, /* points */
2236 QUAD_3D_P13_wts, /* weights */
2237 -1 /* id */
2238};
2239
2240static double QUAD_3D_P14_wts[] = {
2241 Dup31(.00898427322254918127543126682598773),
2242 Dup31(.00235414897468188299910869230818368),
2243 Dup31(.00733553866836377016223467789336265),
2244 Dup31(.00360629336228634011530354432318077),
2245 Dup31(.00022796656022189240650071390651338),
2246 Dup22(.00425068731230945391542573203967906),
2247 Dup211(.00502229674184657212637707578731437),
2248 Dup211(.00664105199619194276141547967835717),
2249 Dup211(.00648663075652078221084713724389357),
2250 Dup211(.01084924609520658118048627917429636),
2251 Dup211(.00698225572400728567899793615355807),
2252 Dup211(.01057643198113441258335538488635301),
2253 Dup211(.00172517387494940531214061228255136),
2254 Dup211(.01064026039260234415487304925754523),
2255 Dup211(.00031627239419231128593612508289817),
2256 Dup211(.00676212093730203740266276007684025),
2257 Dup1111(.00293371746826111669254642316791922),
2258 Dup1111(.00091803679200083798695474146748587)
2259};
2261 Perm31(.12703434587701869604797950660749487),
2262 Perm31(.03716308713428675181759859706979325),
2263 Perm31(.30931161817607732544635505822019770),
2264 Perm31(.07778813507287403019691221965639750),
2265 Perm31(.01187611663683786502091234677477106),
2266 Perm22(.02371189715571358237825633505545476),
2267 Perm211(.04551422172971295738029708158398140,.73884882267833978290969755547076243),
2268 Perm211(.19457055431059420000000000000000000,.36138202354403612356128050094846106),
2269 Perm211(.42158193164647035846631052119479790,.13481021809330111977392354242291205),
2270 Perm211(.36227661803202431683389679069549247,.09100846759454444774082592541447308),
2271 Perm211(.26662003783461096351186917353420086,.45135951603290056428206454329600320),
2272 Perm211(.07870367664603755989163074150395650,.53854007868617855365162509332690316),
2273 Perm211(.01462604843949452202375023818416595,.68140642280720592407050422036244765),
2274 Perm211(.20755902173331721318141636044536441,.49641284136813420000000000000000000),
2275 Perm211(.00317672566580133046838579859910808,.88571644680187933415518991697343211),
2276 Perm211(.16634658949265576428233847556684871,.64221464654291632524678940601354742),
2277 Perm1111(.59698804897542365623933181080626979,.30344194369885264264500117734906354,.00772105989990930297678960227638472),
2278 Perm1111(.81379652801439184798325669233364806,.06021328978843793059084645285790579,.12582571438467239382589793638340901)
2279};
2281 "3D P14", /* name */
2282 3, /* dim */
2283 14, /* order */
2284 Length(QUAD_3D_P14_wts), /* npoints = 194 */
2285 QUAD_3D_P14_pts, /* points */
2286 QUAD_3D_P14_wts, /* weights */
2287 -1 /* id */
2288};
#define Dup211(w)
Definition: quad-permu.h:101
#define Perm22(a)
Definition: quad-permu.h:82
#define Dup22(w)
Definition: quad-permu.h:88
#define Dup4(w)
Definition: quad-permu.h:76
#define Dup0
Definition: quad-permu.h:34
#define Perm4(a)
Definition: quad-permu.h:75
#define Perm1111(a, b, c)
Definition: quad-permu.h:104
#define Perm31(a)
Definition: quad-permu.h:77
#define Perm3(a)
Definition: quad-permu.h:52
#define Dup21(w)
Definition: quad-permu.h:57
#define Dup2(w)
Definition: quad-permu.h:40
#define Dup3(w)
Definition: quad-permu.h:53
#define Dup1111(w)
Definition: quad-permu.h:109
#define Dup11(w)
Definition: quad-permu.h:42
#define Dup111(w)
Definition: quad-permu.h:64
#define Dup31(w)
Definition: quad-permu.h:81
#define Perm11(a)
Definition: quad-permu.h:41
#define Perm21(a)
Definition: quad-permu.h:54
#define Perm111(a, b)
Definition: quad-permu.h:58
#define Perm211(a, b)
Definition: quad-permu.h:89
#define Perm2(a)
Definition: quad-permu.h:39
#define Perm30(a, b)
Definition: quad-permu.h:72
QUAD QUAD_2D_P2_
Definition: quad.c:295
static double QUAD_2D_P9_pts[Length(QUAD_2D_P9_wts) *3]
Definition: quad.c:543
static double QUAD_2D_P18_pts[Length(QUAD_2D_P18_wts) *3]
Definition: quad.c:899
static double QUAD_2D_P4_pts[Length(QUAD_2D_P4_wts) *3]
Definition: quad.c:342
QUAD QUAD_2D_P15_
Definition: quad.c:767
static double QUAD_3D_P8_wts[]
Definition: quad.c:1966
static double QUAD_2D_P5_pts[Length(QUAD_2D_P5_wts) *3]
Definition: quad.c:365
static double QUAD_2D_P2_wts[]
Definition: quad.c:289
static double QUAD_3D_P6_pts[Length(QUAD_3D_P6_wts) *4]
Definition: quad.c:1922
static double QUAD_2D_P26_wts[]
Definition: quad.c:1375
static double QUAD_1D_P21_wts[]
Definition: quad.c:245
static double QUAD_2D_P7_pts[Length(QUAD_2D_P7_wts) *3]
Definition: quad.c:467
static double QUAD_3D_P3_wts[]
Definition: quad.c:1800
static double QUAD_1D_P1_pts[Length(QUAD_1D_P1_wts) *2]
Definition: quad.c:42
static double QUAD_2D_P23_wts[]
Definition: quad.c:1180
static double QUAD_3D_P13_pts[Length(QUAD_3D_P13_wts) *4]
Definition: quad.c:2212
QUAD QUAD_1D_P13_
Definition: quad.c:165
static double QUAD_3D_P9_pts[Length(QUAD_3D_P9_wts) *4]
Definition: quad.c:2007
QUAD QUAD_2D_P21_
Definition: quad.c:1104
static double QUAD_3D_P7_pts[Length(QUAD_3D_P7_wts) *4]
Definition: quad.c:1947
static double QUAD_2D_P19_pts[Length(QUAD_2D_P19_wts) *3]
Definition: quad.c:957
static double QUAD_3D_P11_wts[]
Definition: quad.c:2062
QUAD QUAD_1D_P1_
Definition: quad.c:45
QUAD QUAD_1D_P9_
Definition: quad.c:123
#define Length(wts)
Definition: quad.c:35
static double QUAD_1D_P3_wts[]
Definition: quad.c:55
QUAD QUAD_2D_P11_
Definition: quad.c:615
static double QUAD_2D_P22_wts[]
Definition: quad.c:1119
static double QUAD_2D_P11_pts[Length(QUAD_2D_P11_wts) *3]
Definition: quad.c:603
static double QUAD_3D_P14_wts[]
Definition: quad.c:2240
static double QUAD_3D_P12_wts[]
Definition: quad.c:2149
static double QUAD_2D_P11_wts[]
Definition: quad.c:593
QUAD QUAD_3D_P1_
Definition: quad.c:1763
static double QUAD_1D_P11_wts[]
Definition: quad.c:133
static double QUAD_1D_P5_pts[Length(QUAD_1D_P5_wts) *2]
Definition: quad.c:76
QUAD QUAD_2D_P1_
Definition: quad.c:279
static double QUAD_2D_P19_wts[]
Definition: quad.c:938
QUAD QUAD_2D_P26_
Definition: quad.c:1451
QUAD QUAD_2D_P13_
Definition: quad.c:684
QUAD QUAD_2D_P5_
Definition: quad.c:373
static double QUAD_2D_P9_wts[]
Definition: quad.c:535
QUAD QUAD_2D_P10_
Definition: quad.c:583
static double QUAD_2D_P1_pts[Length(QUAD_2D_P1_wts) *3]
Definition: quad.c:276
static double QUAD_2D_P16_wts[]
Definition: quad.c:777
static double QUAD_3D_P13_wts[]
Definition: quad.c:2194
static double QUAD_2D_P12_wts[]
Definition: quad.c:625
QUAD QUAD_2D_P19_
Definition: quad.c:984
QUAD QUAD_2D_P28_
Definition: quad.c:1642
static double QUAD_3D_P2_pts[Length(QUAD_3D_P2_wts) *4]
Definition: quad.c:1776
QUAD QUAD_2D_P20_
Definition: quad.c:1047
static double QUAD_3D_P11_pts[Length(QUAD_3D_P11_wts) *4]
Definition: quad.c:2077
QUAD QUAD_3D_P12_
Definition: quad.c:2183
QUAD QUAD_3D_P14_
Definition: quad.c:2280
static double QUAD_1D_P21_pts[Length(QUAD_1D_P21_wts) *2]
Definition: quad.c:253
QUAD QUAD_3D_P4_
Definition: quad.c:1854
static double QUAD_1D_P17_wts[]
Definition: quad.c:197
QUAD QUAD_2D_P7_
Definition: quad.c:475
QUAD QUAD_3D_P9_
Definition: quad.c:2018
static double QUAD_2D_P1_wts[]
Definition: quad.c:273
static double QUAD_2D_P21_pts[Length(QUAD_2D_P21_wts) *3]
Definition: quad.c:1083
QUAD QUAD_2D_P17_
Definition: quad.c:867
static double QUAD_2D_P7_wts[]
Definition: quad.c:461
static double QUAD_2D_P8_pts[Length(QUAD_2D_P8_wts) *3]
Definition: quad.c:492
static double QUAD_1D_P15_wts[]
Definition: quad.c:175
QUAD QUAD_2D_P23_
Definition: quad.c:1228
static double QUAD_2D_P6_pts[Length(QUAD_2D_P6_wts) *3]
Definition: quad.c:430
static double QUAD_3D_P4_wts[]
Definition: quad.c:1844
static double QUAD_2D_P25_pts[Length(QUAD_2D_P25_wts) *3]
Definition: quad.c:1337
QUAD QUAD_3D_P11_
Definition: quad.c:2092
QUAD QUAD_2D_P14_
Definition: quad.c:722
QUAD QUAD_1D_P11_
Definition: quad.c:143
QUAD QUAD_2D_P16_
Definition: quad.c:813
QUAD QUAD_1D_P5_
Definition: quad.c:81
QUAD QUAD_2D_P6_
Definition: quad.c:436
QUAD QUAD_3D_P8_
Definition: quad.c:1986
QUAD QUAD_2D_P9_
Definition: quad.c:552
static double QUAD_1D_P3_pts[Length(QUAD_1D_P3_wts) *2]
Definition: quad.c:58
static double QUAD_1D_P13_wts[]
Definition: quad.c:153
QUAD QUAD_2D_P8_
Definition: quad.c:500
static double QUAD_2D_P23_pts[Length(QUAD_2D_P23_wts) *3]
Definition: quad.c:1204
QUAD QUAD_1D_P21_
Definition: quad.c:261
static double QUAD_3D_P7_wts[]
Definition: quad.c:1940
static double QUAD_2D_P28_wts[]
Definition: quad.c:1554
static double QUAD_2D_P28_pts[Length(QUAD_2D_P28_wts) *3]
Definition: quad.c:1588
static double QUAD_2D_P4_wts[]
Definition: quad.c:336
static double QUAD_1D_P15_pts[Length(QUAD_1D_P15_wts) *2]
Definition: quad.c:181
static double QUAD_3D_P9_wts[]
Definition: quad.c:1996
QUAD QUAD_3D_P7_
Definition: quad.c:1956
QUAD QUAD_1D_P19_
Definition: quad.c:235
static double QUAD_2D_P24_wts[]
Definition: quad.c:1243
static double QUAD_3D_P4_pts[Length(QUAD_3D_P4_wts) *4]
Definition: quad.c:1849
static double QUAD_3D_P14_pts[Length(QUAD_3D_P14_wts) *4]
Definition: quad.c:2260
QUAD QUAD_2D_P22_
Definition: quad.c:1165
static double QUAD_2D_P27_pts[Length(QUAD_2D_P27_wts) *3]
Definition: quad.c:1493
static double QUAD_1D_P9_wts[]
Definition: quad.c:111
static double QUAD_2D_P20_pts[Length(QUAD_2D_P20_wts) *3]
Definition: quad.c:1017
QUAD QUAD_2D_P25_
Definition: quad.c:1365
static double QUAD_2D_P13_wts[]
Definition: quad.c:658
static double QUAD_2D_P10_pts[Length(QUAD_2D_P10_wts) *3]
Definition: quad.c:572
static double QUAD_2D_P15_wts[]
Definition: quad.c:735
static double QUAD_2D_P2_pts[Length(QUAD_2D_P2_wts) *3]
Definition: quad.c:292
static double QUAD_2D_P13_pts[Length(QUAD_2D_P13_wts) *3]
Definition: quad.c:669
static double QUAD_2D_P24_pts[Length(QUAD_2D_P24_wts) *3]
Definition: quad.c:1269
QUAD QUAD_2D_P29_
Definition: quad.c:1745
static double QUAD_2D_P5_wts[]
Definition: quad.c:358
static double QUAD_3D_P1_wts[]
Definition: quad.c:1757
static double QUAD_2D_P22_pts[Length(QUAD_2D_P22_wts) *3]
Definition: quad.c:1142
static double QUAD_2D_P8_wts[]
Definition: quad.c:485
QUAD QUAD_1D_P3_
Definition: quad.c:62
QUAD QUAD_1D_P17_
Definition: quad.c:211
static double QUAD_2D_P3_pts[Length(QUAD_2D_P3_wts) *3]
Definition: quad.c:321
static double QUAD_2D_P10_wts[]
Definition: quad.c:563
static double QUAD_2D_P29_pts[Length(QUAD_2D_P29_wts) *3]
Definition: quad.c:1687
QUAD QUAD_2D_P24_
Definition: quad.c:1295
static double QUAD_3D_P5_wts[]
Definition: quad.c:1894
static double QUAD_3D_P5_pts[Length(QUAD_3D_P5_wts) *4]
Definition: quad.c:1900
static double QUAD_1D_P19_wts[]
Definition: quad.c:221
static double QUAD_2D_P21_wts[]
Definition: quad.c:1062
QUAD QUAD_2D_P3_
Definition: quad.c:326
static double QUAD_2D_P25_wts[]
Definition: quad.c:1309
static double QUAD_1D_P1_wts[]
Definition: quad.c:39
static double QUAD_1D_P9_pts[Length(QUAD_1D_P9_wts) *2]
Definition: quad.c:117
static double QUAD_3D_P8_pts[Length(QUAD_3D_P8_wts) *4]
Definition: quad.c:1975
static double QUAD_3D_P3_pts[Length(QUAD_3D_P3_wts) *4]
Definition: quad.c:1806
static double QUAD_2D_P6_wts[]
Definition: quad.c:425
static double QUAD_2D_P20_wts[]
Definition: quad.c:997
static double QUAD_2D_P15_pts[Length(QUAD_2D_P15_wts) *3]
Definition: quad.c:748
QUAD QUAD_2D_P12_
Definition: quad.c:648
static double QUAD_3D_P10_pts[Length(QUAD_3D_P10_wts) *4]
Definition: quad.c:2040
static double QUAD_2D_P17_wts[]
Definition: quad.c:828
static double QUAD_2D_P14_wts[]
Definition: quad.c:694
static double QUAD_2D_P3_wts[]
Definition: quad.c:317
QUAD QUAD_3D_P5_
Definition: quad.c:1905
QUAD QUAD_2D_P18_
Definition: quad.c:924
static double QUAD_2D_P29_wts[]
Definition: quad.c:1652
QUAD QUAD_1D_P15_
Definition: quad.c:187
QUAD QUAD_2D_P27_
Definition: quad.c:1544
static double QUAD_2D_P18_wts[]
Definition: quad.c:882
QUAD QUAD_3D_P3_
Definition: quad.c:1813
QUAD QUAD_3D_P10_
Definition: quad.c:2052
QUAD QUAD_2D_P4_
Definition: quad.c:348
static double QUAD_1D_P19_pts[Length(QUAD_1D_P19_wts) *2]
Definition: quad.c:228
static double QUAD_1D_P17_pts[Length(QUAD_1D_P17_wts) *2]
Definition: quad.c:204
QUAD QUAD_1D_P7_
Definition: quad.c:101
static double QUAD_2D_P17_pts[Length(QUAD_2D_P17_wts) *3]
Definition: quad.c:844
static double QUAD_3D_P2_wts[]
Definition: quad.c:1773
static double QUAD_1D_P11_pts[Length(QUAD_1D_P11_wts) *2]
Definition: quad.c:138
static double QUAD_1D_P5_wts[]
Definition: quad.c:72
static double QUAD_2D_P26_pts[Length(QUAD_2D_P26_wts) *3]
Definition: quad.c:1404
QUAD QUAD_3D_P13_
Definition: quad.c:2230
static double QUAD_3D_P6_wts[]
Definition: quad.c:1916
static double QUAD_3D_P12_pts[Length(QUAD_3D_P12_wts) *4]
Definition: quad.c:2166
static double QUAD_1D_P13_pts[Length(QUAD_1D_P13_wts) *2]
Definition: quad.c:159
QUAD QUAD_3D_P2_
Definition: quad.c:1780
static double QUAD_2D_P14_pts[Length(QUAD_2D_P14_wts) *3]
Definition: quad.c:706
static double QUAD_2D_P16_pts[Length(QUAD_2D_P16_wts) *3]
Definition: quad.c:792
static double QUAD_1D_P7_wts[]
Definition: quad.c:91
QUAD QUAD_3D_P6_
Definition: quad.c:1930
static double QUAD_2D_P27_wts[]
Definition: quad.c:1461
static double QUAD_3D_P1_pts[Length(QUAD_3D_P1_wts) *4]
Definition: quad.c:1760
static double QUAD_1D_P7_pts[Length(QUAD_1D_P7_wts) *2]
Definition: quad.c:96
static double QUAD_3D_P10_wts[]
Definition: quad.c:2028
static double QUAD_2D_P12_pts[Length(QUAD_2D_P12_wts) *3]
Definition: quad.c:635
Definition: quad.h:25