-
Notifications
You must be signed in to change notification settings - Fork 4
/
Compadre_Quadrature.hpp
3301 lines (3255 loc) · 176 KB
/
Compadre_Quadrature.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
#ifndef _COMPADRE_QUADRATUREMANAGER_HPP_
#define _COMPADRE_QUADRATUREMANAGER_HPP_
#include "Compadre_Config.h"
#include "Compadre_Typedefs.hpp"
#include "Compadre_Utilities.hpp"
namespace Compadre {
// ENUM for quadrature types
enum QuadratureType : int {INVALID, LINE, TRI, QUAD, TET, HEX};
//! Quadrature
/*!
* This class sets and manages quadrature orders, rules, etc...
*/
class Quadrature {
protected:
bool _is_initialized;
int _number_of_quadrature_points;
int _order_of_quadrature_points;
int _dimension_of_quadrature_points;
Kokkos::View<double*, layout_right> _quadrature_weights;
Kokkos::View<double**, layout_right> _parameterized_quadrature_sites;
QuadratureType _qt;
/** @name Private Modifiers
* Private function because information lives on the device
*/
///@{
//! Generates quadrature
void generateQuadrature(const int order, const int dimension) {
std::vector<int> oneDNumPointsFromOrder = {1, 1, 2, 2, 3, 3, 4, 4, 5, 5};
std::vector<int> twoDNumPointsFromOrder = {1, 1, 3, 4, 6, 7, 12, 13, 16, 19, 24, 27, 32, 36, 42, 55, 61, 66, 73, 78};
if (dimension == 0) {
_number_of_quadrature_points = 0;
} else if (dimension == 1) {
_number_of_quadrature_points = oneDNumPointsFromOrder[order];
} else if (dimension == 2) {
_number_of_quadrature_points = twoDNumPointsFromOrder[order];
} else {
compadre_assert_release(false && "Higher than 2D quadrature not currently supported.");
}
_quadrature_weights = decltype(_quadrature_weights)("quadrature weights", _number_of_quadrature_points);
_parameterized_quadrature_sites = decltype(_parameterized_quadrature_sites)("quadrature sites", _number_of_quadrature_points, dimension);
decltype(_quadrature_weights)::HostMirror quadrature_weights = create_mirror_view(_quadrature_weights);
decltype(_parameterized_quadrature_sites)::HostMirror parameterized_quadrature_sites = create_mirror_view(_parameterized_quadrature_sites);
if (dimension == 1) {
switch (_number_of_quadrature_points) {
case 1:
quadrature_weights(0) = 1.0;
parameterized_quadrature_sites(0,0) = 0.5;
break;
case 2:
quadrature_weights(0) = 0.5;
quadrature_weights(1) = 0.5;
parameterized_quadrature_sites(0,0) = 0.5*(1-std::sqrt(1./3.));
parameterized_quadrature_sites(1,0) = 0.5*(1+std::sqrt(1./3.));
break;
case 3:
quadrature_weights(0) = 2.5/9.;
quadrature_weights(1) = 2.5/9;
quadrature_weights(2) = 4./9.;
parameterized_quadrature_sites(0,0) = 0.5*(1-std::sqrt(3./5.));
parameterized_quadrature_sites(1,0) = 0.5*(1+std::sqrt(3./5.));
parameterized_quadrature_sites(2,0) = 0.5;
break;
case 4:
quadrature_weights(0) = (18+std::sqrt(30))/72.;
quadrature_weights(1) = (18+std::sqrt(30))/72.;
quadrature_weights(2) = (18-std::sqrt(30))/72.;
quadrature_weights(3) = (18-std::sqrt(30))/72.;
parameterized_quadrature_sites(0,0) = 0.5*(1-std::sqrt(3./7.-2./7.*std::sqrt(6./5.)));
parameterized_quadrature_sites(1,0) = 0.5*(1+std::sqrt(3./7.-2./7.*std::sqrt(6./5.)));
parameterized_quadrature_sites(2,0) = 0.5*(1-std::sqrt(3./7.+2./7.*std::sqrt(6./5.)));
parameterized_quadrature_sites(3,0) = 0.5*(1+std::sqrt(3./7.+2./7.*std::sqrt(6./5.)));
break;
case 5:
quadrature_weights(0) = 128./450.;
quadrature_weights(1) = (322+13*std::sqrt(70))/1800.;
quadrature_weights(2) = (322+13*std::sqrt(70))/1800.;
quadrature_weights(3) = (322-13*std::sqrt(70))/1800.;
quadrature_weights(4) = (322-13*std::sqrt(70))/1800.;
parameterized_quadrature_sites(0,0) = 0.5;
parameterized_quadrature_sites(1,0) = 0.5*(1+1./3.*std::sqrt(5-2*std::sqrt(10./7.)));
parameterized_quadrature_sites(2,0) = 0.5*(1-1./3.*std::sqrt(5-2*std::sqrt(10./7.)));
parameterized_quadrature_sites(3,0) = 0.5*(1+1./3.*std::sqrt(5+2*std::sqrt(10./7.)));
parameterized_quadrature_sites(4,0) = 0.5*(1-1./3.*std::sqrt(5+2*std::sqrt(10./7.)));
break;
default:
compadre_assert_release(false && "Unsupported number of quadrature points.");
}
} else if (dimension == 2) {
switch (_number_of_quadrature_points) {
case 1:
quadrature_weights(0) = 0.5;
parameterized_quadrature_sites(0,0) = 1./3.;
parameterized_quadrature_sites(0,1) = 1./3.;
break;
case 3:
quadrature_weights(0) = 1./6.;
quadrature_weights(1) = 1./6.;
quadrature_weights(2) = 1./6.;
//{{1./6., 1./6., 0.0},
parameterized_quadrature_sites(0,0) = 1./6.;
parameterized_quadrature_sites(0,1) = 1./6.;
//{1./6., 2./3., 0.0},
parameterized_quadrature_sites(1,0) = 1./6.;
parameterized_quadrature_sites(1,1) = 2./3.;
//{2./3., 1./6., 0.0}},
parameterized_quadrature_sites(2,0) = 2./3.;
parameterized_quadrature_sites(2,1) = 1./6.;
break;
case 4:
quadrature_weights(0) = -9./32.;
quadrature_weights(1) = 25./96.;
quadrature_weights(2) = 25./96.;
quadrature_weights(3) = 25./96.;
//{1./3., 1./3., 0.0},
parameterized_quadrature_sites(0,0) = 1./3.;
parameterized_quadrature_sites(0,1) = 1./3.;
//{1./5., 1./5., 0.0},
parameterized_quadrature_sites(1,0) = 1./5.;
parameterized_quadrature_sites(1,1) = 1./5.;
//{1./5., 3./5., 0.0},
parameterized_quadrature_sites(2,0) = 1./5.;
parameterized_quadrature_sites(2,1) = 3./5.;
//{3./5., 1./5., 0.0}},
parameterized_quadrature_sites(3,0) = 3./5.;
parameterized_quadrature_sites(3,1) = 1./5.;
break;
case 6:
quadrature_weights(0) = 1.1169079483900573053953942803038657817028e-1;
quadrature_weights(1) = 1.1169079483900573053953942803038657817028e-1;
quadrature_weights(2) = 1.1169079483900573053953942803038657817028e-1;
quadrature_weights(3) = 5.4975871827660936395761590801109078322738e-2;
quadrature_weights(4) = 5.4975871827660936395761590801109078322738e-2;
quadrature_weights(5) = 5.4975871827660936395761590801109078322738e-2;
//{4.4594849091596487577332043252695176084800e-1, 4.4594849091596487577332043252695176084800e-1, 0.0},
parameterized_quadrature_sites(0,0) = 4.4594849091596487577332043252695176084800e-1;
parameterized_quadrature_sites(0,1) = 4.4594849091596487577332043252695176084800e-1;
//{4.4594849091596487577332043252695176084800e-1, 1.0810301816807024845335913494609647830400e-1, 0.0},
parameterized_quadrature_sites(1,0) = 4.4594849091596487577332043252695176084800e-1;
parameterized_quadrature_sites(1,1) = 1.0810301816807024845335913494609647830400e-1;
//{1.0810301816807024845335913494609647830400e-1, 4.4594849091596487577332043252695176084800e-1, 0.0},
parameterized_quadrature_sites(2,0) = 1.0810301816807024845335913494609647830400e-1;
parameterized_quadrature_sites(2,1) = 4.4594849091596487577332043252695176084800e-1;
//{9.1576213509770745141706146463816673424873e-2, 9.1576213509770745141706146463816673424873e-2, 0.0},
parameterized_quadrature_sites(3,0) = 9.1576213509770745141706146463816673424873e-2;
parameterized_quadrature_sites(3,1) = 9.1576213509770745141706146463816673424873e-2;
//{9.1576213509770745141706146463816673424873e-2, 8.1684757298045850971658770707236665315025e-1, 0.0},
parameterized_quadrature_sites(4,0) = 9.1576213509770745141706146463816673424873e-2;
parameterized_quadrature_sites(4,1) = 8.1684757298045850971658770707236665315025e-1;
//{8.1684757298045850971658770707236665315025e-1, 9.1576213509770745141706146463816673424873e-2, 0.0}},
parameterized_quadrature_sites(5,0) = 8.1684757298045850971658770707236665315025e-1;
parameterized_quadrature_sites(5,1) = 9.1576213509770745141706146463816673424873e-2;
break;
case 7:
parameterized_quadrature_sites(0,0) = 3.3333333333333333333333333333333333333333e-1;
parameterized_quadrature_sites(0,1) = 3.3333333333333333333333333333333333333333e-1;
parameterized_quadrature_sites(1,0) = 1.0128650732345633880098736191512382805558e-1;
parameterized_quadrature_sites(1,1) = 1.0128650732345633880098736191512382805558e-1;
parameterized_quadrature_sites(2,0) = 7.9742698535308732239802527616975234388885e-1;
parameterized_quadrature_sites(2,1) = 1.0128650732345633880098736191512382805558e-1;
parameterized_quadrature_sites(3,0) = 1.0128650732345633880098736191512382805558e-1;
parameterized_quadrature_sites(3,1) = 7.9742698535308732239802527616975234388885e-1;
parameterized_quadrature_sites(4,0) = 4.7014206410511508977044120951344760051585e-1;
parameterized_quadrature_sites(4,1) = 4.7014206410511508977044120951344760051585e-1;
parameterized_quadrature_sites(5,0) = 5.9715871789769820459117580973104798968293e-2;
parameterized_quadrature_sites(5,1) = 4.7014206410511508977044120951344760051585e-1;
parameterized_quadrature_sites(6,0) = 4.7014206410511508977044120951344760051585e-1;
parameterized_quadrature_sites(6,1) = 5.9715871789769820459117580973104798968293e-2;
quadrature_weights(0) = 1.1250000000000000000000000000000000000000e-1;
quadrature_weights(1) = 6.2969590272413576297841972750090666828820e-2;
quadrature_weights(2) = 6.2969590272413576297841972750090666828820e-2;
quadrature_weights(3) = 6.2969590272413576297841972750090666828820e-2;
quadrature_weights(4) = 6.6197076394253090368824693916575999837847e-2;
quadrature_weights(5) = 6.6197076394253090368824693916575999837847e-2;
quadrature_weights(6) = 6.6197076394253090368824693916575999837847e-2;
break;
case 12:
parameterized_quadrature_sites(0,0) = 6.3089014491502228340331602870819157341003e-2;
parameterized_quadrature_sites(0,1) = 6.3089014491502228340331602870819157341003e-2;
parameterized_quadrature_sites(1,0) = 6.3089014491502228340331602870819157341003e-2;
parameterized_quadrature_sites(1,1) = 8.7382197101699554331933679425836168531799e-1;
parameterized_quadrature_sites(2,0) = 8.7382197101699554331933679425836168531799e-1;
parameterized_quadrature_sites(2,1) = 6.3089014491502228340331602870819157341003e-2;
parameterized_quadrature_sites(3,0) = 2.4928674517091042129163855310701907608796e-1;
parameterized_quadrature_sites(3,1) = 2.4928674517091042129163855310701907608796e-1;
parameterized_quadrature_sites(4,0) = 2.4928674517091042129163855310701907608796e-1;
parameterized_quadrature_sites(4,1) = 5.0142650965817915741672289378596184782407e-1;
parameterized_quadrature_sites(5,0) = 5.0142650965817915741672289378596184782407e-1;
parameterized_quadrature_sites(5,1) = 2.4928674517091042129163855310701907608796e-1;
parameterized_quadrature_sites(6,0) = 3.1035245103378441286759566723265117140082e-1;
parameterized_quadrature_sites(6,1) = 5.3145049844816939902261738355299128796183e-2;
parameterized_quadrature_sites(7,0) = 6.3650249912139865667831578657006182134850e-1;
parameterized_quadrature_sites(7,1) = 3.1035245103378439596843454179854003165774e-1;
parameterized_quadrature_sites(8,0) = 5.3145049844816930454088546197287007250682e-2;
parameterized_quadrature_sites(8,1) = 6.3650249912139866412930371984616083954608e-1;
parameterized_quadrature_sites(9,0) = 5.3145049844816939902261738355299128796183e-2;
parameterized_quadrature_sites(9,1) = 3.1035245103378441286759566723265117140082e-1;
parameterized_quadrature_sites(10,0) = 6.3650249912139866412930371984616083954608e-1;
parameterized_quadrature_sites(10,1) = 5.3145049844816930454088546197287007250682e-2;
parameterized_quadrature_sites(11,0) = 3.1035245103378439596843454179854003165774e-1;
parameterized_quadrature_sites(11,1) = 6.3650249912139865667831578657006182134850e-1;
quadrature_weights(0) = 2.5422453185103408460468404553434492023395e-2;
quadrature_weights(1) = 2.5422453185103408460468404553434492023395e-2;
quadrature_weights(2) = 2.5422453185103408460468404553434492023395e-2;
quadrature_weights(3) = 5.8393137863189683012644805692789720663043e-2;
quadrature_weights(4) = 5.8393137863189683012644805692789720663043e-2;
quadrature_weights(5) = 5.8393137863189683012644805692789720663043e-2;
quadrature_weights(6) = 4.1425537809186787596776728210221226990114e-2;
quadrature_weights(7) = 4.1425537809186787596776728210221226990114e-2;
quadrature_weights(8) = 4.1425537809186787596776728210221226990114e-2;
quadrature_weights(9) = 4.1425537809186787596776728210221226990114e-2;
quadrature_weights(10) = 4.1425537809186787596776728210221226990114e-2;
quadrature_weights(11) = 4.1425537809186787596776728210221226990114e-2;
break;
case 13:
parameterized_quadrature_sites(0,0) = 3.33333333333333e-01;
parameterized_quadrature_sites(0,1) = 3.33333333333333e-01;
parameterized_quadrature_sites(1,0) = 2.60345966079040e-01;
parameterized_quadrature_sites(1,1) = 2.60345966079040e-01;
parameterized_quadrature_sites(2,0) = 2.60345966079040e-01;
parameterized_quadrature_sites(2,1) = 4.79308067841920e-01;
parameterized_quadrature_sites(3,0) = 4.79308067841920e-01;
parameterized_quadrature_sites(3,1) = 2.60345966079040e-01;
parameterized_quadrature_sites(4,0) = 6.51301029022160e-02;
parameterized_quadrature_sites(4,1) = 6.51301029022160e-02;
parameterized_quadrature_sites(5,0) = 6.51301029022160e-02;
parameterized_quadrature_sites(5,1) = 8.69739794195568e-01;
parameterized_quadrature_sites(6,0) = 8.69739794195568e-01;
parameterized_quadrature_sites(6,1) = 6.51301029022160e-02;
parameterized_quadrature_sites(7,0) = 3.12865496004874e-01;
parameterized_quadrature_sites(7,1) = 6.38444188569810e-01;
parameterized_quadrature_sites(8,0) = 6.38444188569810e-01;
parameterized_quadrature_sites(8,1) = 4.86903154253160e-02;
parameterized_quadrature_sites(9,0) = 4.86903154253160e-02;
parameterized_quadrature_sites(9,1) = 3.12865496004874e-01;
parameterized_quadrature_sites(10,0) = 3.12865496004874e-01;
parameterized_quadrature_sites(10,1) = 4.86903154253160e-02;
parameterized_quadrature_sites(11,0) = 6.38444188569810e-01;
parameterized_quadrature_sites(11,1) = 3.12865496004874e-01;
parameterized_quadrature_sites(12,0) = 4.86903154253160e-02;
parameterized_quadrature_sites(12,1) = 6.38444188569810e-01;
quadrature_weights(0) = -7.47850222338410e-02;
quadrature_weights(1) = 8.78076287166040e-02;
quadrature_weights(2) = 8.78076287166040e-02;
quadrature_weights(3) = 8.78076287166040e-02;
quadrature_weights(4) = 2.66736178044190e-02;
quadrature_weights(5) = 2.66736178044190e-02;
quadrature_weights(6) = 2.66736178044190e-02;
quadrature_weights(7) = 3.85568804451285e-02;
quadrature_weights(8) = 3.85568804451285e-02;
quadrature_weights(9) = 3.85568804451285e-02;
quadrature_weights(10) = 3.85568804451285e-02;
quadrature_weights(11) = 3.85568804451285e-02;
quadrature_weights(12) = 3.85568804451285e-02;
break;
case 16:
parameterized_quadrature_sites(0,0) = 3.33333333333333e-01;
parameterized_quadrature_sites(0,1) = 3.33333333333333e-01;
parameterized_quadrature_sites(1,0) = 4.59292588292723e-01;
parameterized_quadrature_sites(1,1) = 4.59292588292723e-01;
parameterized_quadrature_sites(2,0) = 4.59292588292723e-01;
parameterized_quadrature_sites(2,1) = 8.14148234145540e-02;
parameterized_quadrature_sites(3,0) = 8.14148234145540e-02;
parameterized_quadrature_sites(3,1) = 4.59292588292723e-01;
parameterized_quadrature_sites(4,0) = 1.70569307751760e-01;
parameterized_quadrature_sites(4,1) = 1.70569307751760e-01;
parameterized_quadrature_sites(5,0) = 1.70569307751760e-01;
parameterized_quadrature_sites(5,1) = 6.58861384496480e-01;
parameterized_quadrature_sites(6,0) = 6.58861384496480e-01;
parameterized_quadrature_sites(6,1) = 1.70569307751760e-01;
parameterized_quadrature_sites(7,0) = 5.05472283170310e-02;
parameterized_quadrature_sites(7,1) = 5.05472283170310e-02;
parameterized_quadrature_sites(8,0) = 5.05472283170310e-02;
parameterized_quadrature_sites(8,1) = 8.98905543365938e-01;
parameterized_quadrature_sites(9,0) = 8.98905543365938e-01;
parameterized_quadrature_sites(9,1) = 5.05472283170310e-02;
parameterized_quadrature_sites(10,0) = 2.63112829634638e-01;
parameterized_quadrature_sites(10,1) = 7.28492392955404e-01;
parameterized_quadrature_sites(11,0) = 7.28492392955404e-01;
parameterized_quadrature_sites(11,1) = 8.39477740995798e-03;
parameterized_quadrature_sites(12,0) = 8.39477740995798e-03;
parameterized_quadrature_sites(12,1) = 2.63112829634638e-01;
parameterized_quadrature_sites(13,0) = 2.63112829634638e-01;
parameterized_quadrature_sites(13,1) = 8.39477740995798e-03;
parameterized_quadrature_sites(14,0) = 7.28492392955404e-01;
parameterized_quadrature_sites(14,1) = 2.63112829634638e-01;
parameterized_quadrature_sites(15,0) = 8.39477740995798e-03;
parameterized_quadrature_sites(15,1) = 7.28492392955404e-01;
quadrature_weights(0) = 7.21578038388935e-02;
quadrature_weights(1) = 4.75458171336425e-02;
quadrature_weights(2) = 4.75458171336425e-02;
quadrature_weights(3) = 4.75458171336425e-02;
quadrature_weights(4) = 5.16086852673590e-02;
quadrature_weights(5) = 5.16086852673590e-02;
quadrature_weights(6) = 5.16086852673590e-02;
quadrature_weights(7) = 1.62292488115990e-02;
quadrature_weights(8) = 1.62292488115988e-02;
quadrature_weights(9) = 1.62292488115990e-02;
quadrature_weights(10) = 1.36151570872175e-02;
quadrature_weights(11) = 1.36151570872175e-02;
quadrature_weights(12) = 1.36151570872175e-02;
quadrature_weights(13) = 1.36151570872175e-02;
quadrature_weights(14) = 1.36151570872175e-02;
quadrature_weights(15) = 1.36151570872175e-02;
break;
case 19:
parameterized_quadrature_sites(0,0) = 3.33333333333333e-01;
parameterized_quadrature_sites(0,1) = 3.33333333333333e-01;
parameterized_quadrature_sites(1,0) = 4.89682519198738e-01;
parameterized_quadrature_sites(1,1) = 4.89682519198738e-01;
parameterized_quadrature_sites(2,0) = 4.89682519198738e-01;
parameterized_quadrature_sites(2,1) = 2.06349616025250e-02;
parameterized_quadrature_sites(3,0) = 2.06349616025250e-02;
parameterized_quadrature_sites(3,1) = 4.89682519198738e-01;
parameterized_quadrature_sites(4,0) = 4.37089591492937e-01;
parameterized_quadrature_sites(4,1) = 4.37089591492937e-01;
parameterized_quadrature_sites(5,0) = 4.37089591492937e-01;
parameterized_quadrature_sites(5,1) = 1.25820817014127e-01;
parameterized_quadrature_sites(6,0) = 1.25820817014127e-01;
parameterized_quadrature_sites(6,1) = 4.37089591492937e-01;
parameterized_quadrature_sites(7,0) = 1.88203535619033e-01;
parameterized_quadrature_sites(7,1) = 1.88203535619033e-01;
parameterized_quadrature_sites(8,0) = 1.88203535619033e-01;
parameterized_quadrature_sites(8,1) = 6.23592928761935e-01;
parameterized_quadrature_sites(9,0) = 6.23592928761935e-01;
parameterized_quadrature_sites(9,1) = 1.88203535619033e-01;
parameterized_quadrature_sites(10,0) = 4.47295133944530e-02;
parameterized_quadrature_sites(10,1) = 4.47295133944530e-02;
parameterized_quadrature_sites(11,0) = 4.47295133944530e-02;
parameterized_quadrature_sites(11,1) = 9.10540973211095e-01;
parameterized_quadrature_sites(12,0) = 9.10540973211095e-01;
parameterized_quadrature_sites(12,1) = 4.47295133944530e-02;
parameterized_quadrature_sites(13,0) = 2.21962989160766e-01;
parameterized_quadrature_sites(13,1) = 7.41198598784498e-01;
parameterized_quadrature_sites(14,0) = 7.41198598784498e-01;
parameterized_quadrature_sites(14,1) = 3.68384120547360e-02;
parameterized_quadrature_sites(15,0) = 3.68384120547360e-02;
parameterized_quadrature_sites(15,1) = 2.21962989160766e-01;
parameterized_quadrature_sites(16,0) = 2.21962989160766e-01;
parameterized_quadrature_sites(16,1) = 3.68384120547360e-02;
parameterized_quadrature_sites(17,0) = 7.41198598784498e-01;
parameterized_quadrature_sites(17,1) = 2.21962989160766e-01;
parameterized_quadrature_sites(18,0) = 3.68384120547360e-02;
parameterized_quadrature_sites(18,1) = 7.41198598784498e-01;
quadrature_weights(0) = 4.85678981413995e-02;
quadrature_weights(1) = 1.56673501135695e-02;
quadrature_weights(2) = 1.56673501135695e-02;
quadrature_weights(3) = 1.56673501135695e-02;
quadrature_weights(4) = 3.89137705023870e-02;
quadrature_weights(5) = 3.89137705023870e-02;
quadrature_weights(6) = 3.89137705023870e-02;
quadrature_weights(7) = 3.98238694636050e-02;
quadrature_weights(8) = 3.98238694636050e-02;
quadrature_weights(9) = 3.98238694636050e-02;
quadrature_weights(10) = 1.27888378293490e-02;
quadrature_weights(11) = 1.27888378293490e-02;
quadrature_weights(12) = 1.27888378293490e-02;
quadrature_weights(13) = 2.16417696886445e-02;
quadrature_weights(14) = 2.16417696886445e-02;
quadrature_weights(15) = 2.16417696886445e-02;
quadrature_weights(16) = 2.16417696886445e-02;
quadrature_weights(17) = 2.16417696886445e-02;
quadrature_weights(18) = 2.16417696886445e-02;
break;
case 24:
parameterized_quadrature_sites(0,0) = 3.8102570854643002e-03;
parameterized_quadrature_sites(0,1) = 8.6854386943076545e-01;
parameterized_quadrature_sites(1,0) = 8.3865349500109043e-01;
parameterized_quadrature_sites(1,1) = 1.6134650499890960e-01;
parameterized_quadrature_sites(2,0) = 0.0e-00;
parameterized_quadrature_sites(2,1) = 3.9366774470722010e-01;
parameterized_quadrature_sites(3,0) = 7.7757518429429107e-01;
parameterized_quadrature_sites(3,1) = 0.0e-00;
parameterized_quadrature_sites(4,0) = 4.7768381772022403e-02;
parameterized_quadrature_sites(4,1) = 9.2899486985787905e-01;
parameterized_quadrature_sites(5,0) = 1.0939142057119900e-02;
parameterized_quadrature_sites(5,1) = 1.7690730625559031e-01;
parameterized_quadrature_sites(6,0) = 4.6374383867430541e-01;
parameterized_quadrature_sites(6,1) = 0.0e-00;
parameterized_quadrature_sites(7,0) = 9.3049846900263089e-01;
parameterized_quadrature_sites(7,1) = 2.9553592846822900e-02;
parameterized_quadrature_sites(8,0) = 3.9099745550423302e-02;
parameterized_quadrature_sites(8,1) = 3.5319656252586103e-02;
parameterized_quadrature_sites(9,0) = 4.8798437805397499e-01;
parameterized_quadrature_sites(9,1) = 5.0365825075943971e-01;
parameterized_quadrature_sites(10,0) = 1.9305903224251941e-01;
parameterized_quadrature_sites(10,1) = 3.0573404093099301e-02;
parameterized_quadrature_sites(11,0) = 2.2376358774275851e-01;
parameterized_quadrature_sites(11,1) = 7.4726591728868819e-01;
parameterized_quadrature_sites(12,0) = 3.6036266787907702e-02;
parameterized_quadrature_sites(12,1) = 6.3491832379200652e-01;
parameterized_quadrature_sites(13,0) = 7.6777680170023954e-01;
parameterized_quadrature_sites(13,1) = 1.0614642990290001e-01;
parameterized_quadrature_sites(14,0) = 1.0954959855585469e-01;
parameterized_quadrature_sites(14,1) = 7.5329402776254240e-01;
parameterized_quadrature_sites(15,0) = 6.4203365318662664e-01;
parameterized_quadrature_sites(15,1) = 2.9530445535851102e-01;
parameterized_quadrature_sites(16,0) = 1.0999439055630450e-01;
parameterized_quadrature_sites(16,1) = 1.6929927488966459e-01;
parameterized_quadrature_sites(17,0) = 3.3947290311800549e-01;
parameterized_quadrature_sites(17,1) = 9.5379208487721703e-02;
parameterized_quadrature_sites(18,0) = 8.4198522115543697e-02;
parameterized_quadrature_sites(18,1) = 3.8729657913960353e-01;
parameterized_quadrature_sites(19,0) = 5.7966325105486349e-01;
parameterized_quadrature_sites(19,1) = 8.0491894656105595e-02;
parameterized_quadrature_sites(20,0) = 3.6419744430339263e-01;
parameterized_quadrature_sites(20,1) = 5.2433682558924433e-01;
parameterized_quadrature_sites(21,0) = 2.7586334089315973e-01;
parameterized_quadrature_sites(21,1) = 2.6481531651496770e-01;
parameterized_quadrature_sites(22,0) = 2.0776116575484829e-01;
parameterized_quadrature_sites(22,1) = 5.0550507373529086e-01;
parameterized_quadrature_sites(23,0) = 4.8123289062464247e-01;
parameterized_quadrature_sites(23,1) = 2.7542385024412980e-01;
quadrature_weights(0) = 5.3333456379563004e-03;
quadrature_weights(1) = 5.5334733911235499e-03;
quadrature_weights(2) = 5.9501524071177998e-03;
quadrature_weights(3) = 6.6995403929284002e-03;
quadrature_weights(4) = 7.3041646115608498e-03;
quadrature_weights(5) = 7.4233118233402503e-03;
quadrature_weights(6) = 7.5781309587828498e-03;
quadrature_weights(7) = 7.6015470130063496e-03;
quadrature_weights(8) = 8.8279222964811003e-03;
quadrature_weights(9) = 9.7797061087609508e-03;
quadrature_weights(10) = 1.5707351180334426e-02;
quadrature_weights(11) = 1.6151301011728625e-02;
quadrature_weights(12) = 2.1481164696039650e-02;
quadrature_weights(13) = 2.6268329551205824e-02;
quadrature_weights(14) = 2.6365190704419499e-02;
quadrature_weights(15) = 2.7457802196927176e-02;
quadrature_weights(16) = 2.8987070299349601e-02;
quadrature_weights(17) = 3.0871122933097676e-02;
quadrature_weights(18) = 3.1343962650456775e-02;
quadrature_weights(19) = 3.3093067237629975e-02;
quadrature_weights(20) = 3.7039823668389947e-02;
quadrature_weights(21) = 4.2207221279855073e-02;
quadrature_weights(22) = 4.3362019313832399e-02;
quadrature_weights(23) = 4.7633278635674972e-02;
break;
case 27:
parameterized_quadrature_sites(0,0) = 3.7802163891336921e-01;
parameterized_quadrature_sites(0,1) = 6.1948431533135195e-01;
parameterized_quadrature_sites(1,0) = 3.2899822292186298e-02;
parameterized_quadrature_sites(1,1) = 9.3614893514675623e-01;
parameterized_quadrature_sites(2,0) = 9.3551434285897095e-01;
parameterized_quadrature_sites(2,1) = 3.3268560622678398e-02;
parameterized_quadrature_sites(3,0) = 3.4222771841359197e-02;
parameterized_quadrature_sites(3,1) = 3.2916403878999703e-02;
parameterized_quadrature_sites(4,0) = 1.4354532010930900e-02;
parameterized_quadrature_sites(4,1) = 3.9659731669586501e-01;
parameterized_quadrature_sites(5,0) = 2.2120535196161799e-02;
parameterized_quadrature_sites(5,1) = 1.6892970982290231e-01;
parameterized_quadrature_sites(6,0) = 8.1562969693268217e-01;
parameterized_quadrature_sites(6,1) = 2.6807150626772601e-02;
parameterized_quadrature_sites(7,0) = 2.7719522918618601e-02;
parameterized_quadrature_sites(7,1) = 8.1626233715968810e-01;
parameterized_quadrature_sites(8,0) = 1.7400571673032261e-01;
parameterized_quadrature_sites(8,1) = 2.5252704638304500e-02;
parameterized_quadrature_sites(9,0) = 3.8913981113319362e-01;
parameterized_quadrature_sites(9,1) = 2.2592651051306600e-02;
parameterized_quadrature_sites(10,0) = 8.0364834053903877e-01;
parameterized_quadrature_sites(10,1) = 1.6655614492060569e-01;
parameterized_quadrature_sites(11,0) = 1.6429286715713459e-01;
parameterized_quadrature_sites(11,1) = 8.0454974747615537e-01;
parameterized_quadrature_sites(12,0) = 6.1758873171277151e-01;
parameterized_quadrature_sites(12,1) = 2.5660186833052399e-02;
parameterized_quadrature_sites(13,0) = 2.6297199713764201e-02;
parameterized_quadrature_sites(13,1) = 6.1924873232110123e-01;
parameterized_quadrature_sites(14,0) = 5.9895439629934211e-01;
parameterized_quadrature_sites(14,1) = 3.7272769861629101e-01;
parameterized_quadrature_sites(15,0) = 8.1721404855381805e-02;
parameterized_quadrature_sites(15,1) = 3.2719878157552901e-01;
parameterized_quadrature_sites(16,0) = 1.3035453031942690e-01;
parameterized_quadrature_sites(16,1) = 1.3667083534390509e-01;
parameterized_quadrature_sites(17,0) = 7.1027868107761583e-01;
parameterized_quadrature_sites(17,1) = 1.3828000204292321e-01;
parameterized_quadrature_sites(18,0) = 1.4118119730952799e-01;
parameterized_quadrature_sites(18,1) = 7.0099267949645228e-01;
parameterized_quadrature_sites(19,0) = 5.3141960154079959e-01;
parameterized_quadrature_sites(19,1) = 1.2417148586801489e-01;
parameterized_quadrature_sites(20,0) = 3.4992914334288650e-01;
parameterized_quadrature_sites(20,1) = 5.6938486195327997e-01;
parameterized_quadrature_sites(21,0) = 3.1909737814681871e-01;
parameterized_quadrature_sites(21,1) = 1.1698976413323441e-01;
parameterized_quadrature_sites(22,0) = 1.2454405910544100e-01;
parameterized_quadrature_sites(22,1) = 5.1353143433447235e-01;
parameterized_quadrature_sites(23,0) = 4.1132499178904658e-01;
parameterized_quadrature_sites(23,1) = 2.6677168071577739e-01;
parameterized_quadrature_sites(24,0) = 5.3634228112084714e-01;
parameterized_quadrature_sites(24,1) = 3.2081957909482989e-01;
parameterized_quadrature_sites(25,0) = 2.2789955884347499e-01;
parameterized_quadrature_sites(25,1) = 2.8790310224819649e-01;
parameterized_quadrature_sites(26,0) = 2.9133859436942361e-01;
parameterized_quadrature_sites(26,1) = 4.6494564773693992e-01;
quadrature_weights(0) = 5.6375356078552001e-03;
quadrature_weights(1) = 6.5529674260441251e-03;
quadrature_weights(2) = 6.6871546432313500e-03;
quadrature_weights(3) = 7.2740543402810501e-03;
quadrature_weights(4) = 9.1794421950682249e-03;
quadrature_weights(5) = 1.0688904048956826e-02;
quadrature_weights(6) = 1.1556190176810576e-02;
quadrature_weights(7) = 1.1821029782882325e-02;
quadrature_weights(8) = 1.2035150250304100e-02;
quadrature_weights(9) = 1.3361393587366349e-02;
quadrature_weights(10) = 1.3378318081626600e-02;
quadrature_weights(11) = 1.3797950075089925e-02;
quadrature_weights(12) = 1.4360888683763475e-02;
quadrature_weights(13) = 1.4717279053216750e-02;
quadrature_weights(14) = 1.6298436572453948e-02;
quadrature_weights(15) = 2.1298852449057524e-02;
quadrature_weights(16) = 2.2769129560075176e-02;
quadrature_weights(17) = 2.4595497454187175e-02;
quadrature_weights(18) = 2.6030267669060574e-02;
quadrature_weights(19) = 2.7060738237627526e-02;
quadrature_weights(20) = 2.7485999004421752e-02;
quadrature_weights(21) = 2.7495506358711074e-02;
quadrature_weights(22) = 2.8322942561349675e-02;
quadrature_weights(23) = 2.9305884203704700e-02;
quadrature_weights(24) = 3.1096575055627549e-02;
quadrature_weights(25) = 3.3071222942480799e-02;
quadrature_weights(26) = 3.4120689978745525e-02;
break;
case 32:
parameterized_quadrature_sites(0,0) = 9.2734897448394982e-01;
parameterized_quadrature_sites(0,1) = 0.0e-00;
parameterized_quadrature_sites(1,0) = 2.3551733249578700e-02;
parameterized_quadrature_sites(1,1) = 9.5526919357006035e-01;
parameterized_quadrature_sites(2,0) = 0.0e-00;
parameterized_quadrature_sites(2,1) = 8.5815888421533082e-01;
parameterized_quadrature_sites(3,0) = 9.4547507322097091e-01;
parameterized_quadrature_sites(3,1) = 4.3010560106405499e-02;
parameterized_quadrature_sites(4,0) = 1.5406460162685609e-01;
parameterized_quadrature_sites(4,1) = 8.4593539837314391e-01;
parameterized_quadrature_sites(5,0) = 0.0e-00;
parameterized_quadrature_sites(5,1) = 6.2731531923241179e-01;
parameterized_quadrature_sites(6,0) = 2.7110971356255800e-02;
parameterized_quadrature_sites(6,1) = 2.9754117496841800e-02;
parameterized_quadrature_sites(7,0) = 1.4604496167217570e-01;
parameterized_quadrature_sites(7,1) = 9.2296909059649008e-03;
parameterized_quadrature_sites(8,0) = 2.1152223383121900e-02;
parameterized_quadrature_sites(8,1) = 1.5557066896897950e-01;
parameterized_quadrature_sites(9,0) = 1.4566514788347000e-02;
parameterized_quadrature_sites(9,1) = 3.6384660446077510e-01;
parameterized_quadrature_sites(10,0) = 7.8860171922313160e-01;
parameterized_quadrature_sites(10,1) = 1.8920633061715941e-01;
parameterized_quadrature_sites(11,0) = 7.4918973979067949e-01;
parameterized_quadrature_sites(11,1) = 2.3088148766115799e-02;
parameterized_quadrature_sites(12,0) = 7.1871496101589105e-02;
parameterized_quadrature_sites(12,1) = 8.5431474947580432e-01;
parameterized_quadrature_sites(13,0) = 3.3212908394764512e-01;
parameterized_quadrature_sites(13,1) = 2.4506286636990001e-02;
parameterized_quadrature_sites(14,0) = 3.6118159118967208e-01;
parameterized_quadrature_sites(14,1) = 6.1600929617267497e-01;
parameterized_quadrature_sites(15,0) = 2.4345813394879970e-01;
parameterized_quadrature_sites(15,1) = 9.3448087604440996e-02;
parameterized_quadrature_sites(16,0) = 5.8168921474014745e-01;
parameterized_quadrature_sites(16,1) = 3.9316510319604808e-01;
parameterized_quadrature_sites(17,0) = 5.4444667627192522e-01;
parameterized_quadrature_sites(17,1) = 2.5716283623693902e-02;
parameterized_quadrature_sites(18,0) = 8.2600331401756000e-01;
parameterized_quadrature_sites(18,1) = 7.9955384841381302e-02;
parameterized_quadrature_sites(19,0) = 1.1638649906727730e-01;
parameterized_quadrature_sites(19,1) = 8.9602705800587407e-02;
parameterized_quadrature_sites(20,0) = 2.0376848107772980e-01;
parameterized_quadrature_sites(20,1) = 7.1788185898052326e-01;
parameterized_quadrature_sites(21,0) = 6.4413220382260494e-02;
parameterized_quadrature_sites(21,1) = 7.1008125956836521e-01;
parameterized_quadrature_sites(22,0) = 9.5428585810584596e-02;
parameterized_quadrature_sites(22,1) = 2.6077068256562902e-01;
parameterized_quadrature_sites(23,0) = 2.4498296509349021e-01;
parameterized_quadrature_sites(23,1) = 2.1117939909804931e-01;
parameterized_quadrature_sites(24,0) = 7.0566724344036796e-02;
parameterized_quadrature_sites(24,1) = 4.9732063377796598e-01;
parameterized_quadrature_sites(25,0) = 6.1938125736255578e-01;
parameterized_quadrature_sites(25,1) = 1.2512299505810390e-01;
parameterized_quadrature_sites(26,0) = 6.2768261568031403e-01;
parameterized_quadrature_sites(26,1) = 2.5015500335339208e-01;
parameterized_quadrature_sites(27,0) = 4.2260565743346001e-01;
parameterized_quadrature_sites(27,1) = 1.2953296900433620e-01;
parameterized_quadrature_sites(28,0) = 2.1078525939140391e-01;
parameterized_quadrature_sites(28,1) = 3.7986021093401962e-01;
parameterized_quadrature_sites(29,0) = 4.0896380449124481e-01;
parameterized_quadrature_sites(29,1) = 4.6631787462323071e-01;
parameterized_quadrature_sites(30,0) = 2.1377743253005960e-01;
parameterized_quadrature_sites(30,1) = 5.5802528953120256e-01;
parameterized_quadrature_sites(31,0) = 4.0978657777002531e-01;
parameterized_quadrature_sites(31,1) = 3.0141709320909299e-01;
quadrature_weights(0) = 2.4440249073300249e-03;
quadrature_weights(1) = 3.3379500136836750e-03;
quadrature_weights(2) = 3.4227673271718501e-03;
quadrature_weights(3) = 3.5598757180403499e-03;
quadrature_weights(4) = 3.8572461868124248e-03;
quadrature_weights(5) = 4.8273543712181750e-03;
quadrature_weights(6) = 5.2546633678012501e-03;
quadrature_weights(7) = 5.3404218288141498e-03;
quadrature_weights(8) = 9.2418429056154005e-03;
quadrature_weights(9) = 9.2727402108032757e-03;
quadrature_weights(10) = 1.0310002059841049e-02;
quadrature_weights(11) = 1.0842542708505725e-02;
quadrature_weights(12) = 1.1245373099579100e-02;
quadrature_weights(13) = 1.2452036600753851e-02;
quadrature_weights(14) = 1.2549586713842551e-02;
quadrature_weights(15) = 1.3971867159939951e-02;
quadrature_weights(16) = 1.4072779302606675e-02;
quadrature_weights(17) = 1.4084827229864975e-02;
quadrature_weights(18) = 1.5264586206036251e-02;
quadrature_weights(19) = 1.5287638802019450e-02;
quadrature_weights(20) = 1.9786802896485999e-02;
quadrature_weights(21) = 2.0640943697731274e-02;
quadrature_weights(22) = 2.2968921082895850e-02;
quadrature_weights(23) = 2.3749787662653600e-02;
quadrature_weights(24) = 2.4074402518453650e-02;
quadrature_weights(25) = 2.5482462438393926e-02;
quadrature_weights(26) = 2.6676041524410474e-02;
quadrature_weights(27) = 2.7073436306583775e-02;
quadrature_weights(28) = 2.9718916975567701e-02;
quadrature_weights(29) = 2.9994853663553051e-02;
quadrature_weights(30) = 3.1582273211328352e-02;
quadrature_weights(31) = 3.7611031301662198e-02;
break;
case 36:
parameterized_quadrature_sites(0,0) = 2.4293535159026700e-02;
parameterized_quadrature_sites(0,1) = 9.4930592938464031e-01;
parameterized_quadrature_sites(1,0) = 2.6519342772158901e-02;
parameterized_quadrature_sites(1,1) = 2.4269513064041098e-02;
parameterized_quadrature_sites(2,0) = 9.4921260235510574e-01;
parameterized_quadrature_sites(2,1) = 2.6506796643724899e-02;
parameterized_quadrature_sites(3,0) = 3.3775763749036999e-03;
parameterized_quadrature_sites(3,1) = 4.7673164123630779e-01;
parameterized_quadrature_sites(4,0) = 4.7576722981011582e-01;
parameterized_quadrature_sites(4,1) = 5.1989218291019390e-01;
parameterized_quadrature_sites(5,0) = 5.1907831934706850e-01;
parameterized_quadrature_sites(5,1) = 5.5912706202052003e-03;
parameterized_quadrature_sites(6,0) = 8.6168397453205303e-01;
parameterized_quadrature_sites(6,1) = 1.3399604861818300e-02;
parameterized_quadrature_sites(7,0) = 1.2492097599255590e-01;
parameterized_quadrature_sites(7,1) = 8.6130543213341393e-01;
parameterized_quadrature_sites(8,0) = 1.3856545386105401e-02;
parameterized_quadrature_sites(8,1) = 1.2477337173584679e-01;
parameterized_quadrature_sites(9,0) = 2.1188706422168500e-02;
parameterized_quadrature_sites(9,1) = 8.4384383512226457e-01;
parameterized_quadrature_sites(10,0) = 8.4322967872188404e-01;
parameterized_quadrature_sites(10,1) = 1.3545636458303650e-01;
parameterized_quadrature_sites(11,0) = 1.3542317978649990e-01;
parameterized_quadrature_sites(11,1) = 2.1348282065620599e-02;
parameterized_quadrature_sites(12,0) = 3.0888535106794068e-01;
parameterized_quadrature_sites(12,1) = 2.2191966301360600e-02;
parameterized_quadrature_sites(13,0) = 6.6850575951690716e-01;
parameterized_quadrature_sites(13,1) = 3.0890128793894273e-01;
parameterized_quadrature_sites(14,0) = 2.2654501255714700e-02;
parameterized_quadrature_sites(14,1) = 6.6917099433209937e-01;
parameterized_quadrature_sites(15,0) = 2.8085154087720221e-01;
parameterized_quadrature_sites(15,1) = 6.9247181551062442e-01;
parameterized_quadrature_sites(16,0) = 6.9224467490505948e-01;
parameterized_quadrature_sites(16,1) = 2.6872334502594599e-02;
parameterized_quadrature_sites(17,0) = 2.6861744711943400e-02;
parameterized_quadrature_sites(17,1) = 2.8100939732219082e-01;
parameterized_quadrature_sites(18,0) = 1.1417784854701600e-01;
parameterized_quadrature_sites(18,1) = 7.9735814135857996e-01;
parameterized_quadrature_sites(19,0) = 7.9748079220612744e-01;
parameterized_quadrature_sites(19,1) = 8.7980650879088101e-02;
parameterized_quadrature_sites(20,0) = 8.9280729389424204e-02;
parameterized_quadrature_sites(20,1) = 1.1450205611275180e-01;
parameterized_quadrature_sites(21,0) = 1.0524878924550450e-01;
parameterized_quadrature_sites(21,1) = 6.6869041199220447e-01;
parameterized_quadrature_sites(22,0) = 6.6630222807398454e-01;
parameterized_quadrature_sites(22,1) = 2.2750516318320271e-01;
parameterized_quadrature_sites(23,0) = 2.3078037375469529e-01;
parameterized_quadrature_sites(23,1) = 1.0545725612213259e-01;
parameterized_quadrature_sites(24,0) = 1.7050591575403051e-01;
parameterized_quadrature_sites(24,1) = 5.1740643986577728e-01;
parameterized_quadrature_sites(25,0) = 5.0865939730425092e-01;
parameterized_quadrature_sites(25,1) = 3.1705238552093218e-01;
parameterized_quadrature_sites(26,0) = 3.1418238622808309e-01;
parameterized_quadrature_sites(26,1) = 1.8107063616590391e-01;
parameterized_quadrature_sites(27,0) = 4.6174608178640142e-01;
parameterized_quadrature_sites(27,1) = 4.6785945398040590e-01;
parameterized_quadrature_sites(28,0) = 6.9308749608105902e-02;
parameterized_quadrature_sites(28,1) = 4.6228560420845410e-01;
parameterized_quadrature_sites(29,0) = 4.6519552592682439e-01;
parameterized_quadrature_sites(29,1) = 7.2435780566898006e-02;
parameterized_quadrature_sites(30,0) = 2.5786258578926041e-01;
parameterized_quadrature_sites(30,1) = 6.1313950391771632e-01;
parameterized_quadrature_sites(31,0) = 6.1126277667792195e-01;
parameterized_quadrature_sites(31,1) = 1.3003608346093859e-01;
parameterized_quadrature_sites(32,0) = 1.3051821359335081e-01;
parameterized_quadrature_sites(32,1) = 2.5817138288836389e-01;
parameterized_quadrature_sites(33,0) = 4.2814379918281070e-01;
parameterized_quadrature_sites(33,1) = 2.3620059698167339e-01;
parameterized_quadrature_sites(34,0) = 3.3569957837300629e-01;
parameterized_quadrature_sites(34,1) = 4.3110263085883421e-01;
parameterized_quadrature_sites(35,0) = 2.3054242988361631e-01;
parameterized_quadrature_sites(35,1) = 3.4560139493758052e-01;
quadrature_weights(0) = 4.1560249689274751e-03;
quadrature_weights(1) = 4.1702924944386254e-03;
quadrature_weights(2) = 4.1707642266642000e-03;
quadrature_weights(3) = 4.3920217520637501e-03;
quadrature_weights(4) = 4.6118665461224503e-03;
quadrature_weights(5) = 4.9485602546932503e-03;
quadrature_weights(6) = 5.0885098963676500e-03;
quadrature_weights(7) = 5.1713215985039248e-03;
quadrature_weights(8) = 5.2067841521619253e-03;
quadrature_weights(9) = 7.9454944569679001e-03;
quadrature_weights(10) = 8.0118008810179994e-03;
quadrature_weights(11) = 8.0151920286416749e-03;
quadrature_weights(12) = 1.0769148979569475e-02;
quadrature_weights(13) = 1.0961835383476750e-02;
quadrature_weights(14) = 1.0980241818319100e-02;
quadrature_weights(15) = 1.1998798092264475e-02;
quadrature_weights(16) = 1.2095156518331500e-02;
quadrature_weights(17) = 1.2121685584365801e-02;
quadrature_weights(18) = 1.3924112200605200e-02;
quadrature_weights(19) = 1.4025659108902326e-02;
quadrature_weights(20) = 1.4129753092321276e-02;
quadrature_weights(21) = 1.7232247266740025e-02;
quadrature_weights(22) = 1.7930333402221024e-02;
quadrature_weights(23) = 1.8186348024405299e-02;
quadrature_weights(24) = 1.9720183418426299e-02;
quadrature_weights(25) = 2.0252858637809099e-02;
quadrature_weights(26) = 2.0643132476366850e-02;
quadrature_weights(27) = 2.1051114183261624e-02;
quadrature_weights(28) = 2.1089638332624925e-02;
quadrature_weights(29) = 2.1299246712198301e-02;
quadrature_weights(30) = 2.2571133201311374e-02;
quadrature_weights(31) = 2.2857078587113475e-02;
quadrature_weights(32) = 2.2906976635229850e-02;
quadrature_weights(33) = 2.5639334372397973e-02;
quadrature_weights(34) = 2.5828991535335525e-02;
quadrature_weights(35) = 2.5896359179831598e-02;
break;
case 42:
parameterized_quadrature_sites(0,0) = 4.88963910362179e-01;
parameterized_quadrature_sites(0,1) = 4.88963910362179e-01;
parameterized_quadrature_sites(1,0) = 4.88963910362179e-01;
parameterized_quadrature_sites(1,1) = 2.20721792756430e-02;
parameterized_quadrature_sites(2,0) = 2.20721792756430e-02;
parameterized_quadrature_sites(2,1) = 4.88963910362179e-01;
parameterized_quadrature_sites(3,0) = 4.17644719340454e-01;
parameterized_quadrature_sites(3,1) = 4.17644719340454e-01;
parameterized_quadrature_sites(4,0) = 4.17644719340454e-01;
parameterized_quadrature_sites(4,1) = 1.64710561319092e-01;
parameterized_quadrature_sites(5,0) = 1.64710561319092e-01;
parameterized_quadrature_sites(5,1) = 4.17644719340454e-01;
parameterized_quadrature_sites(6,0) = 2.73477528308839e-01;
parameterized_quadrature_sites(6,1) = 2.73477528308839e-01;
parameterized_quadrature_sites(7,0) = 2.73477528308839e-01;
parameterized_quadrature_sites(7,1) = 4.53044943382323e-01;
parameterized_quadrature_sites(8,0) = 4.53044943382323e-01;
parameterized_quadrature_sites(8,1) = 2.73477528308839e-01;
parameterized_quadrature_sites(9,0) = 1.77205532412543e-01;
parameterized_quadrature_sites(9,1) = 1.77205532412543e-01;
parameterized_quadrature_sites(10,0) = 1.77205532412543e-01;
parameterized_quadrature_sites(10,1) = 6.45588935174913e-01;
parameterized_quadrature_sites(11,0) = 6.45588935174913e-01;
parameterized_quadrature_sites(11,1) = 1.77205532412543e-01;
parameterized_quadrature_sites(12,0) = 6.17998830908730e-02;
parameterized_quadrature_sites(12,1) = 6.17998830908730e-02;
parameterized_quadrature_sites(13,0) = 6.17998830908730e-02;
parameterized_quadrature_sites(13,1) = 8.76400233818255e-01;
parameterized_quadrature_sites(14,0) = 8.76400233818255e-01;
parameterized_quadrature_sites(14,1) = 6.17998830908730e-02;
parameterized_quadrature_sites(15,0) = 1.93909612487010e-02;
parameterized_quadrature_sites(15,1) = 1.93909612487010e-02;
parameterized_quadrature_sites(16,0) = 1.93909612487010e-02;
parameterized_quadrature_sites(16,1) = 9.61218077502598e-01;
parameterized_quadrature_sites(17,0) = 9.61218077502598e-01;
parameterized_quadrature_sites(17,1) = 1.93909612487010e-02;
parameterized_quadrature_sites(18,0) = 1.72266687821356e-01;
parameterized_quadrature_sites(18,1) = 7.70608554774996e-01;
parameterized_quadrature_sites(19,0) = 7.70608554774996e-01;
parameterized_quadrature_sites(19,1) = 5.71247574036480e-02;
parameterized_quadrature_sites(20,0) = 5.71247574036480e-02;
parameterized_quadrature_sites(20,1) = 1.72266687821356e-01;
parameterized_quadrature_sites(21,0) = 1.72266687821356e-01;
parameterized_quadrature_sites(21,1) = 5.71247574036480e-02;
parameterized_quadrature_sites(22,0) = 7.70608554774996e-01;
parameterized_quadrature_sites(22,1) = 1.72266687821356e-01;
parameterized_quadrature_sites(23,0) = 5.71247574036480e-02;
parameterized_quadrature_sites(23,1) = 7.70608554774996e-01;
parameterized_quadrature_sites(24,0) = 3.36861459796345e-01;
parameterized_quadrature_sites(24,1) = 5.70222290846683e-01;
parameterized_quadrature_sites(25,0) = 5.70222290846683e-01;
parameterized_quadrature_sites(25,1) = 9.29162493569720e-02;
parameterized_quadrature_sites(26,0) = 9.29162493569720e-02;
parameterized_quadrature_sites(26,1) = 3.36861459796345e-01;
parameterized_quadrature_sites(27,0) = 3.36861459796345e-01;
parameterized_quadrature_sites(27,1) = 9.29162493569720e-02;
parameterized_quadrature_sites(28,0) = 5.70222290846683e-01;
parameterized_quadrature_sites(28,1) = 3.36861459796345e-01;
parameterized_quadrature_sites(29,0) = 9.29162493569720e-02;
parameterized_quadrature_sites(29,1) = 5.70222290846683e-01;
parameterized_quadrature_sites(30,0) = 2.98372882136258e-01;
parameterized_quadrature_sites(30,1) = 6.86980167808088e-01;
parameterized_quadrature_sites(31,0) = 6.86980167808088e-01;
parameterized_quadrature_sites(31,1) = 1.46469500556540e-02;
parameterized_quadrature_sites(32,0) = 1.46469500556540e-02;
parameterized_quadrature_sites(32,1) = 2.98372882136258e-01;
parameterized_quadrature_sites(33,0) = 2.98372882136258e-01;
parameterized_quadrature_sites(33,1) = 1.46469500556540e-02;
parameterized_quadrature_sites(34,0) = 6.86980167808088e-01;
parameterized_quadrature_sites(34,1) = 2.98372882136258e-01;
parameterized_quadrature_sites(35,0) = 1.46469500556540e-02;
parameterized_quadrature_sites(35,1) = 6.86980167808088e-01;
parameterized_quadrature_sites(36,0) = 1.18974497696957e-01;
parameterized_quadrature_sites(36,1) = 8.79757171370171e-01;
parameterized_quadrature_sites(37,0) = 8.79757171370171e-01;
parameterized_quadrature_sites(37,1) = 1.26833093287199e-03;
parameterized_quadrature_sites(38,0) = 1.26833093287199e-03;
parameterized_quadrature_sites(38,1) = 1.18974497696957e-01;
parameterized_quadrature_sites(39,0) = 1.18974497696957e-01;
parameterized_quadrature_sites(39,1) = 1.26833093287199e-03;
parameterized_quadrature_sites(40,0) = 8.79757171370171e-01;
parameterized_quadrature_sites(40,1) = 1.18974497696957e-01;
parameterized_quadrature_sites(41,0) = 1.26833093287199e-03;
parameterized_quadrature_sites(41,1) = 8.79757171370171e-01;
quadrature_weights(0) = 1.09417906847145e-02;
quadrature_weights(1) = 1.09417906847145e-02;
quadrature_weights(2) = 1.09417906847145e-02;
quadrature_weights(3) = 1.63941767720625e-02;
quadrature_weights(4) = 1.63941767720625e-02;
quadrature_weights(5) = 1.63941767720625e-02;
quadrature_weights(6) = 2.58870522536460e-02;
quadrature_weights(7) = 2.58870522536460e-02;
quadrature_weights(8) = 2.58870522536460e-02;
quadrature_weights(9) = 2.10812943684965e-02;
quadrature_weights(10) = 2.10812943684965e-02;
quadrature_weights(11) = 2.10812943684965e-02;
quadrature_weights(12) = 7.21684983488850e-03;
quadrature_weights(13) = 7.21684983488850e-03;
quadrature_weights(14) = 7.21684983488850e-03;
quadrature_weights(15) = 2.46170180120000e-03;
quadrature_weights(16) = 2.46170180120000e-03;
quadrature_weights(17) = 2.46170180120000e-03;
quadrature_weights(18) = 1.23328766062820e-02;
quadrature_weights(19) = 1.23328766062820e-02;
quadrature_weights(20) = 1.23328766062820e-02;
quadrature_weights(21) = 1.23328766062820e-02;
quadrature_weights(22) = 1.23328766062820e-02;
quadrature_weights(23) = 1.23328766062820e-02;
quadrature_weights(24) = 1.92857553935305e-02;
quadrature_weights(25) = 1.92857553935305e-02;
quadrature_weights(26) = 1.92857553935305e-02;
quadrature_weights(27) = 1.92857553935305e-02;
quadrature_weights(28) = 1.92857553935305e-02;
quadrature_weights(29) = 1.92857553935305e-02;
quadrature_weights(30) = 7.21815405676700e-03;
quadrature_weights(31) = 7.21815405676700e-03;
quadrature_weights(32) = 7.21815405676700e-03;
quadrature_weights(33) = 7.21815405676700e-03;
quadrature_weights(34) = 7.21815405676700e-03;
quadrature_weights(35) = 7.21815405676700e-03;
quadrature_weights(36) = 2.50511441925050e-03;
quadrature_weights(37) = 2.50511441925050e-03;
quadrature_weights(38) = 2.50511441925050e-03;
quadrature_weights(39) = 2.50511441925050e-03;
quadrature_weights(40) = 2.50511441925050e-03;
quadrature_weights(41) = 2.50511441925050e-03;
break;
case 55:
parameterized_quadrature_sites(0,0) = 1.0e-00;
parameterized_quadrature_sites(0,1) = 0.0e-00;
parameterized_quadrature_sites(1,0) = 0.0e-00;
parameterized_quadrature_sites(1,1) = 1.0e-00;
parameterized_quadrature_sites(2,0) = 0.0e-00;
parameterized_quadrature_sites(2,1) = 0.0e-00;
parameterized_quadrature_sites(3,0) = 9.3988635835771928e-01;
parameterized_quadrature_sites(3,1) = 4.9848744634100996e-03;
parameterized_quadrature_sites(4,0) = 5.4380668305835503e-02;
parameterized_quadrature_sites(4,1) = 9.3864056186166756e-01;
parameterized_quadrature_sites(5,0) = 9.3940049163876004e-03;
parameterized_quadrature_sites(5,1) = 5.2642446269734702e-02;
parameterized_quadrature_sites(6,0) = 1.6434508636240200e-02;
parameterized_quadrature_sites(6,1) = 9.4690355173508323e-01;
parameterized_quadrature_sites(7,0) = 9.4694872698624577e-01;
parameterized_quadrature_sites(7,1) = 3.6337367716693998e-02;
parameterized_quadrature_sites(8,0) = 4.2660400576765102e-02;
parameterized_quadrature_sites(8,1) = 1.5122454179941101e-02;
parameterized_quadrature_sites(9,0) = 1.2226949543872000e-02;
parameterized_quadrature_sites(9,1) = 8.6937735106643133e-01;
parameterized_quadrature_sites(10,0) = 8.6736965210466677e-01;
parameterized_quadrature_sites(10,1) = 1.2049172857742969e-01;
parameterized_quadrature_sites(11,0) = 8.4567440213890721e-01;
parameterized_quadrature_sites(11,1) = 1.5776396787000199e-02;
parameterized_quadrature_sites(12,0) = 1.3957596321026139e-01;
parameterized_quadrature_sites(12,1) = 8.4481208703747090e-01;
parameterized_quadrature_sites(13,0) = 1.3178217432308281e-01;
parameterized_quadrature_sites(13,1) = 1.3500960558402201e-02;
parameterized_quadrature_sites(14,0) = 1.5795512630024801e-02;
parameterized_quadrature_sites(14,1) = 1.4552749385359881e-01;
parameterized_quadrature_sites(15,0) = 7.3654628844363068e-01;
parameterized_quadrature_sites(15,1) = 1.5569754090822801e-02;
parameterized_quadrature_sites(16,0) = 1.3968843033038900e-02;
parameterized_quadrature_sites(16,1) = 7.3798368944501946e-01;
parameterized_quadrature_sites(17,0) = 2.5478951860390298e-01;
parameterized_quadrature_sites(17,1) = 7.2976156897705524e-01;
parameterized_quadrature_sites(18,0) = 7.3163865225549030e-01;
parameterized_quadrature_sites(18,1) = 2.5430766833150520e-01;
parameterized_quadrature_sites(19,0) = 1.5725372895084501e-02;
parameterized_quadrature_sites(19,1) = 2.6962397957906031e-01;
parameterized_quadrature_sites(20,0) = 2.6623028436468249e-01;
parameterized_quadrature_sites(20,1) = 1.4478395630801300e-02;
parameterized_quadrature_sites(21,0) = 8.6735040652140771e-01;
parameterized_quadrature_sites(21,1) = 5.9167941040048203e-02;
parameterized_quadrature_sites(22,0) = 7.4149366695661204e-02;
parameterized_quadrature_sites(22,1) = 8.6347825750608687e-01;
parameterized_quadrature_sites(23,0) = 1.5928594836003299e-02;
parameterized_quadrature_sites(23,1) = 4.1912389552381862e-01;
parameterized_quadrature_sites(24,0) = 1.5606102806777700e-02;
parameterized_quadrature_sites(24,1) = 5.8092229211457624e-01;
parameterized_quadrature_sites(25,0) = 5.9100948174838852e-01;
parameterized_quadrature_sites(25,1) = 1.5925145265094101e-02;
parameterized_quadrature_sites(26,0) = 4.0347714968887188e-01;
parameterized_quadrature_sites(26,1) = 5.8067003681039198e-01;
parameterized_quadrature_sites(27,0) = 5.6947456285259768e-01;
parameterized_quadrature_sites(27,1) = 4.1494951463020030e-01;
parameterized_quadrature_sites(28,0) = 6.7849370065030001e-02;
parameterized_quadrature_sites(28,1) = 7.6121867859137604e-02;
parameterized_quadrature_sites(29,0) = 4.2659685902715933e-01;
parameterized_quadrature_sites(29,1) = 1.5750969231154401e-02;
parameterized_quadrature_sites(30,0) = 6.7098250788970207e-02;
parameterized_quadrature_sites(30,1) = 7.7418983124212093e-01;
parameterized_quadrature_sites(31,0) = 7.5283102314795158e-01;
parameterized_quadrature_sites(31,1) = 8.1911949563924294e-02;
parameterized_quadrature_sites(32,0) = 7.7537277835568841e-01;
parameterized_quadrature_sites(32,1) = 1.5771284572917341e-01;
parameterized_quadrature_sites(33,0) = 1.6890731577873661e-01;
parameterized_quadrature_sites(33,1) = 7.5039430997422452e-01;
parameterized_quadrature_sites(34,0) = 1.6873358329194171e-01;
parameterized_quadrature_sites(34,1) = 7.0831150726781894e-02;
parameterized_quadrature_sites(35,0) = 8.2124470843632405e-02;
parameterized_quadrature_sites(35,1) = 1.7629966267710759e-01;
parameterized_quadrature_sites(36,0) = 6.2887053633447976e-01;
parameterized_quadrature_sites(36,1) = 8.0774495331656301e-02;
parameterized_quadrature_sites(37,0) = 8.1141301526575199e-02;
parameterized_quadrature_sites(37,1) = 3.0543735897757762e-01;
parameterized_quadrature_sites(38,0) = 2.9691120650804809e-01;
parameterized_quadrature_sites(38,1) = 6.2274859888709300e-01;
parameterized_quadrature_sites(39,0) = 7.6754231417057298e-02;
parameterized_quadrature_sites(39,1) = 6.2472471495456661e-01;
parameterized_quadrature_sites(40,0) = 6.2230223338447721e-01;
parameterized_quadrature_sites(40,1) = 3.0114858211656370e-01;
parameterized_quadrature_sites(41,0) = 3.1037862880509631e-01;
parameterized_quadrature_sites(41,1) = 7.7909836507944599e-02;
parameterized_quadrature_sites(42,0) = 8.1921821518658594e-02;
parameterized_quadrature_sites(42,1) = 4.6036330383508761e-01;
parameterized_quadrature_sites(43,0) = 4.7170226650134689e-01;
parameterized_quadrature_sites(43,1) = 8.2155400679671906e-02;
parameterized_quadrature_sites(44,0) = 4.5466034152504742e-01;
parameterized_quadrature_sites(44,1) = 4.6375650338896440e-01;
parameterized_quadrature_sites(45,0) = 1.7010913392369389e-01;
parameterized_quadrature_sites(45,1) = 6.4222778081881993e-01;
parameterized_quadrature_sites(46,0) = 6.4060043294867430e-01;
parameterized_quadrature_sites(46,1) = 1.8982935372556059e-01;
parameterized_quadrature_sites(47,0) = 1.9122675837165989e-01;
parameterized_quadrature_sites(47,1) = 1.7399556853425760e-01;
parameterized_quadrature_sites(48,0) = 1.8853157670702370e-01;
parameterized_quadrature_sites(48,1) = 4.7989140704057581e-01;
parameterized_quadrature_sites(49,0) = 4.7729299576907452e-01;
parameterized_quadrature_sites(49,1) = 3.3483565981193042e-01;
parameterized_quadrature_sites(50,0) = 3.1269746217597721e-01;
parameterized_quadrature_sites(50,1) = 4.9579721972587398e-01;
parameterized_quadrature_sites(51,0) = 4.9612259459456259e-01;
parameterized_quadrature_sites(51,1) = 1.9275536689044351e-01;
parameterized_quadrature_sites(52,0) = 1.9288053128670610e-01;
parameterized_quadrature_sites(52,1) = 3.1610158072607569e-01;
parameterized_quadrature_sites(53,0) = 3.3600414538164958e-01;
parameterized_quadrature_sites(53,1) = 1.8948928012898231e-01;
parameterized_quadrature_sites(54,0) = 3.3372805508479741e-01;
parameterized_quadrature_sites(54,1) = 3.3435710218114523e-01;
quadrature_weights(0) = 1.5506499627784999e-04;
quadrature_weights(1) = 1.5787936779320001e-04;
quadrature_weights(2) = 1.7716503897180001e-04;
quadrature_weights(3) = 1.3790929042020500e-03;
quadrature_weights(4) = 1.5673101913945000e-03;
quadrature_weights(5) = 1.9632852206504501e-03;
quadrature_weights(6) = 2.3637870966120248e-03;
quadrature_weights(7) = 2.4456127817772499e-03;
quadrature_weights(8) = 2.4965410872361499e-03;
quadrature_weights(9) = 3.4388454704036252e-03;
quadrature_weights(10) = 3.5244794510020999e-03;
quadrature_weights(11) = 3.7411716084290001e-03;
quadrature_weights(12) = 3.9024375902997751e-03;
quadrature_weights(13) = 3.9420923337041246e-03;
quadrature_weights(14) = 4.3948636595678749e-03;
quadrature_weights(15) = 5.1028460067507001e-03;
quadrature_weights(16) = 5.2390719653994996e-03;
quadrature_weights(17) = 5.2678353249450997e-03;