Flow123d  3.9.0-9663d1cde
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.183 2011/06/08 06:31:34 zlb Exp $ */
22 
23 /* Numerical Quadrature */
24 
25 
26 #include "quad.h"
27 
28 #ifdef Length
29 # undef Length
30 #endif
31 #define Length(wts) (sizeof(wts) / (sizeof(wts[0])))
32 
33 
34 /*--------------------------- 1D quadrature rules ------------------------*/
35 
36 static FLOAT QUAD_1D_P1_wts[] = {
37  Dup2(1.)
38 };
40  Perm2(.5)
41 };
43  "1D P1", /* name */
44  1, /* dim */
45  1, /* order */
46  Length(QUAD_1D_P1_wts), /* npoints */
47  QUAD_1D_P1_pts, /* points */
48  QUAD_1D_P1_wts, /* weights */
49  -1 /* id */
50 };
51 
52 static FLOAT QUAD_1D_P3_wts[] = {
53  Dup11(.5)
54 };
56  /* (3 - sqrt(3)) / 6, (3 + sqrt(3)) / 6 */
57  Perm11(.21132486540518711774542560974902127)
58 };
60  "1D P3", /* name */
61  1, /* dim */
62  3, /* order */
63  Length(QUAD_1D_P3_wts), /* npoints */
64  QUAD_1D_P3_pts, /* points */
65  QUAD_1D_P3_wts, /* weights */
66  -1 /* id */
67 };
68 
69 static FLOAT QUAD_1D_P5_wts[] = {
70  Dup11(5./18.),
71  Dup2(4./9.)
72 };
74  /* (5 - sqrt(15)) / 10, 1 / 2, (5 + sqrt(15)) / 10 */
75  Perm11(.11270166537925831148207346002176004),
76  Perm2(.5)
77 };
79  "1D P5", /* name */
80  1, /* dim */
81  5, /* order */
82  Length(QUAD_1D_P5_wts), /* npoints */
83  QUAD_1D_P5_pts, /* points */
84  QUAD_1D_P5_wts, /* weights */
85  -1 /* id */
86 };
87 
88 static FLOAT QUAD_1D_P7_wts[] = {
89  /* (18 - sqrt(30)) / 72, (18 + sqrt(30)) / 72 */
90  Dup11(.17392742256872692868653197461099970),
91  Dup11(.32607257743127307131346802538900030)
92 };
94  /* (35 \pm sqrt(525 \pm 70 * sqrt(30))) / 70 */
95  Perm11(.06943184420297371238802675555359525),
96  Perm11(.33000947820757186759866712044837766)
97 };
99  "1D P7", /* name */
100  1, /* dim */
101  7, /* order */
102  Length(QUAD_1D_P7_wts), /* npoints */
103  QUAD_1D_P7_pts, /* points */
104  QUAD_1D_P7_wts, /* weights */
105  -1 /* id */
106 };
107 
108 static FLOAT QUAD_1D_P9_wts[] = {
109  /* (322 \pm 13 * sqrt(70)) / 1800 */
110  Dup2(128./450.),
111  Dup11(.11846344252809454375713202035995868),
112  Dup11(.23931433524968323402064575741781910)
113 };
115  /* (21 \pm sqrt(245 \pm 14 * sqrt(70))) / 42 */
116  Perm2(0.5),
117  Perm11(.04691007703066800360118656085030352),
118  Perm11(.23076534494715845448184278964989560)
119 };
121  "1D P9", /* name */
122  1, /* dim */
123  9, /* order */
124  Length(QUAD_1D_P9_wts), /* npoints */
125  QUAD_1D_P9_pts, /* points */
126  QUAD_1D_P9_wts, /* weights */
127  -1 /* id */
128 };
129 
130 static FLOAT QUAD_1D_P11_wts[] = {
131  Dup11(.08566224618958517252014807108636645),
132  Dup11(.18038078652406930378491675691885806),
133  Dup11(.23395696728634552369493517199477550)
134 };
136  Perm11(.96623475710157601390615077724699730),
137  Perm11(.83060469323313225683069979750995267),
138  Perm11(.61930959304159845431525086084035597)
139 };
141  "1D P11", /* name */
142  1, /* dim */
143  11, /* order */
144  Length(QUAD_1D_P11_wts), /* npoints */
145  QUAD_1D_P11_pts, /* points */
146  QUAD_1D_P11_wts, /* weights */
147  -1 /* id */
148 };
149 
150 static FLOAT QUAD_1D_P13_wts[] = {
151  Dup11(.06474248308443484663530571633954101),
152  Dup11(.13985269574463833395073388571188979),
153  Dup11(.19091502525255947247518488774448757),
154  Dup2(.20897959183673469387755102040816327)
155 };
157  Perm11(.97455395617137926226309484202392563),
158  Perm11(.87076559279969721993193238664039420),
159  Perm11(.70292257568869858345330320603848073),
160  Perm2(.5)
161 };
163  "1D P13", /* name */
164  1, /* dim */
165  13, /* order */
166  Length(QUAD_1D_P13_wts), /* npoints */
167  QUAD_1D_P13_pts, /* points */
168  QUAD_1D_P13_wts, /* weights */
169  -1 /* id */
170 };
171 
172 static FLOAT QUAD_1D_P15_wts[] = {
173  Dup11(.05061426814518812957626567715498110),
174  Dup11(.11119051722668723527217799721312044),
175  Dup11(.15685332293894364366898110099330066),
176  Dup11(.18134189168918099148257522463859781)
177 };
179  Perm11(.98014492824876811584178043428473650),
180  Perm11(.89833323870681336979577696823791522),
181  Perm11(.76276620495816449290886952459462317),
182  Perm11(.59171732124782490246973807118009199)
183 };
185  "1D P15", /* name */
186  1, /* dim */
187  15, /* order */
188  Length(QUAD_1D_P15_wts), /* npoints */
189  QUAD_1D_P15_pts, /* points */
190  QUAD_1D_P15_wts, /* weights */
191  -1 /* id */
192 };
193 
194 static FLOAT QUAD_1D_P17_wts[] = {
195  Dup11(.04063719418078720598594607905526183),
196  Dup11(.09032408034742870202923601562145640),
197  Dup11(.13030534820146773115937143470931642),
198  Dup11(.15617353852000142003431520329222183),
199  Dup2(.16511967750062988158226253464348702)
200 };
202  Perm11(.98408011975381304491778810145183644),
203  Perm11(.91801555366331789714971489403486744),
204  Perm11(.80668571635029519865435101967073709),
205  Perm11(.66212671170190446451926900732166830),
206  Perm2(.5)
207 };
209  "1D P17", /* name */
210  1, /* dim */
211  17, /* order */
212  Length(QUAD_1D_P17_wts), /* npoints */
213  QUAD_1D_P17_pts, /* points */
214  QUAD_1D_P17_wts, /* weights */
215  -1 /* id */
216 };
217 
218 static FLOAT QUAD_1D_P19_wts[] = {
219  Dup11(.03333567215434406879678440494666590),
220  Dup11(.07472567457529029657288816982884867),
221  Dup11(.10954318125799102199776746711408160),
222  Dup11(.13463335965499817754561346078473468),
223  Dup11(.14776211235737643508694649732566916)
224 };
226  Perm11(.98695326425858586003898200604222603),
227  Perm11(.93253168334449225536604834421174652),
228  Perm11(.83970478414951220311716368255743679),
229  Perm11(.71669769706462359539963297158289208),
230  Perm11(.57443716949081560544241300056485999)
231 };
233  "1D P19", /* name */
234  1, /* dim */
235  19, /* order */
236  Length(QUAD_1D_P19_wts), /* npoints */
237  QUAD_1D_P19_pts, /* points */
238  QUAD_1D_P19_wts, /* weights */
239  -1 /* id */
240 };
241 
242 static FLOAT QUAD_1D_P21_wts[] = {
243  Dup11(.02783428355808683324137686022127429),
244  Dup11(.06279018473245231231734714961197005),
245  Dup11(.09314510546386712571304882071582795),
246  Dup11(.11659688229599523995926185242158757),
247  Dup11(.13140227225512333109034443494525460),
248  Dup2(.13646254338895031535724176416817109)
249 };
251  Perm11(.98911432907302849640196900056142870),
252  Perm11(.94353129988404764953757888465196363),
253  Perm11(.86507600278702466204670812601557673),
254  Perm11(.75954806460340590796286283472930478),
255  Perm11(.63477157797617248616576599270043076),
256  Perm2(.5)
257 };
259  "1D P21", /* name */
260  1, /* dim */
261  21, /* order */
262  Length(QUAD_1D_P21_wts), /* npoints */
263  QUAD_1D_P21_pts, /* points */
264  QUAD_1D_P21_wts, /* weights */
265  -1 /* id */
266 };
267 
268 /*--------------------------- 2D cubature rules ------------------------*/
269 
270 static FLOAT QUAD_2D_P1_wts[] = {
271  Dup3(1.)
272 };
274  Perm3(1./3.)
275 };
277  "2D P1", /* name */
278  2, /* dim */
279  1, /* order */
280  Length(QUAD_2D_P1_wts), /* npoints */
281  QUAD_2D_P1_pts, /* points */
282  QUAD_2D_P1_wts, /* weights */
283  -1 /* id */
284 };
285 
286 static FLOAT QUAD_2D_P2_wts[] = {
287  Dup21(1./3.)
288 };
290  Perm21(1./6.)
291 };
293  "2D P2", /* name */
294  2, /* dim */
295  2, /* order */
296  Length(QUAD_2D_P2_wts), /* npoints = 3 */
297  QUAD_2D_P2_pts, /* points */
298  QUAD_2D_P2_wts, /* weights */
299  -1 /* id */
300 };
301 
302 #if 0
303 /* Note: this rule has points on the edges */
304 static FLOAT QUAD_2D_P3_wts[] = {
305  Dup21(1./30.),
306  Dup21(3./10.)
307 };
308 static FLOAT QUAD_2D_P3_pts[Length(QUAD_2D_P3_wts) * 3] = {
309  Perm21(.5),
310  /* 1/6 */
311  Perm21(1./6.)
312 };
313 #else
314 static FLOAT QUAD_2D_P3_wts[] = {
315  Dup21(.28114980244097964825351432270207695),
316  Dup21(.05218353089235368507981901063125638)
317 };
319  Perm21(.16288285039589191090016180418490635),
320  Perm21(.47791988356756370000000000000000000)
321 };
322 #endif
324  "2D P3", /* name */
325  2, /* dim */
326  3, /* order */
327  Length(QUAD_2D_P3_wts), /* npoints = 6 */
328  QUAD_2D_P3_pts, /* points */
329  QUAD_2D_P3_wts, /* weights */
330  -1 /* id */
331 };
332 
333 static FLOAT QUAD_2D_P4_wts[] = {
334  /* (620 + sqrt(213125 - 53320 * sqrt(10))) / 3720 */
335  Dup21(.22338158967801146569500700843312280),
336  /* (620 - sqrt(213125 - 53320 * sqrt(10))) / 3720 */
337  Dup21(.10995174365532186763832632490021053)
338 };
340  /* (8 - sqrt(10) + sqrt(38 - 44 * sqrt(2 / 5))) / 18 */
341  Perm21(.44594849091596488631832925388305199),
342  /* (8 - sqrt(10) - sqrt(38 - 44 * sqrt(2 / 5))) / 18 */
343  Perm21(.09157621350977074345957146340220151)
344 };
346  "2D P4", /* name */
347  2, /* dim */
348  4, /* order */
349  Length(QUAD_2D_P4_wts), /* npoints = 6 */
350  QUAD_2D_P4_pts, /* points */
351  QUAD_2D_P4_wts, /* weights */
352  -1 /* id */
353 };
354 
355 static FLOAT QUAD_2D_P5_wts[] = {
356  /* (155 - sqrt(15)) / 1200 */
357  Dup21(.12593918054482715259568394550018133),
358  /* (155 + sqrt(15)) / 1200 */
359  Dup21(.13239415278850618073764938783315200),
360  Dup3(9./40.)
361 };
363  /* (6 - sqrt(15)) / 21 */
364  Perm21(.10128650732345633880098736191512383),
365  /* (6 + sqrt(15)) / 21 */
366  Perm21(.47014206410511508977044120951344760),
367  /* 1 / 3 */
368  Perm3(1./3.)
369 };
371  "2D P5", /* name */
372  2, /* dim */
373  5, /* order */
374  Length(QUAD_2D_P5_wts), /* npoints = 7 */
375  QUAD_2D_P5_pts, /* points */
376  QUAD_2D_P5_wts, /* weights */
377  -1 /* id */
378 };
379 
380 /* Note: an 11-point rule has been found in:
381  * Day, David M., Mark A. Taylor, "A new 11 point degree 6 cubature
382  * formula for the triangle [Proceedings of the ICIAM 2007],"
383  * Journal Article, Proceedings of Applied Mathematics and Mechanics,
384  * Accepted/Published January 2008. */
385 static FLOAT QUAD_2D_P6_wts[] = {
386  Dup21(.05084490637020681692093680910686898),
387  Dup21(.11678627572637936602528961138557944),
388  Dup111(.08285107561837357519355345642044245)
389 };
391  Perm21(.06308901449150222834033160287081916),
392  Perm21(.24928674517091042129163855310701908),
393  Perm111(.05314504984481694735324967163139815,
394  .31035245103378440541660773395655215)
395 };
397  "2D P6", /* name */
398  2, /* dim */
399  6, /* order */
400  Length(QUAD_2D_P6_wts), /* npoints = 12 */
401  QUAD_2D_P6_pts, /* points */
402  QUAD_2D_P6_wts, /* weights */
403  -1 /* id */
404 };
405 
406 #if 0
407 static FLOAT QUAD_2D_P7_wts[] = {
408  Dup21(0.0102558174092),
409  Dup111(0.1116047046647),
410  Dup21(0.1679775595335),
411  Dup21(0.2652238803946)
412 };
413 static FLOAT QUAD_2D_P7_pts[Length(QUAD_2D_P7_wts) * 3] = {
414  Perm21(0.),
415  Perm111(0.7839656651012, 0.1738960507345),
416  Perm21(0.4743880861752),
417  Perm21(0.2385615300181)
418 };
419 #else
420 static FLOAT QUAD_2D_P7_wts[] = {
421  Dup21(.01353386251566556156682309245259393),
422  Dup21(.07895125443201098137652145029770332),
423  Dup21(.12860792781890607455665553308952344),
424  Dup111(.05612014428337535791666662874675632)
425 };
427  Perm21(.02826392415607634022359600691324002),
428  Perm21(.47431132326722257527522522793181654),
429  Perm21(.24114332584984881025414351267036207),
430  Perm111(.76122274802452380000000000000000000,
431  .04627087779880891064092559391702049)
432 };
433 #endif
435  "2D P7", /* name */
436  2, /* dim */
437  7, /* order */
438  Length(QUAD_2D_P7_wts), /* npoints = 15 */
439  QUAD_2D_P7_pts, /* points */
440  QUAD_2D_P7_wts, /* weights */
441  -1 /* id */
442 };
443 
444 static FLOAT QUAD_2D_P8_wts[] = {
445  Dup3(.14431560767778716825109111048906462),
446  Dup21(.10321737053471825028179155029212903),
447  Dup21(.03245849762319808031092592834178060),
448  Dup21(.09509163426728462479389610438858432),
449  Dup111(.02723031417443499426484469007390892)
450 };
452  Perm3(.33333333333333333333333333333333333),
453  Perm21(.17056930775176020662229350149146450),
454  Perm21(.05054722831703097545842355059659895),
455  Perm21(.45929258829272315602881551449416932),
456  Perm111(.26311282963463811342178578628464359,
457  .00839477740995760533721383453929445)
458 };
460  "2D P8", /* name */
461  2, /* dim */
462  8, /* order */
463  Length(QUAD_2D_P8_wts), /* npoints = 16 */
464  QUAD_2D_P8_pts, /* points */
465  QUAD_2D_P8_wts, /* weights */
466  -1 /* id */
467 };
468 
469 #if 0
470 static FLOAT QUAD_2D_P9_wts[] = {
471  Dup21(0.0519871420646),
472  Dup111(0.0707034101784),
473  Dup111(0.0909390760952),
474  Dup21(0.1032344051380),
475  Dup21(0.1881601469167)
476 };
477 static FLOAT QUAD_2D_P9_pts[Length(QUAD_2D_P9_wts) * 3] = {
478  Perm21(0.0451890097844),
479  Perm111(0.7475124727339, 0.2220631655373),
480  Perm111(0.1369912012649, 0.2182900709714),
481  Perm21(0.4815198347833),
482  Perm21(0.4036039798179)
483 };
484 QUAD QUAD_2D_P9_ = {
485  "2D P9", /* name */
486  2, /* dim */
487  9, /* order */
488  21, /* npoints */
489  QUAD_2D_P9_pts, /* points */
490  QUAD_2D_P9_wts, /* weights */
491  -1 /* id */
492 };
493 #else
494 static FLOAT QUAD_2D_P9_wts[] = {
495  Dup3(.09713579628279883381924198250728863),
496  Dup21(.03133470022713907053685483128720932),
497  Dup21(.02557767565869803126167879855899982),
498  Dup21(.07782754100477427931673935629940396),
499  Dup21(.07964773892721025303289177426404527),
500  Dup111(.04328353937728937728937728937728938)
501 };
503  Perm3(.33333333333333333333333333333333333),
504  Perm21(.48968251919873762778370692483619280),
505  Perm21(.04472951339445270986510658996627636),
506  Perm21(.43708959149293663726993036443535497),
507  Perm21(.18820353561903273024096128046733557),
508  Perm111(.74119859878449802069007987352342383,
509  .22196298916076569567510252769319107)
510 };
512  "2D P9", /* name */
513  2, /* dim */
514  9, /* order */
515  Length(QUAD_2D_P9_wts), /* npoints = 19 */
516  QUAD_2D_P9_pts, /* points */
517  QUAD_2D_P9_wts, /* weights */
518  -1 /* id */
519 };
520 #endif
521 
522 static FLOAT QUAD_2D_P10_wts[] = {
523  Dup3(.08093742879762288025711312381650193),
524  Dup21(.07729858800296312168250698238034344),
525  Dup21(.07845763861237173136809392083439673),
526  Dup21(.01746916799592948691760716329067815),
527  Dup21(.00429237418483282803048040209013191),
528  Dup111(.03746885821046764297902076548504452),
529  Dup111(.02694935259187995964544947958109671)
530 };
532  Perm3(.33333333333333333333333333333333333),
533  Perm21(.42727317884677553809044271751544715),
534  Perm21(.18309922244867502052157438485022004),
535  Perm21(.49043401970113058745397122237684843),
536  Perm21(.01257244555158053273132908502104126),
537  Perm111(.65426866792006614066657009558762790,
538  .30804600168524770000000000000000000),
539  Perm111(.12280457706855927343012981748128116,
540  .03337183373930478624081644177478038)
541 };
543  "2D P10", /* name */
544  2, /* dim */
545  10, /* order */
546  Length(QUAD_2D_P10_wts), /* npoints = 25 */
547  QUAD_2D_P10_pts, /* points */
548  QUAD_2D_P10_wts, /* weights */
549  -1 /* id */
550 };
551 
552 static FLOAT QUAD_2D_P11_wts[] = {
553  Dup3(.08117796029686715951547596874982357),
554  Dup21(.01232404350690949411847390101623284),
555  Dup21(.06282800974441010728333942816029398),
556  Dup21(.01222037904936452975521221500393789),
557  Dup21(.06770134895281150992098886182322559),
558  Dup21(.04021969362885169042356688960756866),
559  Dup111(.01476227271771610133629306558778206),
560  Dup111(.04072799645829903966033695848161786)
561 };
563  Perm3(.33333333333333333333333333333333333),
564  Perm21(.03093835524543078489519501499130475),
565  Perm21(.43649818113412884191761527655997324),
566  Perm21(.49898476370259326628798698383139087),
567  Perm21(.21468819795859433660687581387825086),
568  Perm21(.11368310404211339020529315622836178),
569  Perm111(.82561876616486290435880620030835800,
570  .15974230459185018980086078822500751),
571  Perm111(.64047231013486526767703659081896681,
572  .31178371570959900000000000000000000)
573 };
575  "2D P11", /* name */
576  2, /* dim */
577  11, /* order */
578  Length(QUAD_2D_P11_wts), /* npoints = 28 */
579  QUAD_2D_P11_pts, /* points */
580  QUAD_2D_P11_wts, /* weights */
581  -1 /* id */
582 };
583 
584 static FLOAT QUAD_2D_P12_wts[] = {
585  Dup21(.00616626105155901723386648378523035),
586  Dup21(.06285822421788510035427051309288255),
587  Dup21(.03479611293070894298932839729499937),
588  Dup21(.04369254453803840213545726255747497),
589  Dup21(.02573106644045533541779092307156443),
590  Dup111(.02235677320230344571183907670231999),
591  Dup111(.01731623110865889237164210081103407),
592  Dup111(.04037155776638092951782869925223677)
593 };
595  Perm21(.02131735045321037024685697551572825),
596  Perm21(.27121038501211592234595134039689474),
597  Perm21(.12757614554158592467389632515428357),
598  Perm21(.43972439229446027297973662348436108),
599  Perm21(.48821738977380488256466206525881104),
600  Perm111(.69583608678780342214163552323607254,
601  .28132558098993954824813069297455275),
602  Perm111(.85801403354407263059053661662617818,
603  .11625191590759714124135414784260182),
604  Perm111(.60894323577978780685619243776371007,
605  .27571326968551419397479634607976398)
606 };
608  "2D P12", /* name */
609  2, /* dim */
610  12, /* order */
611  Length(QUAD_2D_P12_wts), /* npoints = 33 */
612  QUAD_2D_P12_pts, /* points */
613  QUAD_2D_P12_wts, /* weights */
614  -1 /* id */
615 };
616 
617 static FLOAT QUAD_2D_P13_wts[] = {
618  Dup3(.06796003658683164428177442468088488),
619  Dup21(.05560196753045332870725746601046147),
620  Dup21(.05827848511919998140476708351333981),
621  Dup21(.00605233710353917184179280003229082),
622  Dup21(.02399440192889473077371079945095965),
623  Dup111(.03464127614084837046598682851091822),
624  Dup111(.01496540110516566726324585713290344),
625  Dup111(.02417903981159381913744574557306076),
626  Dup111(.00959068100354326272259509016611089)
627 };
629  Perm3(.33333333333333333333333333333333333),
630  Perm21(.42694141425980040602081253503137421),
631  Perm21(.22137228629183290065481255470507908),
632  Perm21(.02150968110884318386929131353405208),
633  Perm21(.48907694645253934990068971909020439),
634  Perm111(.62354599555367557081585435318623659,
635  .30844176089211777465847185254124531),
636  Perm111(.86470777029544277530254595089569318,
637  .11092204280346339541286954522167452),
638  Perm111(.74850711589995219517301859578870965,
639  .16359740106785048023388790171095725),
640  Perm111(.72235779312418796526062013230478405,
641  .27251581777342966618005046435408685)
642 };
644  "2D P13", /* name */
645  2, /* dim */
646  13, /* order */
647  Length(QUAD_2D_P13_wts), /* npoints = 37 */
648  QUAD_2D_P13_pts, /* points */
649  QUAD_2D_P13_wts, /* weights */
650  -1 /* id */
651 };
652 
653 static FLOAT QUAD_2D_P14_wts[] = {
654  Dup3(.05859628522602859412789380634775601),
655  Dup21(.00173515122972526756806186388080941),
656  Dup21(.02616378255861452177782885918197827),
657  Dup21(.00391972924240182909652082757014540),
658  Dup21(.01224735975694086609728698992625048),
659  Dup21(.02819962850325796010736630715156571),
660  Dup21(.05088708718595948529603482754545404),
661  Dup21(.05045343990160359919102089713411889),
662  Dup111(.01706364421223345129002539938494722),
663  Dup111(.00968346642550660040752096309341938),
664  Dup111(.03638575592848500562201132776427165),
665  Dup111(.00696466337351841242539972250424131)
666 };
668  Perm3(.33333333333333333333333333333333333),
669  Perm21(.00997976080645843241529352958205243),
670  Perm21(.47997789352118838981055286508838991),
671  Perm21(.15381195917696690000000000000000000),
672  Perm21(.07402347711698781000000000000000000),
673  Perm21(.13035468250333000000000000000000000),
674  Perm21(.23061722602665313429960537009838312),
675  Perm21(.42233208341914782411440871379139388),
676  Perm111(.78623738593466100332962211403309001,
677  .19061636003190090424614328286530343),
678  Perm111(.63055214366060744162240907556881292,
679  .36232313774354714461832673435977294),
680  Perm111(.62657732985630631423351231375342650,
681  .29077120588366741502481681748167319),
682  Perm111(.91420998492962541223996709938504695,
683  .07116571087775076254759245029243364)
684 };
686  "2D P14", /* name */
687  2, /* dim */
688  14, /* order */
689  Length(QUAD_2D_P14_wts), /* npoints = 46 */
690  QUAD_2D_P14_pts, /* points */
691  QUAD_2D_P14_wts, /* weights */
692  -1 /* id */
693 };
694 
695 static FLOAT QUAD_2D_P15_wts[] = {
696  Dup3(.04403871087843427985301732721493388),
697  Dup21(.04618478718202697994871566760191669),
698  Dup21(.00649890661733271652688280349281019),
699  Dup21(.01799361425265840324466992416715655),
700  Dup21(.04177310503914135411968606056414597),
701  Dup21(.00305954760911646654843016992834484),
702  Dup21(.00201243505255864734409031875654046),
703  Dup21(.01677561093050912232611145688795876),
704  Dup111(.01546074918971427486608803040924742),
705  Dup111(.02849989033954742339273955875330195),
706  Dup111(.03209435048348959564209923573709566),
707  Dup111(.01150858163687071128402324377324186),
708  Dup111(.00461430652896710314358717609185406)
709 };
711  Perm3(.33333333333333333333333333333333333),
712  Perm21(.22733221881914287420250436849229406),
713  Perm21(.49716257743188742987380980001602329),
714  Perm21(.47884973534895458333922920014385258),
715  Perm21(.40498603909827199169724464234269204),
716  Perm21(.01593121667174443211342773294126896),
717  Perm21(.16558326242608140000000000000000000),
718  Perm21(.07313360471922872772687381210732441),
719  Perm111(.66526073307221393906236441338569119,
720  .31635283934494723008633813095024529),
721  Perm111(.71252198724254553304884901162338783,
722  .09346075114991753000000000000000047),
723  Perm111(.55964836223539321841224845401923000,
724  .34422901758219320000000000000000160),
725  Perm111(.81047659761907686304683273029057126,
726  .17104724831425795154765033192558481),
727  Perm111(.91607564403173118856460883877832000,
728  .07305599647918648961294908192742498)
729 };
731  "2D P15", /* name */
732  2, /* dim */
733  15, /* order */
734  Length(QUAD_2D_P15_wts), /* npoints = 52 */
735  QUAD_2D_P15_pts, /* points */
736  QUAD_2D_P15_wts, /* weights */
737  -1 /* id */
738 };
739 
740 static FLOAT QUAD_2D_P16_wts[] = {
741  Dup3(.04802218868037709055183940458051988),
742  Dup21(.01470910030680192710340364286186919),
743  Dup21(.02954458654931925599530972679646409),
744  Dup21(.02612501735108837749859756549171557),
745  Dup21(.00278038735239000697500301613866207),
746  Dup21(.03182177300053664950342729005594961),
747  Dup21(.00864583434950965990117373416984893),
748  Dup111(.01430033290449536514661642536825213),
749  Dup111(.02784977720360082995222987342395349),
750  Dup111(.00704167340663609756237018808928069),
751  Dup111(.01789983825993372860177020907581078),
752  Dup111(.02745820038434976307247003810091720),
753  Dup111(.00729979693943176208411254408777766)
754 };
756  Perm3(.33333333333333333333333333333333333),
757  Perm21(.08179498313137387264146559311886101),
758  Perm21(.16530060196977965062676193293355656),
759  Perm21(.46859210534946138669460289729660561),
760  Perm21(.01443881344541668261410895669566020),
761  Perm21(.24178428539178335340689445929320769),
762  Perm21(.49531034298776996406549508687740551),
763  Perm111(.65051340266135229943114468484168666,
764  .33139974453708955658132316818259388),
765  Perm111(.60401128149599703984940410303596702,
766  .30324716274994218504155217807834692),
767  Perm111(.80216825757474166361686194781166705,
768  .18802805952123717344418211429398875),
769  Perm111(.75650560644282839655115407575806082,
770  .18350466852229686368238027743700035),
771  Perm111(.46593843871411818488381073359154639,
772  .35964594879750460000000000000001000),
773  Perm111(.90639484399204150136249966186534000,
774  .07719437129575543228251522505271386)
775 };
777  "2D P16", /* name */
778  2, /* dim */
779  16, /* order */
780  Length(QUAD_2D_P16_wts), /* npoints = 55 */
781  QUAD_2D_P16_pts, /* points */
782  QUAD_2D_P16_wts, /* weights */
783  -1 /* id */
784 };
785 
786 static FLOAT QUAD_2D_P17_wts[] = {
787  Dup3(.04475687144434462937183647670425513),
788  Dup21(.01736688502674779645049111764776038),
789  Dup21(.03059934807610353272266564726895704),
790  Dup21(.02858770857859978020704009121768920),
791  Dup21(.00664743192975369323231849554546676),
792  Dup21(.00747618940201851182224557347080098),
793  Dup21(.02504998650383874531455895190550778),
794  Dup111(.00147981089211964494480953682750477),
795  Dup111(.00512113624674810606589435040573260),
796  Dup111(.02731735936959280591853168984239567),
797  Dup111(.01400572867590928159786633211401179),
798  Dup111(.00780927569745836009810987323288001),
799  Dup111(.01816572845979167217607207751722372),
800  Dup111(.02744437399245832776208345541478450)
801 };
803  Perm3(.33333333333333333333333333333333333),
804  Perm21(.09569850886271093994316257860237634),
805  Perm21(.17013863967877544672324723079568443),
806  Perm21(.41802068586795497622263464239342782),
807  Perm21(.49658148050662495497054035306227918),
808  Perm21(.04166211482880764279207885159834192),
809  Perm21(.46793290572942357826819008536171190),
810  Perm111(.96953119890372205619454058305953242,
811  .02892509162021824607152804771406821),
812  Perm111(.75972438753862412955532719532266120,
813  .23444175526356877454266053091297880),
814  Perm111(.29549931696830150000000000000001000,
815  .49591124666075357542303450004375516),
816  Perm111(.62560638215769702707019209266693705,
817  .35341769454149706762632499077099377),
818  Perm111(.87217444723318479290318300141560742,
819  .11272864181421976861888886768074196),
820  Perm111(.74751231944000604006240678176087530,
821  .19907027879785788131339143981558306),
822  Perm111(.59886879088323805980616769726351095,
823  .30358518307132607653202051204584937)
824 };
826  "2D P17", /* name */
827  2, /* dim */
828  17, /* order */
829  Length(QUAD_2D_P17_wts), /* npoints = 61 */
830  QUAD_2D_P17_pts, /* points */
831  QUAD_2D_P17_wts, /* weights */
832  -1 /* id */
833 };
834 
835 static FLOAT QUAD_2D_P18_wts[] = {
836  Dup21(.01397786164528602097958400799055493),
837  Dup21(.00055490697921321378506845551525090),
838  Dup21(.02102681381970466902842986851624498),
839  Dup21(.03401821217992769974722652741822109),
840  Dup111(.02791016580477499514184347400781694),
841  Dup111(.01821468612715086612673395662068577),
842  Dup111(.01426702365810979307751982410955666),
843  Dup111(.01423712309067505070431276377415596),
844  Dup111(.01925758385467478779913738368202133),
845  Dup111(.00970513228438064114878227633239023),
846  Dup111(.00762978813433212899578245563385336),
847  Dup111(.01061873913635034479446354367052828),
848  Dup111(.00571066980327583881341421438268949),
849  Dup111(.00432685746087641829452234473283270)
850 };
852  Perm21(.07327088646438283157861967148768954),
853  Perm21(.00391774898322823164278407441958060),
854  Perm21(.46759731898871106165151299662296245),
855  Perm21(.41791621096741131201212681051399350),
856  Perm111(.16538169336028948005449026923917662,
857  .56369670566087075380514589393807372),
858  Perm111(.28750089440578398999619391313966060,
859  .28604232613920474912095810748030295),
860  Perm111(.12588931431982479601706483994903803,
861  .69604321864246119579257486028195390),
862  Perm111(.06322191594650261449357508011699804,
863  .76054555188768243261459476379786871),
864  Perm111(.07891022745402051775207221037548892,
865  .59201963127175856332262057540222541),
866  Perm111(.03805805350678571432611899159626213,
867  .68368125963599985248012408745381310),
868  Perm111(.01429035213045402564992411031307492,
869  .85170403713705581502852165344276639),
870  Perm111(.01296727234325317231234163433009032,
871  .57473249288814902889945093868968971),
872  Perm111(.00764859482084089933079262881822729,
873  .73551044083072929870313522448164061),
874  Perm111(.01271046057225546793114249181358220,
875  .93934508764373178870740420268282255)
876 };
878  "2D P18", /* name */
879  2, /* dim */
880  18, /* order */
881  Length(QUAD_2D_P18_wts), /* npoints = 72 */
882  QUAD_2D_P18_pts, /* points */
883  QUAD_2D_P18_wts, /* weights */
884  -1 /* id */
885 };
886 
887 /* Note: the rule QUAD_2D_P19 was taken from the book by
888  * P. Solin, K. Segeth, and I. Dolezel,
889  * "Higer-order Finite Element Methods",
890  * Chapman and Hall/CRC Press, 2003. */
891 static FLOAT QUAD_2D_P19_wts[] = {
892  Dup3(.03290633138891865208361434484647497),
893  Dup21(.01033073189127205336703996357174833),
894  Dup21(.02238724726301639252918455603516271),
895  Dup21(.03026612586946807086528019098259122),
896  Dup21(.03049096780219778100003158657852042),
897  Dup21(.02415921274164090491184803098664001),
898  Dup21(.01605080358680087529162277027642948),
899  Dup21(.00808458026178406048180567324219442),
900  Dup21(.00207936202748478075134750167439841),
901  Dup111(.00388487690498138975670499199277266),
902  Dup111(.02557416061202190389292970195260027),
903  Dup111(.00888090357333805774552592470351753),
904  Dup111(.01612454676173139121978526932783766),
905  Dup111(.00249194181749067544058464757594956),
906  Dup111(.01824284011895057837766571320973615),
907  Dup111(.01025856373619852130804807004235813),
908  Dup111(.00379992885530191397907315371363970)
909 };
911  Perm3(.33333333333333333333333333333333333),
912  Perm21(.48960998707300633196613106574829817),
913  Perm21(.45453689269789266204675939053572830),
914  Perm21(.40141668064943118739399562381068860),
915  Perm21(.25555165440309761132218176810926787),
916  Perm21(.17707794215212955164267520651590115),
917  Perm21(.11006105322795186130008495167737397),
918  Perm21(.05552862425183967124867841247135571),
919  Perm21(.01262186377722866849023476677870599),
920  Perm111(.60063379479464500000000000000000000,
921  .39575478735694286230479469406582787),
922  Perm111(.13446675453077978561204319893264695,
923  .55760326158878396836395324250118097),
924  Perm111(.72098702581736505521665290233827892,
925  .26456694840652020804030173490121494),
926  Perm111(.59452706895587092461388928802650670,
927  .35853935220595058842492699064590088),
928  Perm111(.83933147368083857861749007714840520,
929  .15780740596859474473767360335950651),
930  Perm111(.22386142409791569130336938950653642,
931  .70108797892617336732328833655951158),
932  Perm111(.82293132406985663162747155916053316,
933  .14242160111338343731557475687723745),
934  Perm111(.92434425262078402945585913790156314,
935  .06549462808293770339232652498592557)
936 };
938  "2D P19", /* name */
939  2, /* dim */
940  19, /* order */
941  Length(QUAD_2D_P19_wts), /* npoints = 73 */
942  QUAD_2D_P19_pts, /* points */
943  QUAD_2D_P19_wts, /* weights */
944  -1 /* id */
945 };
946 
947 static FLOAT QUAD_2D_P20_wts[] = {
948  Dup3(.01253760799449665657358563677239480),
949  Dup21(.02747186987642421374845354960735985),
950  Dup21(.00976527227705142304136469142942368),
951  Dup21(.00139841953539182352392336315978673),
952  Dup21(.00929210262518518263042820340303303),
953  Dup21(.01657787603236692532602362503518398),
954  Dup111(.02066776234866507696142197001297288),
955  Dup111(.02082223552115450730687855619932975),
956  Dup111(.00956863841984906068887584504583203),
957  Dup111(.02445277096897246388564392070240889),
958  Dup111(.00315573063063053400382640032072957),
959  Dup111(.01213679636532129693701330908075738),
960  Dup111(.01496648014388644903652491185157070),
961  Dup111(.00632759332177773956932403275043979),
962  Dup111(.00134256031206369588497985129814333),
963  Dup111(.00277607691634755406772935615580153),
964  Dup111(.01073984447418494155517344744795167),
965  Dup111(.00536780573818745320524741002126972)
966 };
968  Perm3(.33333333333333333333333333333333333),
969  Perm21(.21587430593299197319025454384018276),
970  Perm21(.07537676652974727809728543094591628),
971  Perm21(.01030082813722179211368621600969694),
972  Perm21(.49360221129870016551192083214505357),
973  Perm21(.46155093810692529674104871029151803),
974  Perm111(.32862140642423699330349746095091325,
975  .42934057025821037521395880046639840),
976  Perm111(.26048036178656875641959301708115346,
977  .10157753428096944616875500619617966),
978  Perm111(.13707423584645530000000000000000000,
979  .71006597300113015998790407454640790),
980  Perm111(.14672694587229978430416098848745303,
981  .49854547767841484938962269670761193),
982  Perm111(.02699897774255329000000000000000000,
983  .04918672267258200161970371257758717),
984  Perm111(.06187178593361702684171247001223384,
985  .77966014654056939536035061907681080),
986  Perm111(.04772436742762199620835268010429344,
987  .37049153914954763692014962025673877),
988  Perm111(.12060051518636437996723378704007933,
989  .86334694875475264849798799609252174),
990  Perm111(.00269714779670978767164891450128273,
991  .05619493818774550298789230198658868),
992  Perm111(.00301563327794236265727625982347101,
993  .20867500674842135095759446306135771),
994  Perm111(.02990537578845701880692877386433865,
995  .72115124091203409102810415020509411),
996  Perm111(.00675665422246098853994581751922784,
997  .64005544194054188990405366827216467)
998 };
1000  "2D P20", /* name */
1001  2, /* dim */
1002  20, /* order */
1003  Length(QUAD_2D_P20_wts), /* npoints = 88 */
1004  QUAD_2D_P20_pts, /* points */
1005  QUAD_2D_P20_wts, /* weights */
1006  -1 /* id */
1007 };
1008 
1010  Dup3(.02756225695287648096690704482451431),
1011  Dup21(.02206021541348850119135073403311636),
1012  Dup21(.02346001593867148849301344495230002),
1013  Dup21(.00032688959504719054621455750154654),
1014  Dup21(.00326531946293996823433530409586668),
1015  Dup21(.01175646291541279770430796921338205),
1016  Dup21(.01178076841991151684555757909867614),
1017  Dup111(.00226881081880114080533570433430431),
1018  Dup111(.00259601096443632006067378366548822),
1019  Dup111(.00463452978587186021234789056159687),
1020  Dup111(.00479433605454885793485744871991192),
1021  Dup111(.00571247883672361156725063834296336),
1022  Dup111(.00586582760432212163695579870000227),
1023  Dup111(.00941376305909158758981826852034708),
1024  Dup111(.01341494379665642491002202661089309),
1025  Dup111(.01571691809208324594350000113784617),
1026  Dup111(.01686368301443690459165096388619991),
1027  Dup111(.02139002708532009837783229808035898),
1028  Dup111(.02307679218949268136788087552189154)
1029 };
1031  Perm3(.33333333333333333333333333333333333),
1032  Perm21(.20093527706508527987296185156416367),
1033  Perm21(.43765916596192717973183384418805413),
1034  Perm21(.00343395649059617685095991220960492),
1035  Perm21(.04664348477530675349517624043214192),
1036  Perm21(.38642225176307149094035202416772642),
1037  Perm21(.09543547110853091010857168104147605),
1038  Perm111(.95551380335045636050131472514677118,
1039  .03571862787316335823804160897543867),
1040  Perm111(.88663881342886822612490057469143760,
1041  .10814322491564621152738861104631270),
1042  Perm111(.78426284588043415429664399039819537,
1043  .20746444959987645682438042951572740),
1044  Perm111(.88292395505020003271134898731688967,
1045  .08568470872031694000000000000001000),
1046  Perm111(.66899196444107724049132248320989459,
1047  .32149400301428881688168321268348603),
1048  Perm111(.55207212103556096415716096525277878,
1049  .43794221879334138355236807696291701),
1050  Perm111(.79759296559656856762931422329572582,
1051  .16191645306357785675100677020385905),
1052  Perm111(.67751471511977148463499116634413256,
1053  .27450476740199490385900297290733317),
1054  Perm111(.54299741558909160533113611683919342,
1055  .40533599807500692794989089537632556),
1056  Perm111(.70545990556996856165885634154060172,
1057  .18773768065643534277281674394512005),
1058  Perm111(.57480057306650846221598245054985001,
1059  .30569683476605516651279255664984316),
1060  Perm111(.47177880850461481660397704013492420,
1061  .31214446687089088167080460581557645)
1062 };
1064  "2D P21", /* name */
1065  2, /* dim */
1066  21, /* order */
1067  Length(QUAD_2D_P21_wts), /* npoints = 91 */
1068  QUAD_2D_P21_pts, /* points */
1069  QUAD_2D_P21_wts, /* weights */
1070  -1 /* id */
1071 };
1072 
1073 /*---------------------------- 3D cubature rules ---------------------------*/
1074 
1075 static FLOAT QUAD_3D_P1_wts[] = {
1076  Dup4(1.)
1077 };
1079  Perm4(.25)
1080 };
1082  "3D P1", /* name */
1083  3, /* dim */
1084  1, /* order */
1085  Length(QUAD_3D_P1_wts), /* npoints = 1 */
1086  QUAD_3D_P1_pts, /* points */
1087  QUAD_3D_P1_wts, /* weights */
1088  -1 /* id */
1089 };
1090 
1091 static FLOAT QUAD_3D_P2_wts[] = {
1092  Dup31(.25)
1093 };
1095  /* (5. - sqrt(5.)) / 20, (5. + 3 * sqrt(5.)) / 20 */
1096  Perm31(.13819660112501051517954131656343619)
1097 };
1099  "3D P2", /* name */
1100  3, /* dim */
1101  2, /* order */
1102  Length(QUAD_3D_P2_wts), /* npoints = 4 */
1103  QUAD_3D_P2_pts, /* points */
1104  QUAD_3D_P2_wts, /* weights */
1105  -1 /* id */
1106 };
1107 
1108 #if 0
1109 static FLOAT QUAD_3D_P3_wts[] = {
1110  Dup31(1./40.),
1111  Dup31(9./40.)
1112 };
1113 static FLOAT QUAD_3D_P3_pts[Length(QUAD_3D_P3_wts) * 4] = {
1114  Perm31(0., 1.),
1115  Perm31(1./3., 0.)
1116 };
1117 #else
1118 static FLOAT QUAD_3D_P3_wts[] = {
1119  /* 1 / 8 + sqrt((1715161837 - 406006699 * sqrt(17)) / 23101) / 3120 */
1120  Dup31(.13852796651186214232361769837564129),
1121  /* 1 / 8 - sqrt((1715161837 - 406006699 * sqrt(17)) / 23101) / 3120 */
1122  Dup31(.11147203348813785767638230162435871)
1123 };
1125  /* (55 - 3 * sqrt(17) + sqrt(1022 - 134 * sqrt(17))) / 196 */
1126  Perm31(.32805469671142664733580581998119743),
1127  /* (55 - 3 * sqrt(17) - sqrt(1022 - 134 * sqrt(17))) / 196 */
1128  Perm31(.10695227393293068277170204157061650)
1129 };
1130 #endif
1132  "3D P3", /* name */
1133  3, /* dim */
1134  3, /* order */
1135  Length(QUAD_3D_P3_wts), /* npoints = 8 */
1136  QUAD_3D_P3_pts, /* points */
1137  QUAD_3D_P3_wts, /* weights */
1138  -1 /* id */
1139 };
1140 
1141 #if 0
1142 static FLOAT QUAD_3D_P4_wts[] = {
1143  Dup4(-148./1875.), /* negative weight */
1144  Dup31(343./7500.),
1145  Dup22(56./375.)
1146 };
1147 static FLOAT QUAD_3D_P4_pts[Length(QUAD_3D_P4_wts) * 4] = {
1148  Perm4(0.25),
1149  Perm31(1./14.),
1150  Perm22(0.1005964238332008)
1151 };
1152 QUAD QUAD_3D_P4_ = {
1153  "3D P4", /* name */
1154  3, /* dim */
1155  4, /* order */
1156  11, /* npoints */
1157  QUAD_3D_P4_pts, /* points */
1158  QUAD_3D_P4_wts, /* weights */
1159  -1 /* id */
1160 };
1161 #else
1162 static FLOAT QUAD_3D_P4_wts[] = {
1163  Dup31(.07349304311636194934358694586367885),
1164  Dup31(.11268792571801585036501492847638892),
1165  Dup22(.04254602077708146686093208377328816)
1166 };
1168  Perm31(.09273525031089122628655892066032137),
1169  Perm31(.31088591926330060975814749494040332),
1170  Perm22(.04550370412564965000000000000000000)
1171 };
1173  "3D P4", /* name */
1174  3, /* dim */
1175  4, /* order */
1176  Length(QUAD_3D_P4_wts), /* npoints = 14 */
1177  QUAD_3D_P4_pts, /* points */
1178  QUAD_3D_P4_wts, /* weights */
1179  -1 /* id */
1180 };
1181 #endif
1182 
1183 #if 0
1184 /* Stroud T3:5-1 p315 */
1185 static FLOAT QUAD_3D_P5_wts[] = {
1186  Dup4(16./135.),
1187  /* (2665 + 14 * sqrt(15)) / 37800 */
1188  Dup31(.07193708377901862),
1189  /* (2665 - 14 * sqrt(15)) / 37800 */
1190  Dup31(.06906820722627239),
1191  Dup22(20./378.)
1192 };
1193 static FLOAT QUAD_3D_P5_pts[Length(QUAD_3D_P5_wts) * 4] = {
1194  Perm4(.25),
1195  /* (7 - sqrt(15)) / 34, (13 + 3 * sqrt(15)) / 34 */
1196  Perm31(.09197107805272303),
1197  /* (7 + sqrt(15)) / 34, (13 - 3 * sqrt(15)) / 34 */
1198  Perm31(.31979362782962991),
1199  /* (10 - 2 * sqrt(15)) / 40, (10 + 2 * sqrt(15)) / 40 */
1200  Perm22(.05635083268962916)
1201 };
1202 QUAD QUAD_3D_P5_ = {
1203  "3D P5", /* name */
1204  3, /* dim */
1205  5, /* order */
1206  15, /* npoints */
1207  QUAD_3D_P5_pts, /* points */
1208  QUAD_3D_P5_wts, /* weights */
1209  -1 /* id */
1210 };
1211 #else
1212 static FLOAT QUAD_3D_P5_wts[] = {
1213  Dup31(.11268792571801585079918565233328633),
1214  Dup31(.07349304311636194954371020548632750),
1215  Dup22(.04254602077708146643806942812025744)
1216 
1217 };
1219  Perm31(.31088591926330060979734573376345783),
1220  Perm31(.09273525031089122640232391373703061),
1221  Perm22(.04550370412564964949188052627933943)
1222 };
1224  "3D P5", /* name */
1225  3, /* dim */
1226  5, /* order */
1227  Length(QUAD_3D_P5_wts), /* npoints = 14 */
1228  QUAD_3D_P5_pts, /* points */
1229  QUAD_3D_P5_wts, /* weights */
1230  -1 /* id */
1231 };
1232 #endif
1233 
1234 static FLOAT QUAD_3D_P6_wts[] = {
1235  Dup31(.03992275025816749209969062755747998),
1236  Dup31(.01007721105532064294801323744593686),
1237  Dup31(.05535718154365472209515327785372602),
1238  Dup211(27./560.)
1239 };
1241  Perm31(.21460287125915202928883921938628499),
1242  Perm31(.04067395853461135311557944895641006),
1243  Perm31(.32233789014227551034399447076249213),
1244  /* (3 - sqrt(5)) / 12, (5 + sqrt(5)) / 12, (1 + sqrt(5)) / 12 */
1245  Perm211(.06366100187501752529923552760572698,
1246  .60300566479164914136743113906093969)
1247 };
1249  "3D P6", /* name */
1250  3, /* dim */
1251  6, /* order */
1252  Length(QUAD_3D_P6_wts), /* npoints = 24 */
1253  QUAD_3D_P6_pts, /* points */
1254  QUAD_3D_P6_wts, /* weights */
1255  -1 /* id */
1256 };
1257 
1258 static FLOAT QUAD_3D_P7_wts[] = {
1259  Dup4(.09548528946413084886057843611722638),
1260  Dup31(.04232958120996702907628617079854674),
1261  Dup22(.03189692783285757993427482408294246),
1262  Dup211(.03720713072833462136961556119148112),
1263  Dup211(.00811077082990334156610343349109654)
1264 };
1266  Perm4(.25),
1267  Perm31(.31570114977820279942342999959331149),
1268  Perm22(.05048982259839636876305382298656247),
1269  Perm211(.18883383102600104773643110385458576,
1270  .57517163758700002348324157702230752),
1271  Perm211(.02126547254148324598883610149981994,
1272  .81083024109854856111810537984823239)
1273 };
1275  "3D P7", /* name */
1276  3, /* dim */
1277  7, /* order */
1278  Length(QUAD_3D_P7_wts), /* npoints = 35 */
1279  QUAD_3D_P7_pts, /* points */
1280  QUAD_3D_P7_wts, /* weights */
1281  -1 /* id */
1282 };
1283 
1284 static FLOAT QUAD_3D_P8_wts[] = {
1285  Dup31(.00639714777990232132145142033517302),
1286  Dup31(.04019044802096617248816115847981783),
1287  Dup31(.02430797550477032117486910877192260),
1288  Dup31(.05485889241369744046692412399039144),
1289  Dup22(.03571961223409918246495096899661762),
1290  Dup211(.00718319069785253940945110521980376),
1291  Dup211(.01637218194531911754093813975611913)
1292 };
1294  Perm31(.03967542307038990126507132953938949),
1295  Perm31(.31448780069809631378416056269714830),
1296  Perm31(.10198669306270330000000000000000000),
1297  Perm31(.18420369694919151227594641734890918),
1298  Perm22(.06343628775453989240514123870189827),
1299  Perm211(.02169016206772800480266248262493018,
1300  .71993192203946593588943495335273478),
1301  Perm211(.20448008063679571424133557487274534,
1302  .58057719012880922417539817139062041)
1303 };
1305  "3D P8", /* name */
1306  3, /* dim */
1307  8, /* order */
1308  Length(QUAD_3D_P8_wts), /* npoints = 46 */
1309  QUAD_3D_P8_pts, /* points */
1310  QUAD_3D_P8_wts, /* weights */
1311  -1 /* id */
1312 };
1313 
1314 static FLOAT QUAD_3D_P9_wts[] = {
1315  Dup4(.05642669317950620658871504327612541),
1316  Dup31(.00334109507471348040299974430471765),
1317  Dup31(.03011375476877376390731423843157491),
1318  Dup31(.00649096092006153463576211689456861),
1319  Dup211(.00980928586825458643196874259255500),
1320  Dup211(.02811915382336547255163261742529262),
1321  Dup211(.00789458690833150076834149200960885),
1322  Dup211(.01949281204723999671697219448924602)
1323 };
1325  Perm4(.25),
1326  Perm31(.03402217700104486646540370887876764),
1327  Perm31(.32277033353380052539137668325496398),
1328  Perm31(.06045707742577493000000000000000000),
1329  Perm211(.45536299094720821180030815044164301,
1330  .00568317736533017990610016014574474),
1331  Perm211(.11950225539382580097797370469611438,
1332  .46311683247848994097622449365772955),
1333  Perm211(.02802195578340115815505750665412373,
1334  .72520607683986748873856595428480993),
1335  Perm211(.17483303201157461578532464597224522,
1336  .61668257178125640457068309097954073)
1337 };
1339  "3D P9", /* name */
1340  3, /* dim */
1341  9, /* order */
1342  Length(QUAD_3D_P9_wts), /* npoints = 61 */
1343  QUAD_3D_P9_pts, /* points */
1344  QUAD_3D_P9_wts, /* weights */
1345  -1 /* id */
1346 };
1347 
1349  Dup4(.04739977355602073838473882117805110),
1350  Dup31(.02693705999226869980276416100488208),
1351  Dup31(.00986915971679338323455773543017308),
1352  Dup211(.00036194434433925362423987838480851),
1353  Dup211(.01013587167975579278851647011501678),
1354  Dup211(.01139388122019523162362093488071434),
1355  Dup211(.00657614727703590416745574020045070),
1356  Dup211(.02573973198045607127903601225965471),
1357  Dup211(.01290703579886199063929543024949899)
1358 };
1360  Perm4(.25),
1361  Perm31(.31225006869518864772980831868682746),
1362  Perm31(.11430965385734615058737119765365045),
1363  Perm211(.00613800882479074784759371324841535,
1364  .94298876734520486619763058691825076),
1365  Perm211(.03277946821644267077472102033232419,
1366  .34018479408710763278898792494967132),
1367  Perm211(.41043073921896549428789784425151169,
1368  .16548602561961105160449012444452641),
1369  Perm211(.03248528156482304783551493997842620,
1370  .13385215221200951309782843596456662),
1371  Perm211(.12105018114558942599389500159505053,
1372  .47719037990428035054410640829690722),
1373  Perm211(.17497934218393902428494922652831040,
1374  .62807184547536601069327607221790967)
1375 };
1377  "3D P10", /* name */
1378  3, /* dim */
1379  10, /* order */
1380  Length(QUAD_3D_P10_wts), /* npoints = 81 */
1381  QUAD_3D_P10_pts, /* points */
1382  QUAD_3D_P10_wts, /* weights */
1383  -1 /* id */
1384 };
1385 
1387  Dup4(.03943210802865886350733033449120443),
1388  Dup31(.01566212622727911315008856276876506),
1389  Dup31(.00333217237490140814440923615401491),
1390  Dup31(.01402607740748974743749136099769235),
1391  Dup211(.00108590752933246630682209837723547),
1392  Dup211(.02023596043066317891111657316540838),
1393  Dup211(.01179021487212586353684938046770181),
1394  Dup211(.00769031498252129590113157802073890),
1395  Dup211(.00443730570345920390473072602143959),
1396  Dup211(.01142954846718404041077055259859402),
1397  Dup1111(.00618564017121781141281925508389534)
1398 };
1400  Perm4(.25),
1401  Perm31(.12149136777653379449770230990807224),
1402  Perm31(.03231625915107289635395445208958103),
1403  Perm31(.32492614978860679781284190241442197),
1404  Perm211(.00414835697166001200000000000001000,
1405  .59826599679018635020545384277617780),
1406  Perm211(.22462461067637714141447515116498644,
1407  .47366228783234957140836966920205236),
1408  Perm211(.05190508777256569674422721644265892,
1409  .56314477790827989873710197630305713),
1410  Perm211(.13493013121624020422375917234299303,
1411  .70835883078581895385699500512712996),
1412  Perm211(.02519119210825247292005118506530550,
1413  .78371950734007737543057403429990901),
1414  Perm211(.36531877978173361396933198009886720,
1415  .13460390831686580000000000000001000),
1416  Perm1111(.52290753950993847296521692758602923,
1417  .14075363054369590184253913949127849,
1418  .00976243819645261550829228038997777)
1419 };
1421  "3D P11", /* name */
1422  3, /* dim */
1423  11, /* order */
1424  Length(QUAD_3D_P11_wts), /* npoints = 109 */
1425  QUAD_3D_P11_pts, /* points */
1426  QUAD_3D_P11_wts, /* weights */
1427  -1 /* id */
1428 };
1429 
1431  Dup31(.01276763770097074150203778596512505),
1432  Dup31(.01612110423790926821858154489575762),
1433  Dup31(.00037161269857844220004255818986081),
1434  Dup31(.01971744178668545763955330903818868),
1435  Dup31(.00257139093086271836218234759448548),
1436  Dup22(.00381724787051057590575318412783326),
1437  Dup22(.01208722707766311317860318419314605),
1438  Dup211(.00310586115843473343431688149929620),
1439  Dup211(.00545953133647103066912742126769441),
1440  Dup211(.00214289974849699750666852093655947),
1441  Dup211(.00552467146725782962244930098165075),
1442  Dup211(.00853695669449918042985177836672201),
1443  Dup1111(.01151017784832330697333644123403294),
1444  Dup1111(.00520387865288561360396792421252454)
1445 };
1447  Perm31(.11529974435148014530455720738915911),
1448  Perm31(.20233628224059090000000000000001000),
1449  Perm31(.01171759795761995151247906754831398),
1450  Perm31(.31330644136780106727760279964458934),
1451  Perm31(.25000573011558370000000000000001000),
1452  Perm22(.02099547435075800669020182527059018),
1453  Perm22(.15177401824745010000000000000001000),
1454  Perm211(.02441977874343536478314000904761661,
1455  .84832928469787285064520886743481574),
1456  Perm211(.25620709853201830896382010708562210,
1457  .48248737387384884780289289672973542),
1458  Perm211(.01679032097960299061471796028857942,
1459  .69477194236575592695949850988417719),
1460  Perm211(.12616082113987204239970703846895919,
1461  .72541048930294811897485950521263380),
1462  Perm211(.43143517452637984721670695066371957,
1463  .11272193989285241520959977211007542),
1464  Perm1111(.50167006246250569747515507168476130,
1465  .27247180286952239178351046753060445,
1466  .07207432880729891465015948456335820),
1467  Perm1111(.26164485453781874566945505006396799,
1468  .08629229194706173191742351944352488,
1469  .02056541065587613830062489762710900)
1470 };
1472  "3D P12", /* name */
1473  3, /* dim */
1474  12, /* order */
1475  Length(QUAD_3D_P12_wts), /* npoints = 140 */
1476  QUAD_3D_P12_pts, /* points */
1477  QUAD_3D_P12_wts, /* weights */
1478  -1 /* id */
1479 };
1480 
1482  Dup4(.01501368777308314675062970631615983),
1483  Dup31(.01822520928017342532379068941490097),
1484  Dup31(.00700610921774146424038518693926311),
1485  Dup22(.01642354974394954829540573107905531),
1486  Dup22(.00512061009636059707262596949702171),
1487  Dup22(.01119669865290491634382032086351956),
1488  Dup211(.01561914973337995400953811302431969),
1489  Dup211(.00248442301331647441904056776338473),
1490  Dup211(.00163859853481823893844525309440751),
1491  Dup211(.00590303044012492197171914655535865),
1492  Dup211(.01102208245821805240445097989201525),
1493  Dup211(.00040645183996417822585155512755848),
1494  Dup1111(.00268796997296854209745781926651729),
1495  Dup1111(.00197950480552671190531894675510740),
1496  Dup1111(.00544631918142579120943187040108667)
1497 };
1499  Perm4(.25),
1500  Perm31(.15521609351908950314115784335704739),
1501  Perm31(.33012266333967360024433192595196779),
1502  Perm22(.16680640389386249928937782601144234),
1503  Perm22(.02492378854777361779701400374860089),
1504  Perm22(.09719762991575100143072243716240818),
1505  Perm211(.24785929015736256692746910620827934,
1506  .43365324235685144718726061434767377),
1507  Perm211(.02223159608186700290879521860892929,
1508  .83690032040373400514509486595698594),
1509  Perm211(.10727869331305341049150459639584801,
1510  .77498030597500180756587877274179289),
1511  Perm211(.19817684388398981142331840582142759,
1512  .58756930578220530259172017903595920),
1513  Perm211(.06917924347737931647732534347465502,
1514  .60420006666006644707935264871115302),
1515  Perm211(.02311471947193316000000000000001000,
1516  .93087579279244424864920228882888307),
1517  Perm1111(.11788928751019608922290117470644250,
1518  .11651536422540720000000000000001000,
1519  .04202400112551542095676634303719997),
1520  Perm1111(.67703279860228426355032221326746594,
1521  .04616537602461971083458041122176081,
1522  .00084434031890503975729899692135905),
1523  Perm1111(.48489008867363312201080094154790828,
1524  .35888294295520201572423646909421086,
1525  .13818283491762872996955080907912355)
1526 };
1528  "3D P13", /* name */
1529  3, /* dim */
1530  13, /* order */
1531  Length(QUAD_3D_P13_wts), /* npoints = 171 */
1532  QUAD_3D_P13_pts, /* points */
1533  QUAD_3D_P13_wts, /* weights */
1534  -1 /* id */
1535 };
1536 
1538  Dup31(.00406511366527076704362088368356360),
1539  Dup31(.00221453853344557814375995695000715),
1540  Dup31(.00581343826788845054953733388214554),
1541  Dup31(.01962554338583572159756233339617148),
1542  Dup31(.00038757379059082143645387212483937),
1543  Dup211(.01164297197217703698552134010055516),
1544  Dup211(.00528904298828171313177368830528561),
1545  Dup211(.00183108541636005593766978234880692),
1546  Dup211(.00824964737721464520674496691736603),
1547  Dup1111(.00300992453470824513768887482089866),
1548  Dup1111(.00080471656173675346362618087603116),
1549  Dup1111(.00298504125884930711876556928839215),
1550  Dup1111(.00568960024187607669633614778119730),
1551  Dup1111(.00415908658785457156700139801826135),
1552  Dup1111(.00072823892045727243561364297456536),
1553  Dup1111(.00543265007699582482162423406519264)
1554 };
1556  Perm31(.32725336252384856390930966926852893),
1557  Perm31(.04476130446668508088379420964788419),
1558  Perm31(.08614033110243635365372087402988575),
1559  Perm31(.20876264250043229682653570839761758),
1560  Perm31(.01410497380292096006358791521029282),
1561  Perm211(.10216532418077681234766925269825839,
1562  .57394636759433382028140028934601068),
1563  Perm211(.40757005166001071572132956513017833,
1564  .09222787013902013000000000000000000),
1565  Perm211(.01566400074028035855575867095780840,
1566  .70128109595894403271399676732084261),
1567  Perm211(.22549635625250290537807241542011034,
1568  .47690639744208871158605833541070112),
1569  Perm1111(.39059842812814580000000000000000000,
1570  .20135905441239221681230773272350923,
1571  .01611228807103002985780269315483708),
1572  Perm1111(.10613506799890214555561390298480794,
1573  .03273581868172692849440040779126601,
1574  .00359790765372716669079715233859245),
1575  Perm1111(.56363837316977438968968166306485017,
1576  .23029207223006574545025268741356515,
1577  .19071993417435518627124877906378985),
1578  Perm1111(.36762550953258608440922067759911669,
1579  .20788513802300449507171021252507348,
1580  .33121048851934490000000000000000000),
1581  Perm1111(.71923236898172952950234018407969909,
1582  .17632791180193297621579930336369727,
1583  .02076023625713100907549734406116442),
1584  Perm1111(.52782499521529872984092400758172763,
1585  .43728908922034181655262387608419181,
1586  .00922016518566419494631775549492202),
1587  Perm1111(.54836745449481907289949105056077457,
1588  .34478155061716412287036718709203314,
1589  .08672172833222153946294387400858277)
1590 };
1592  "3D P14", /* name */
1593  3, /* dim */
1594  14, /* order */
1595  Length(QUAD_3D_P14_wts), /* npoints = 236 */
1596  QUAD_3D_P14_pts, /* points */
1597  QUAD_3D_P14_wts, /* weights */
1598  -1 /* id */
1599 };
1600 
1601 
QUAD_2D_P5_
QUAD QUAD_2D_P5_
Definition: quad.c:370
QUAD_1D_P5_
QUAD QUAD_1D_P5_
Definition: quad.c:78
QUAD_2D_P5_wts
static FLOAT QUAD_2D_P5_wts[]
Definition: quad.c:355
QUAD_2D_P8_
QUAD QUAD_2D_P8_
Definition: quad.c:459
QUAD_2D_P14_pts
static FLOAT QUAD_2D_P14_pts[Length(QUAD_2D_P14_wts) *3]
Definition: quad.c:667
QUAD_2D_P16_pts
static FLOAT QUAD_2D_P16_pts[Length(QUAD_2D_P16_wts) *3]
Definition: quad.c:755
QUAD_1D_P1_pts
static FLOAT QUAD_1D_P1_pts[Length(QUAD_1D_P1_wts) *2]
Definition: quad.c:39
QUAD_1D_P11_wts
static FLOAT QUAD_1D_P11_wts[]
Definition: quad.c:130
QUAD_2D_P21_wts
static FLOAT QUAD_2D_P21_wts[]
Definition: quad.c:1009
QUAD_1D_P21_pts
static FLOAT QUAD_1D_P21_pts[Length(QUAD_1D_P21_wts) *2]
Definition: quad.c:250
QUAD_
Definition: quad.h:29
QUAD_3D_P2_pts
static FLOAT QUAD_3D_P2_pts[Length(QUAD_3D_P2_wts) *4]
Definition: quad.c:1094
Dup3
#define Dup3(w)
Definition: quad.h:159
QUAD_1D_P19_
QUAD QUAD_1D_P19_
Definition: quad.c:232
QUAD_3D_P4_pts
static FLOAT QUAD_3D_P4_pts[Length(QUAD_3D_P4_wts) *4]
Definition: quad.c:1167
QUAD_2D_P7_wts
static FLOAT QUAD_2D_P7_wts[]
Definition: quad.c:420
QUAD_2D_P20_pts
static FLOAT QUAD_2D_P20_pts[Length(QUAD_2D_P20_wts) *3]
Definition: quad.c:967
QUAD_3D_P5_wts
static FLOAT QUAD_3D_P5_wts[]
Definition: quad.c:1212
QUAD_2D_P8_wts
static FLOAT QUAD_2D_P8_wts[]
Definition: quad.c:444
Dup2
#define Dup2(w)
Definition: quad.h:153
QUAD_3D_P2_wts
static FLOAT QUAD_3D_P2_wts[]
Definition: quad.c:1091
QUAD_2D_P17_
QUAD QUAD_2D_P17_
Definition: quad.c:825
QUAD_3D_P4_wts
static FLOAT QUAD_3D_P4_wts[]
Definition: quad.c:1162
Dup21
#define Dup21(w)
Definition: quad.h:163
QUAD_2D_P12_wts
static FLOAT QUAD_2D_P12_wts[]
Definition: quad.c:584
QUAD_2D_P11_
QUAD QUAD_2D_P11_
Definition: quad.c:574
QUAD_3D_P9_
QUAD QUAD_3D_P9_
Definition: quad.c:1338
QUAD_2D_P3_
QUAD QUAD_2D_P3_
Definition: quad.c:323
QUAD_2D_P18_
QUAD QUAD_2D_P18_
Definition: quad.c:877
QUAD_1D_P9_wts
static FLOAT QUAD_1D_P9_wts[]
Definition: quad.c:108
QUAD_3D_P8_pts
static FLOAT QUAD_3D_P8_pts[Length(QUAD_3D_P8_wts) *4]
Definition: quad.c:1293
QUAD_1D_P11_
QUAD QUAD_1D_P11_
Definition: quad.c:140
QUAD_2D_P20_wts
static FLOAT QUAD_2D_P20_wts[]
Definition: quad.c:947
QUAD_2D_P20_
QUAD QUAD_2D_P20_
Definition: quad.c:999
QUAD_3D_P1_pts
static FLOAT QUAD_3D_P1_pts[Length(QUAD_3D_P1_wts) *4]
Definition: quad.c:1078
QUAD_2D_P16_
QUAD QUAD_2D_P16_
Definition: quad.c:776
QUAD_1D_P13_pts
static FLOAT QUAD_1D_P13_pts[Length(QUAD_1D_P13_wts) *2]
Definition: quad.c:156
QUAD_2D_P4_
QUAD QUAD_2D_P4_
Definition: quad.c:345
QUAD_2D_P1_
QUAD QUAD_2D_P1_
Definition: quad.c:276
QUAD_2D_P4_pts
static FLOAT QUAD_2D_P4_pts[Length(QUAD_2D_P4_wts) *3]
Definition: quad.c:339
QUAD_2D_P6_pts
static FLOAT QUAD_2D_P6_pts[Length(QUAD_2D_P6_wts) *3]
Definition: quad.c:390
QUAD_3D_P12_
QUAD QUAD_3D_P12_
Definition: quad.c:1471
QUAD_3D_P11_pts
static FLOAT QUAD_3D_P11_pts[Length(QUAD_3D_P11_wts) *4]
Definition: quad.c:1399
QUAD_2D_P12_pts
static FLOAT QUAD_2D_P12_pts[Length(QUAD_2D_P12_wts) *3]
Definition: quad.c:594
QUAD_1D_P9_
QUAD QUAD_1D_P9_
Definition: quad.c:120
QUAD_1D_P11_pts
static FLOAT QUAD_1D_P11_pts[Length(QUAD_1D_P11_wts) *2]
Definition: quad.c:135
Perm1111
#define Perm1111(a, b, c)
Definition: quad.h:202
Perm11
#define Perm11(a)
Definition: quad.h:154
QUAD_1D_P15_pts
static FLOAT QUAD_1D_P15_pts[Length(QUAD_1D_P15_wts) *2]
Definition: quad.c:178
QUAD_2D_P12_
QUAD QUAD_2D_P12_
Definition: quad.c:607
QUAD_3D_P3_pts
static FLOAT QUAD_3D_P3_pts[Length(QUAD_3D_P3_wts) *4]
Definition: quad.c:1124
QUAD_3D_P1_
QUAD QUAD_3D_P1_
Definition: quad.c:1081
QUAD_1D_P17_pts
static FLOAT QUAD_1D_P17_pts[Length(QUAD_1D_P17_wts) *2]
Definition: quad.c:201
QUAD_2D_P9_
QUAD QUAD_2D_P9_
Definition: quad.c:511
QUAD_2D_P3_pts
static FLOAT QUAD_2D_P3_pts[Length(QUAD_2D_P3_wts) *3]
Definition: quad.c:318
QUAD_1D_P1_wts
static FLOAT QUAD_1D_P1_wts[]
Definition: quad.c:36
QUAD_2D_P18_wts
static FLOAT QUAD_2D_P18_wts[]
Definition: quad.c:835
QUAD_3D_P1_wts
static FLOAT QUAD_3D_P1_wts[]
Definition: quad.c:1075
QUAD_2D_P6_wts
static FLOAT QUAD_2D_P6_wts[]
Definition: quad.c:385
QUAD_3D_P3_wts
static FLOAT QUAD_3D_P3_wts[]
Definition: quad.c:1118
QUAD_3D_P11_wts
static FLOAT QUAD_3D_P11_wts[]
Definition: quad.c:1386
Dup211
#define Dup211(w)
Definition: quad.h:199
QUAD_3D_P11_
QUAD QUAD_3D_P11_
Definition: quad.c:1420
QUAD_2D_P18_pts
static FLOAT QUAD_2D_P18_pts[Length(QUAD_2D_P18_wts) *3]
Definition: quad.c:851
QUAD_1D_P13_
QUAD QUAD_1D_P13_
Definition: quad.c:162
QUAD_2D_P10_wts
static FLOAT QUAD_2D_P10_wts[]
Definition: quad.c:522
Dup11
#define Dup11(w)
Definition: quad.h:155
QUAD_2D_P5_pts
static FLOAT QUAD_2D_P5_pts[Length(QUAD_2D_P5_wts) *3]
Definition: quad.c:362
Dup31
#define Dup31(w)
Definition: quad.h:179
QUAD_3D_P8_
QUAD QUAD_3D_P8_
Definition: quad.c:1304
QUAD_2D_P19_pts
static FLOAT QUAD_2D_P19_pts[Length(QUAD_2D_P19_wts) *3]
Definition: quad.c:910
QUAD_1D_P17_
QUAD QUAD_1D_P17_
Definition: quad.c:208
FLOAT
#define FLOAT
Definition: quadrature_lib.cc:24
QUAD_2D_P4_wts
static FLOAT QUAD_2D_P4_wts[]
Definition: quad.c:333
QUAD_2D_P13_pts
static FLOAT QUAD_2D_P13_pts[Length(QUAD_2D_P13_wts) *3]
Definition: quad.c:628
QUAD_2D_P13_
QUAD QUAD_2D_P13_
Definition: quad.c:643
QUAD_3D_P10_pts
static FLOAT QUAD_3D_P10_pts[Length(QUAD_3D_P10_wts) *4]
Definition: quad.c:1359
Perm2
#define Perm2(a)
Definition: quad.h:152
QUAD_3D_P5_
QUAD QUAD_3D_P5_
Definition: quad.c:1223
QUAD_2D_P15_
QUAD QUAD_2D_P15_
Definition: quad.c:730
QUAD_3D_P9_wts
static FLOAT QUAD_3D_P9_wts[]
Definition: quad.c:1314
QUAD_1D_P7_
QUAD QUAD_1D_P7_
Definition: quad.c:98
QUAD_3D_P13_wts
static FLOAT QUAD_3D_P13_wts[]
Definition: quad.c:1481
QUAD_3D_P7_
QUAD QUAD_3D_P7_
Definition: quad.c:1274
QUAD_3D_P13_
QUAD QUAD_3D_P13_
Definition: quad.c:1527
QUAD_2D_P2_pts
static FLOAT QUAD_2D_P2_pts[Length(QUAD_2D_P2_wts) *3]
Definition: quad.c:289
QUAD_2D_P3_wts
static FLOAT QUAD_2D_P3_wts[]
Definition: quad.c:314
Dup1111
#define Dup1111(w)
Definition: quad.h:207
Dup22
#define Dup22(w)
Definition: quad.h:186
QUAD_1D_P3_pts
static FLOAT QUAD_1D_P3_pts[Length(QUAD_1D_P3_wts) *2]
Definition: quad.c:55
QUAD_3D_P3_
QUAD QUAD_3D_P3_
Definition: quad.c:1131
QUAD_2D_P19_
QUAD QUAD_2D_P19_
Definition: quad.c:937
Length
#define Length(wts)
Definition: quad.c:31
QUAD_2D_P7_pts
static FLOAT QUAD_2D_P7_pts[Length(QUAD_2D_P7_wts) *3]
Definition: quad.c:426
QUAD_3D_P6_
QUAD QUAD_3D_P6_
Definition: quad.c:1248
QUAD_1D_P19_pts
static FLOAT QUAD_1D_P19_pts[Length(QUAD_1D_P19_wts) *2]
Definition: quad.c:225
QUAD_2D_P11_wts
static FLOAT QUAD_2D_P11_wts[]
Definition: quad.c:552
QUAD_2D_P21_
QUAD QUAD_2D_P21_
Definition: quad.c:1063
Dup4
#define Dup4(w)
Definition: quad.h:174
QUAD_1D_P15_
QUAD QUAD_1D_P15_
Definition: quad.c:184
QUAD_3D_P12_pts
static FLOAT QUAD_3D_P12_pts[Length(QUAD_3D_P12_wts) *4]
Definition: quad.c:1446
QUAD_3D_P6_wts
static FLOAT QUAD_3D_P6_wts[]
Definition: quad.c:1234
QUAD_1D_P5_pts
static FLOAT QUAD_1D_P5_pts[Length(QUAD_1D_P5_wts) *2]
Definition: quad.c:73
QUAD_1D_P7_pts
static FLOAT QUAD_1D_P7_pts[Length(QUAD_1D_P7_wts) *2]
Definition: quad.c:93
QUAD_2D_P21_pts
static FLOAT QUAD_2D_P21_pts[Length(QUAD_2D_P21_wts) *3]
Definition: quad.c:1030
QUAD_2D_P1_wts
static FLOAT QUAD_2D_P1_wts[]
Definition: quad.c:270
QUAD_1D_P1_
QUAD QUAD_1D_P1_
Definition: quad.c:42
QUAD_1D_P13_wts
static FLOAT QUAD_1D_P13_wts[]
Definition: quad.c:150
QUAD_1D_P9_pts
static FLOAT QUAD_1D_P9_pts[Length(QUAD_1D_P9_wts) *2]
Definition: quad.c:114
QUAD_2D_P1_pts
static FLOAT QUAD_2D_P1_pts[Length(QUAD_2D_P1_wts) *3]
Definition: quad.c:273
QUAD_2D_P6_
QUAD QUAD_2D_P6_
Definition: quad.c:396
QUAD_2D_P2_
QUAD QUAD_2D_P2_
Definition: quad.c:292
QUAD_2D_P14_wts
static FLOAT QUAD_2D_P14_wts[]
Definition: quad.c:653
Perm4
#define Perm4(a)
Definition: quad.h:173
QUAD_3D_P10_
QUAD QUAD_3D_P10_
Definition: quad.c:1376
QUAD_3D_P9_pts
static FLOAT QUAD_3D_P9_pts[Length(QUAD_3D_P9_wts) *4]
Definition: quad.c:1324
QUAD_2D_P9_wts
static FLOAT QUAD_2D_P9_wts[]
Definition: quad.c:494
QUAD_3D_P14_
QUAD QUAD_3D_P14_
Definition: quad.c:1591
QUAD_1D_P3_wts
static FLOAT QUAD_1D_P3_wts[]
Definition: quad.c:52
Perm3
#define Perm3(a)
Definition: quad.h:158
QUAD_2D_P16_wts
static FLOAT QUAD_2D_P16_wts[]
Definition: quad.c:740
QUAD_2D_P9_pts
static FLOAT QUAD_2D_P9_pts[Length(QUAD_2D_P9_wts) *3]
Definition: quad.c:502
QUAD_3D_P8_wts
static FLOAT QUAD_3D_P8_wts[]
Definition: quad.c:1284
QUAD_2D_P7_
QUAD QUAD_2D_P7_
Definition: quad.c:434
QUAD_2D_P10_pts
static FLOAT QUAD_2D_P10_pts[Length(QUAD_2D_P10_wts) *3]
Definition: quad.c:531
Perm22
#define Perm22(a)
Definition: quad.h:180
QUAD_3D_P6_pts
static FLOAT QUAD_3D_P6_pts[Length(QUAD_3D_P6_wts) *4]
Definition: quad.c:1240
QUAD_2D_P14_
QUAD QUAD_2D_P14_
Definition: quad.c:685
QUAD_1D_P21_wts
static FLOAT QUAD_1D_P21_wts[]
Definition: quad.c:242
QUAD_1D_P21_
QUAD QUAD_1D_P21_
Definition: quad.c:258
QUAD_1D_P7_wts
static FLOAT QUAD_1D_P7_wts[]
Definition: quad.c:88
QUAD_3D_P7_pts
static FLOAT QUAD_3D_P7_pts[Length(QUAD_3D_P7_wts) *4]
Definition: quad.c:1265
QUAD_3D_P2_
QUAD QUAD_3D_P2_
Definition: quad.c:1098
Perm21
#define Perm21(a)
Definition: quad.h:160
QUAD_1D_P15_wts
static FLOAT QUAD_1D_P15_wts[]
Definition: quad.c:172
QUAD_2D_P10_
QUAD QUAD_2D_P10_
Definition: quad.c:542
QUAD_2D_P17_wts
static FLOAT QUAD_2D_P17_wts[]
Definition: quad.c:786
QUAD_3D_P14_wts
static FLOAT QUAD_3D_P14_wts[]
Definition: quad.c:1537
QUAD_2D_P19_wts
static FLOAT QUAD_2D_P19_wts[]
Definition: quad.c:891
Perm111
#define Perm111(a, b)
Definition: quad.h:164
QUAD_3D_P4_
QUAD QUAD_3D_P4_
Definition: quad.c:1172
Dup111
#define Dup111(w)
Definition: quad.h:170
QUAD_2D_P15_pts
static FLOAT QUAD_2D_P15_pts[Length(QUAD_2D_P15_wts) *3]
Definition: quad.c:710
QUAD_2D_P13_wts
static FLOAT QUAD_2D_P13_wts[]
Definition: quad.c:617
QUAD_1D_P17_wts
static FLOAT QUAD_1D_P17_wts[]
Definition: quad.c:194
Perm211
#define Perm211(a, b)
Definition: quad.h:187
QUAD_1D_P19_wts
static FLOAT QUAD_1D_P19_wts[]
Definition: quad.c:218
QUAD_2D_P17_pts
static FLOAT QUAD_2D_P17_pts[Length(QUAD_2D_P17_wts) *3]
Definition: quad.c:802
QUAD_2D_P8_pts
static FLOAT QUAD_2D_P8_pts[Length(QUAD_2D_P8_wts) *3]
Definition: quad.c:451
QUAD_3D_P12_wts
static FLOAT QUAD_3D_P12_wts[]
Definition: quad.c:1430
QUAD_3D_P10_wts
static FLOAT QUAD_3D_P10_wts[]
Definition: quad.c:1348
QUAD_3D_P14_pts
static FLOAT QUAD_3D_P14_pts[Length(QUAD_3D_P14_wts) *4]
Definition: quad.c:1555
QUAD_2D_P2_wts
static FLOAT QUAD_2D_P2_wts[]
Definition: quad.c:286
QUAD_3D_P13_pts
static FLOAT QUAD_3D_P13_pts[Length(QUAD_3D_P13_wts) *4]
Definition: quad.c:1498
QUAD_2D_P11_pts
static FLOAT QUAD_2D_P11_pts[Length(QUAD_2D_P11_wts) *3]
Definition: quad.c:562
QUAD_3D_P7_wts
static FLOAT QUAD_3D_P7_wts[]
Definition: quad.c:1258
QUAD_1D_P3_
QUAD QUAD_1D_P3_
Definition: quad.c:59
QUAD_1D_P5_wts
static FLOAT QUAD_1D_P5_wts[]
Definition: quad.c:69
QUAD_2D_P15_wts
static FLOAT QUAD_2D_P15_wts[]
Definition: quad.c:695
QUAD_3D_P5_pts
static FLOAT QUAD_3D_P5_pts[Length(QUAD_3D_P5_wts) *4]
Definition: quad.c:1218
Perm31
#define Perm31(a)
Definition: quad.h:175
quad.h