v0.14.0
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 
39 static double QUAD_1D_P1_wts[] = {
40  Dup2(1.)
41 };
42 static 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 
55 static double QUAD_1D_P3_wts[] = {
56  Dup11(.5)
57 };
58 static 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 
72 static double QUAD_1D_P5_wts[] = {
73  Dup11(5./18.),
74  Dup2(4./9.)
75 };
76 static 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 
91 static double QUAD_1D_P7_wts[] = {
92  /* (18 - sqrt(30)) / 72, (18 + sqrt(30)) / 72 */
93  Dup11(.17392742256872692868653197461099970),
94  Dup11(.32607257743127307131346802538900030)
95 };
96 static 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 
111 static double QUAD_1D_P9_wts[] = {
112  /* (322 \pm 13 * sqrt(70)) / 1800 */
113  Dup2(128./450.),
114  Dup11(.11846344252809454375713202035995868),
115  Dup11(.23931433524968323402064575741781910)
116 };
117 static 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 
133 static double QUAD_1D_P11_wts[] = {
134  Dup11(.08566224618958517252014807108636645),
135  Dup11(.18038078652406930378491675691885806),
136  Dup11(.23395696728634552369493517199477550)
137 };
138 static double QUAD_1D_P11_pts[Length(QUAD_1D_P11_wts) * 2] = {
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 
153 static double QUAD_1D_P13_wts[] = {
154  Dup11(.06474248308443484663530571633954101),
155  Dup11(.13985269574463833395073388571188979),
156  Dup11(.19091502525255947247518488774448757),
157  Dup2(.20897959183673469387755102040816327)
158 };
159 static double QUAD_1D_P13_pts[Length(QUAD_1D_P13_wts) * 2] = {
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 
175 static double QUAD_1D_P15_wts[] = {
176  Dup11(.05061426814518812957626567715498110),
177  Dup11(.11119051722668723527217799721312044),
178  Dup11(.15685332293894364366898110099330066),
179  Dup11(.18134189168918099148257522463859781)
180 };
181 static double QUAD_1D_P15_pts[Length(QUAD_1D_P15_wts) * 2] = {
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 
197 static double QUAD_1D_P17_wts[] = {
198  Dup11(.04063719418078720598594607905526183),
199  Dup11(.09032408034742870202923601562145640),
200  Dup11(.13030534820146773115937143470931642),
201  Dup11(.15617353852000142003431520329222183),
202  Dup2(.16511967750062988158226253464348702)
203 };
204 static double QUAD_1D_P17_pts[Length(QUAD_1D_P17_wts) * 2] = {
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 
221 static double QUAD_1D_P19_wts[] = {
222  Dup11(.03333567215434406879678440494666590),
223  Dup11(.07472567457529029657288816982884867),
224  Dup11(.10954318125799102199776746711408160),
225  Dup11(.13463335965499817754561346078473468),
226  Dup11(.14776211235737643508694649732566916)
227 };
228 static double QUAD_1D_P19_pts[Length(QUAD_1D_P19_wts) * 2] = {
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 
245 static double QUAD_1D_P21_wts[] = {
246  Dup11(.02783428355808683324137686022127429),
247  Dup11(.06279018473245231231734714961197005),
248  Dup11(.09314510546386712571304882071582795),
249  Dup11(.11659688229599523995926185242158757),
250  Dup11(.13140227225512333109034443494525460),
251  Dup2(.13646254338895031535724176416817109)
252 };
253 static double QUAD_1D_P21_pts[Length(QUAD_1D_P21_wts) * 2] = {
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 
273 static double QUAD_2D_P1_wts[] = {
274  Dup3(1.)
275 };
276 static 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 
289 static double QUAD_2D_P2_wts[] = {
290  Dup21(1./3.)
291 };
292 static 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 */
307 static double QUAD_2D_P3_wts[] = {
308  Dup21(1./30.),
309  Dup21(3./10.)
310 };
311 static double QUAD_2D_P3_pts[Length(QUAD_2D_P3_wts) * 3] = {
312  Perm21(.5),
313  /* 1/6 */
314  Perm21(1./6.)
315 };
316 #else
317 static double QUAD_2D_P3_wts[] = {
318  Dup21(.28114980244097964825351432270207695),
319  Dup21(.05218353089235368507981901063125638)
320 };
321 static 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 
336 static 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 };
342 static 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 
358 static 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 };
365 static 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. */
389 static 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 };
402 static 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 };
415 QUAD QUAD_2D_P6_ = {
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
425 static double QUAD_2D_P6_wts[] = {
426  Dup21(.05084490637020681692093680910686898),
427  Dup21(.11678627572637936602528961138557944),
428  Dup111(.08285107561837357519355345642044245)
429 };
430 static 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
448 static double QUAD_2D_P7_wts[] = {
449  Dup21(0.0102558174092),
450  Dup111(0.1116047046647),
451  Dup21(0.1679775595335),
452  Dup21(0.2652238803946)
453 };
454 static 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
461 static double QUAD_2D_P7_wts[] = {
462  Dup21(.01353386251566556156682309245259393),
463  Dup21(.07895125443201098137652145029770332),
464  Dup21(.12860792781890607455665553308952344),
465  Dup111(.05612014428337535791666662874675632)
466 };
467 static 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 
485 static double QUAD_2D_P8_wts[] = {
486  Dup3(.14431560767778716825109111048906462),
487  Dup21(.10321737053471825028179155029212903),
488  Dup21(.03245849762319808031092592834178060),
489  Dup21(.09509163426728462479389610438858432),
490  Dup111(.02723031417443499426484469007390892)
491 };
492 static 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
511 static 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 };
518 static 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 };
525 QUAD QUAD_2D_P9_ = {
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
535 static double QUAD_2D_P9_wts[] = {
536  Dup3(.09713579628279883381924198250728863),
537  Dup21(.03133470022713907053685483128720932),
538  Dup21(.02557767565869803126167879855899982),
539  Dup21(.07782754100477427931673935629940396),
540  Dup21(.07964773892721025303289177426404527),
541  Dup111(.04328353937728937728937728937728938)
542 };
543 static 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 
563 static 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 };
572 static double QUAD_2D_P10_pts[Length(QUAD_2D_P10_wts) * 3] = {
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 
593 static 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 };
603 static double QUAD_2D_P11_pts[Length(QUAD_2D_P11_wts) * 3] = {
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 
625 static 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 };
635 static double QUAD_2D_P12_pts[Length(QUAD_2D_P12_wts) * 3] = {
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 
658 static 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 };
669 static double QUAD_2D_P13_pts[Length(QUAD_2D_P13_wts) * 3] = {
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 
694 static 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 };
706 static double QUAD_2D_P14_pts[Length(QUAD_2D_P14_wts) * 3] = {
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  */
735 static 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 };
748 static double QUAD_2D_P15_pts[Length(QUAD_2D_P15_wts) * 3] = {
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 
777 static 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 };
792 static double QUAD_2D_P16_pts[Length(QUAD_2D_P16_wts) * 3] = {
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 */
828 static 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 };
844 static double QUAD_2D_P17_pts[Length(QUAD_2D_P17_wts) * 3] = {
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 */
882 static 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 };
899 static double QUAD_2D_P18_pts[Length(QUAD_2D_P18_wts) * 3] = {
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. */
938 static 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 };
957 static double QUAD_2D_P19_pts[Length(QUAD_2D_P19_wts) * 3] = {
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 
997 static 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 };
1017 static double QUAD_2D_P20_pts[Length(QUAD_2D_P20_wts) * 3] = {
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 */
1062 static 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 };
1083 static double QUAD_2D_P21_pts[Length(QUAD_2D_P21_wts) * 3] = {
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 */
1119 static 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 };
1142 static double QUAD_2D_P22_pts[Length(QUAD_2D_P22_wts) * 3] = {
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 */
1180 static 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 };
1204 static double QUAD_2D_P23_pts[Length(QUAD_2D_P23_wts) * 3] = {
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 */
1243 static 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 };
1269 static double QUAD_2D_P24_pts[Length(QUAD_2D_P24_wts) * 3] = {
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) */
1309 static 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 };
1337 static double QUAD_2D_P25_pts[Length(QUAD_2D_P25_wts) * 3] = {
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 
1375 static 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 };
1404 static double QUAD_2D_P26_pts[Length(QUAD_2D_P26_wts) * 3] = {
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 
1461 static 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 };
1493 static double QUAD_2D_P27_pts[Length(QUAD_2D_P27_wts) * 3] = {
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 
1554 static 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 };
1588 static double QUAD_2D_P28_pts[Length(QUAD_2D_P28_wts) * 3] = {
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 
1652 static 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 };
1687 static double QUAD_2D_P29_pts[Length(QUAD_2D_P29_wts) * 3] = {
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 
1757 static double QUAD_3D_P1_wts[] = {
1758  Dup4(1.)
1759 };
1760 static 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 
1773 static double QUAD_3D_P2_wts[] = {
1774  Dup31(.25)
1775 };
1776 static 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
1791 static double QUAD_3D_P3_wts[] = {
1792  Dup31(1./40.),
1793  Dup31(9./40.)
1794 };
1795 static double QUAD_3D_P3_pts[Length(QUAD_3D_P3_wts) * 4] = {
1796  Perm31(0., 1.),
1797  Perm31(1./3., 0.)
1798 };
1799 #else
1800 static 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 };
1806 static 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
1824 static double QUAD_3D_P4_wts[] = {
1825  Dup4(-148./1875.), /* negative weight */
1826  Dup31(343./7500.),
1827  Dup22(56./375.)
1828 };
1829 static double QUAD_3D_P4_pts[Length(QUAD_3D_P4_wts) * 4] = {
1830  Perm4(0.25),
1831  Perm31(1./14.),
1832  Perm22(0.1005964238332008)
1833 };
1834 QUAD 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
1844 static double QUAD_3D_P4_wts[] = {
1845  Dup31(.07349304311636194934358694586367885),
1846  Dup31(.11268792571801585036501492847638892),
1847  Dup22(.04254602077708146686093208377328816)
1848 };
1849 static 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 */
1867 static 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 };
1875 static 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 };
1884 QUAD 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
1894 static double QUAD_3D_P5_wts[] = {
1895  Dup31(.11268792571801585079918565233328633),
1896  Dup31(.07349304311636194954371020548632750),
1897  Dup22(.04254602077708146643806942812025744)
1898 
1899 };
1900 static 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 
1916 static double QUAD_3D_P6_wts[] = {
1917  Dup31(.03992275025816749209969062755747998),
1918  Dup31(.01007721105532064294801323744593686),
1919  Dup31(.05535718154365472209515327785372602),
1920  Dup211(27./560.)
1921 };
1922 static 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 
1940 static double QUAD_3D_P7_wts[] = {
1941  Dup4(.09548528946413084886057843611722638),
1942  Dup31(.04232958120996702907628617079854674),
1943  Dup22(.03189692783285757993427482408294246),
1944  Dup211(.03720713072833462136961556119148112),
1945  Dup211(.00811077082990334156610343349109654)
1946 };
1947 static 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 
1966 static 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 };
1975 static 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 
1996 static 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 };
2007 static 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 
2028 static 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 };
2040 static double QUAD_3D_P10_pts[Length(QUAD_3D_P10_wts) * 4] = {
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 
2062 static 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 };
2077 static double QUAD_3D_P11_pts[Length(QUAD_3D_P11_wts) * 4] = {
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 */
2104 static 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 };
2121 static 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 };
2138 QUAD QUAD_3D_P12_ = {
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 */
2149 static 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 };
2166 static double QUAD_3D_P12_pts[Length(QUAD_3D_P12_wts) * 4] = {
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 
2194 static 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 };
2212 static double QUAD_3D_P13_pts[Length(QUAD_3D_P13_wts) * 4] = {
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 
2240 static 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 };
2260 static double QUAD_3D_P14_pts[Length(QUAD_3D_P14_wts) * 4] = {
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 };
QUAD_2D_P5_
QUAD QUAD_2D_P5_
Definition: quad.c:373
QUAD_1D_P5_
QUAD QUAD_1D_P5_
Definition: quad.c:81
QUAD_2D_P16_pts
static double QUAD_2D_P16_pts[Length(QUAD_2D_P16_wts) *3]
Definition: quad.c:792
Dup1111
#define Dup1111(w)
Definition: quad-permu.h:109
QUAD_2D_P13_wts
static double QUAD_2D_P13_wts[]
Definition: quad.c:658
QUAD_2D_P8_
QUAD QUAD_2D_P8_
Definition: quad.c:500
QUAD_3D_P11_wts
static double QUAD_3D_P11_wts[]
Definition: quad.c:2062
QUAD_1D_P19_pts
static double QUAD_1D_P19_pts[Length(QUAD_1D_P19_wts) *2]
Definition: quad.c:228
Dup211
#define Dup211(w)
Definition: quad-permu.h:101
Perm22
#define Perm22(a)
Definition: quad-permu.h:82
QUAD_2D_P26_wts
static double QUAD_2D_P26_wts[]
Definition: quad.c:1375
QUAD_2D_P12_pts
static double QUAD_2D_P12_pts[Length(QUAD_2D_P12_wts) *3]
Definition: quad.c:635
QUAD_
Definition: quad.h:25
Dup22
#define Dup22(w)
Definition: quad-permu.h:88
QUAD_1D_P19_
QUAD QUAD_1D_P19_
Definition: quad.c:235
QUAD_2D_P6_pts
static double QUAD_2D_P6_pts[Length(QUAD_2D_P6_wts) *3]
Definition: quad.c:430
QUAD_2D_P2_wts
static double QUAD_2D_P2_wts[]
Definition: quad.c:289
QUAD_2D_P5_wts
static double QUAD_2D_P5_wts[]
Definition: quad.c:358
QUAD_2D_P17_
QUAD QUAD_2D_P17_
Definition: quad.c:867
QUAD_2D_P10_wts
static double QUAD_2D_P10_wts[]
Definition: quad.c:563
QUAD_2D_P9_wts
static double QUAD_2D_P9_wts[]
Definition: quad.c:535
Perm111
#define Perm111(a, b)
Definition: quad-permu.h:58
QUAD_2D_P29_
QUAD QUAD_2D_P29_
Definition: quad.c:1745
QUAD_2D_P25_pts
static double QUAD_2D_P25_pts[Length(QUAD_2D_P25_wts) *3]
Definition: quad.c:1337
QUAD_2D_P11_
QUAD QUAD_2D_P11_
Definition: quad.c:615
QUAD_3D_P9_
QUAD QUAD_3D_P9_
Definition: quad.c:2018
QUAD_2D_P3_
QUAD QUAD_2D_P3_
Definition: quad.c:326
QUAD_2D_P17_pts
static double QUAD_2D_P17_pts[Length(QUAD_2D_P17_wts) *3]
Definition: quad.c:844
QUAD_2D_P24_wts
static double QUAD_2D_P24_wts[]
Definition: quad.c:1243
QUAD_2D_P18_
QUAD QUAD_2D_P18_
Definition: quad.c:924
QUAD_1D_P11_
QUAD QUAD_1D_P11_
Definition: quad.c:143
QUAD_2D_P27_pts
static double QUAD_2D_P27_pts[Length(QUAD_2D_P27_wts) *3]
Definition: quad.c:1493
QUAD_2D_P20_
QUAD QUAD_2D_P20_
Definition: quad.c:1047
QUAD_2D_P16_
QUAD QUAD_2D_P16_
Definition: quad.c:813
QUAD_2D_P4_
QUAD QUAD_2D_P4_
Definition: quad.c:348
QUAD_1D_P7_wts
static double QUAD_1D_P7_wts[]
Definition: quad.c:91
QUAD_2D_P1_
QUAD QUAD_2D_P1_
Definition: quad.c:279
QUAD_3D_P6_wts
static double QUAD_3D_P6_wts[]
Definition: quad.c:1916
Perm1111
#define Perm1111(a, b, c)
Definition: quad-permu.h:104
QUAD_3D_P9_pts
static double QUAD_3D_P9_pts[Length(QUAD_3D_P9_wts) *4]
Definition: quad.c:2007
QUAD_3D_P12_
QUAD QUAD_3D_P12_
Definition: quad.c:2183
QUAD_1D_P19_wts
static double QUAD_1D_P19_wts[]
Definition: quad.c:221
QUAD_2D_P22_wts
static double QUAD_2D_P22_wts[]
Definition: quad.c:1119
QUAD_1D_P9_
QUAD QUAD_1D_P9_
Definition: quad.c:123
QUAD_2D_P29_wts
static double QUAD_2D_P29_wts[]
Definition: quad.c:1652
QUAD_2D_P8_wts
static double QUAD_2D_P8_wts[]
Definition: quad.c:485
QUAD_2D_P9_pts
static double QUAD_2D_P9_pts[Length(QUAD_2D_P9_wts) *3]
Definition: quad.c:543
QUAD_2D_P19_wts
static double QUAD_2D_P19_wts[]
Definition: quad.c:938
QUAD_3D_P10_pts
static double QUAD_3D_P10_pts[Length(QUAD_3D_P10_wts) *4]
Definition: quad.c:2040
QUAD_2D_P20_pts
static double QUAD_2D_P20_pts[Length(QUAD_2D_P20_wts) *3]
Definition: quad.c:1017
QUAD_1D_P15_wts
static double QUAD_1D_P15_wts[]
Definition: quad.c:175
QUAD_2D_P22_
QUAD QUAD_2D_P22_
Definition: quad.c:1165
QUAD_2D_P12_
QUAD QUAD_2D_P12_
Definition: quad.c:648
QUAD_3D_P11_pts
static double QUAD_3D_P11_pts[Length(QUAD_3D_P11_wts) *4]
Definition: quad.c:2077
QUAD_2D_P6_wts
static double QUAD_2D_P6_wts[]
Definition: quad.c:425
Perm31
#define Perm31(a)
Definition: quad-permu.h:77
QUAD_1D_P3_pts
static double QUAD_1D_P3_pts[Length(QUAD_1D_P3_wts) *2]
Definition: quad.c:58
QUAD_3D_P1_
QUAD QUAD_3D_P1_
Definition: quad.c:1763
QUAD_2D_P9_
QUAD QUAD_2D_P9_
Definition: quad.c:552
QUAD_2D_P11_wts
static double QUAD_2D_P11_wts[]
Definition: quad.c:593
QUAD_3D_P5_wts
static double QUAD_3D_P5_wts[]
Definition: quad.c:1894
QUAD_3D_P14_pts
static double QUAD_3D_P14_pts[Length(QUAD_3D_P14_wts) *4]
Definition: quad.c:2260
QUAD_2D_P14_pts
static double QUAD_2D_P14_pts[Length(QUAD_2D_P14_wts) *3]
Definition: quad.c:706
QUAD_3D_P11_
QUAD QUAD_3D_P11_
Definition: quad.c:2092
QUAD_1D_P1_wts
static double QUAD_1D_P1_wts[]
Definition: quad.c:39
QUAD_2D_P1_pts
static double QUAD_2D_P1_pts[Length(QUAD_2D_P1_wts) *3]
Definition: quad.c:276
QUAD_1D_P13_
QUAD QUAD_1D_P13_
Definition: quad.c:165
QUAD_2D_P12_wts
static double QUAD_2D_P12_wts[]
Definition: quad.c:625
Perm21
#define Perm21(a)
Definition: quad-permu.h:54
QUAD_2D_P29_pts
static double QUAD_2D_P29_pts[Length(QUAD_2D_P29_wts) *3]
Definition: quad.c:1687
QUAD_2D_P13_pts
static double QUAD_2D_P13_pts[Length(QUAD_2D_P13_wts) *3]
Definition: quad.c:669
QUAD_2D_P28_
QUAD QUAD_2D_P28_
Definition: quad.c:1642
QUAD_3D_P8_
QUAD QUAD_3D_P8_
Definition: quad.c:1986
QUAD_2D_P27_wts
static double QUAD_2D_P27_wts[]
Definition: quad.c:1461
QUAD_1D_P21_wts
static double QUAD_1D_P21_wts[]
Definition: quad.c:245
QUAD_2D_P28_wts
static double QUAD_2D_P28_wts[]
Definition: quad.c:1554
QUAD_2D_P17_wts
static double QUAD_2D_P17_wts[]
Definition: quad.c:828
QUAD_1D_P17_
QUAD QUAD_1D_P17_
Definition: quad.c:211
QUAD_2D_P2_pts
static double QUAD_2D_P2_pts[Length(QUAD_2D_P2_wts) *3]
Definition: quad.c:292
QUAD_2D_P14_wts
static double QUAD_2D_P14_wts[]
Definition: quad.c:694
QUAD_2D_P13_
QUAD QUAD_2D_P13_
Definition: quad.c:684
QUAD_2D_P11_pts
static double QUAD_2D_P11_pts[Length(QUAD_2D_P11_wts) *3]
Definition: quad.c:603
QUAD_3D_P3_pts
static double QUAD_3D_P3_pts[Length(QUAD_3D_P3_wts) *4]
Definition: quad.c:1806
quad-permu.h
QUAD_3D_P10_wts
static double QUAD_3D_P10_wts[]
Definition: quad.c:2028
QUAD_3D_P13_wts
static double QUAD_3D_P13_wts[]
Definition: quad.c:2194
Perm11
#define Perm11(a)
Definition: quad-permu.h:41
QUAD_1D_P13_wts
static double QUAD_1D_P13_wts[]
Definition: quad.c:153
QUAD_1D_P17_wts
static double QUAD_1D_P17_wts[]
Definition: quad.c:197
QUAD_3D_P5_
QUAD QUAD_3D_P5_
Definition: quad.c:1905
QUAD_2D_P15_
QUAD QUAD_2D_P15_
Definition: quad.c:767
QUAD_2D_P26_pts
static double QUAD_2D_P26_pts[Length(QUAD_2D_P26_wts) *3]
Definition: quad.c:1404
QUAD_3D_P6_pts
static double QUAD_3D_P6_pts[Length(QUAD_3D_P6_wts) *4]
Definition: quad.c:1922
QUAD_1D_P1_pts
static double QUAD_1D_P1_pts[Length(QUAD_1D_P1_wts) *2]
Definition: quad.c:42
QUAD_1D_P7_
QUAD QUAD_1D_P7_
Definition: quad.c:101
QUAD_3D_P7_
QUAD QUAD_3D_P7_
Definition: quad.c:1956
Perm30
#define Perm30(a, b)
Definition: quad-permu.h:72
QUAD_2D_P23_pts
static double QUAD_2D_P23_pts[Length(QUAD_2D_P23_wts) *3]
Definition: quad.c:1204
QUAD_1D_P9_wts
static double QUAD_1D_P9_wts[]
Definition: quad.c:111
QUAD_3D_P13_
QUAD QUAD_3D_P13_
Definition: quad.c:2230
QUAD_1D_P3_wts
static double QUAD_1D_P3_wts[]
Definition: quad.c:55
QUAD_2D_P3_wts
static double QUAD_2D_P3_wts[]
Definition: quad.c:317
QUAD_2D_P15_wts
static double QUAD_2D_P15_wts[]
Definition: quad.c:735
QUAD_3D_P8_pts
static double QUAD_3D_P8_pts[Length(QUAD_3D_P8_wts) *4]
Definition: quad.c:1975
QUAD_3D_P3_
QUAD QUAD_3D_P3_
Definition: quad.c:1813
QUAD_3D_P13_pts
static double QUAD_3D_P13_pts[Length(QUAD_3D_P13_wts) *4]
Definition: quad.c:2212
Perm211
#define Perm211(a, b)
Definition: quad-permu.h:89
QUAD_2D_P19_
QUAD QUAD_2D_P19_
Definition: quad.c:984
QUAD_1D_P13_pts
static double QUAD_1D_P13_pts[Length(QUAD_1D_P13_wts) *2]
Definition: quad.c:159
Dup21
#define Dup21(w)
Definition: quad-permu.h:57
Length
#define Length(wts)
Definition: quad.c:35
QUAD_3D_P6_
QUAD QUAD_3D_P6_
Definition: quad.c:1930
QUAD_3D_P5_pts
static double QUAD_3D_P5_pts[Length(QUAD_3D_P5_wts) *4]
Definition: quad.c:1900
QUAD_2D_P21_
QUAD QUAD_2D_P21_
Definition: quad.c:1104
QUAD_2D_P5_pts
static double QUAD_2D_P5_pts[Length(QUAD_2D_P5_wts) *3]
Definition: quad.c:365
QUAD_1D_P15_
QUAD QUAD_1D_P15_
Definition: quad.c:187
QUAD_2D_P23_wts
static double QUAD_2D_P23_wts[]
Definition: quad.c:1180
QUAD_3D_P2_wts
static double QUAD_3D_P2_wts[]
Definition: quad.c:1773
Dup0
#define Dup0
Definition: quad-permu.h:34
QUAD_1D_P17_pts
static double QUAD_1D_P17_pts[Length(QUAD_1D_P17_wts) *2]
Definition: quad.c:204
QUAD_1D_P9_pts
static double QUAD_1D_P9_pts[Length(QUAD_1D_P9_wts) *2]
Definition: quad.c:117
QUAD_3D_P12_pts
static double QUAD_3D_P12_pts[Length(QUAD_3D_P12_wts) *4]
Definition: quad.c:2166
QUAD_1D_P1_
QUAD QUAD_1D_P1_
Definition: quad.c:45
QUAD_2D_P15_pts
static double QUAD_2D_P15_pts[Length(QUAD_2D_P15_wts) *3]
Definition: quad.c:748
QUAD_2D_P28_pts
static double QUAD_2D_P28_pts[Length(QUAD_2D_P28_wts) *3]
Definition: quad.c:1588
QUAD_1D_P21_pts
static double QUAD_1D_P21_pts[Length(QUAD_1D_P21_wts) *2]
Definition: quad.c:253
QUAD_2D_P7_pts
static double QUAD_2D_P7_pts[Length(QUAD_2D_P7_wts) *3]
Definition: quad.c:467
Dup2
#define Dup2(w)
Definition: quad-permu.h:40
QUAD_2D_P20_wts
static double QUAD_2D_P20_wts[]
Definition: quad.c:997
QUAD_2D_P6_
QUAD QUAD_2D_P6_
Definition: quad.c:436
QUAD_2D_P4_pts
static double QUAD_2D_P4_pts[Length(QUAD_2D_P4_wts) *3]
Definition: quad.c:342
QUAD_3D_P12_wts
static double QUAD_3D_P12_wts[]
Definition: quad.c:2149
Dup3
#define Dup3(w)
Definition: quad-permu.h:53
QUAD_1D_P11_wts
static double QUAD_1D_P11_wts[]
Definition: quad.c:133
QUAD_2D_P2_
QUAD QUAD_2D_P2_
Definition: quad.c:295
QUAD_3D_P14_wts
static double QUAD_3D_P14_wts[]
Definition: quad.c:2240
QUAD_2D_P8_pts
static double QUAD_2D_P8_pts[Length(QUAD_2D_P8_wts) *3]
Definition: quad.c:492
QUAD_2D_P18_pts
static double QUAD_2D_P18_pts[Length(QUAD_2D_P18_wts) *3]
Definition: quad.c:899
QUAD_3D_P7_pts
static double QUAD_3D_P7_pts[Length(QUAD_3D_P7_wts) *4]
Definition: quad.c:1947
QUAD_1D_P15_pts
static double QUAD_1D_P15_pts[Length(QUAD_1D_P15_wts) *2]
Definition: quad.c:181
QUAD_1D_P5_pts
static double QUAD_1D_P5_pts[Length(QUAD_1D_P5_wts) *2]
Definition: quad.c:76
QUAD_3D_P10_
QUAD QUAD_3D_P10_
Definition: quad.c:2052
QUAD_3D_P14_
QUAD QUAD_3D_P14_
Definition: quad.c:2280
QUAD_2D_P25_
QUAD QUAD_2D_P25_
Definition: quad.c:1365
QUAD_2D_P7_
QUAD QUAD_2D_P7_
Definition: quad.c:475
Dup11
#define Dup11(w)
Definition: quad-permu.h:42
QUAD_3D_P3_wts
static double QUAD_3D_P3_wts[]
Definition: quad.c:1800
QUAD_2D_P23_
QUAD QUAD_2D_P23_
Definition: quad.c:1228
Perm4
#define Perm4(a)
Definition: quad-permu.h:75
QUAD_2D_P18_wts
static double QUAD_2D_P18_wts[]
Definition: quad.c:882
QUAD_1D_P5_wts
static double QUAD_1D_P5_wts[]
Definition: quad.c:72
QUAD_2D_P14_
QUAD QUAD_2D_P14_
Definition: quad.c:722
QUAD_2D_P3_pts
static double QUAD_2D_P3_pts[Length(QUAD_2D_P3_wts) *3]
Definition: quad.c:321
QUAD_2D_P22_pts
static double QUAD_2D_P22_pts[Length(QUAD_2D_P22_wts) *3]
Definition: quad.c:1142
QUAD_2D_P27_
QUAD QUAD_2D_P27_
Definition: quad.c:1544
QUAD_1D_P21_
QUAD QUAD_1D_P21_
Definition: quad.c:261
QUAD_2D_P19_pts
static double QUAD_2D_P19_pts[Length(QUAD_2D_P19_wts) *3]
Definition: quad.c:957
QUAD_2D_P10_pts
static double QUAD_2D_P10_pts[Length(QUAD_2D_P10_wts) *3]
Definition: quad.c:572
QUAD_2D_P25_wts
static double QUAD_2D_P25_wts[]
Definition: quad.c:1309
QUAD_3D_P4_wts
static double QUAD_3D_P4_wts[]
Definition: quad.c:1844
QUAD_3D_P2_
QUAD QUAD_3D_P2_
Definition: quad.c:1780
QUAD_1D_P11_pts
static double QUAD_1D_P11_pts[Length(QUAD_1D_P11_wts) *2]
Definition: quad.c:138
QUAD_2D_P10_
QUAD QUAD_2D_P10_
Definition: quad.c:583
QUAD_1D_P7_pts
static double QUAD_1D_P7_pts[Length(QUAD_1D_P7_wts) *2]
Definition: quad.c:96
QUAD_2D_P7_wts
static double QUAD_2D_P7_wts[]
Definition: quad.c:461
QUAD_2D_P24_
QUAD QUAD_2D_P24_
Definition: quad.c:1295
QUAD_3D_P2_pts
static double QUAD_3D_P2_pts[Length(QUAD_3D_P2_wts) *4]
Definition: quad.c:1776
QUAD_2D_P21_pts
static double QUAD_2D_P21_pts[Length(QUAD_2D_P21_wts) *3]
Definition: quad.c:1083
QUAD_3D_P4_
QUAD QUAD_3D_P4_
Definition: quad.c:1854
QUAD_3D_P4_pts
static double QUAD_3D_P4_pts[Length(QUAD_3D_P4_wts) *4]
Definition: quad.c:1849
QUAD_2D_P21_wts
static double QUAD_2D_P21_wts[]
Definition: quad.c:1062
Perm2
#define Perm2(a)
Definition: quad-permu.h:39
QUAD_2D_P1_wts
static double QUAD_2D_P1_wts[]
Definition: quad.c:273
QUAD_2D_P24_pts
static double QUAD_2D_P24_pts[Length(QUAD_2D_P24_wts) *3]
Definition: quad.c:1269
Dup4
#define Dup4(w)
Definition: quad-permu.h:76
QUAD_3D_P8_wts
static double QUAD_3D_P8_wts[]
Definition: quad.c:1966
Perm3
#define Perm3(a)
Definition: quad-permu.h:52
Dup31
#define Dup31(w)
Definition: quad-permu.h:81
QUAD_3D_P1_wts
static double QUAD_3D_P1_wts[]
Definition: quad.c:1757
QUAD_2D_P26_
QUAD QUAD_2D_P26_
Definition: quad.c:1451
QUAD_3D_P7_wts
static double QUAD_3D_P7_wts[]
Definition: quad.c:1940
Dup111
#define Dup111(w)
Definition: quad-permu.h:64
QUAD_2D_P16_wts
static double QUAD_2D_P16_wts[]
Definition: quad.c:777
QUAD_2D_P4_wts
static double QUAD_2D_P4_wts[]
Definition: quad.c:336
QUAD_3D_P9_wts
static double QUAD_3D_P9_wts[]
Definition: quad.c:1996
QUAD_1D_P3_
QUAD QUAD_1D_P3_
Definition: quad.c:62
QUAD_3D_P1_pts
static double QUAD_3D_P1_pts[Length(QUAD_3D_P1_wts) *4]
Definition: quad.c:1760
quad.h