You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1781 lines
65 KiB
1781 lines
65 KiB
#include "quadrature.h"
|
|
#include <cmath>
|
|
fp_t g1d_1[1][3] = {
|
|
0.5,0.5,1.0,
|
|
};
|
|
fp_t g1d_2[2][3] = {
|
|
static_cast<float>((1.0-1.0/sqrt(3.0))/2.0),static_cast<float>((1.0+1.0/sqrt(3.0))/2.0),0.5,
|
|
static_cast<float>((1.0+1.0/sqrt(3.0))/2.0),static_cast<float>((1.0-1.0/sqrt(3.0))/2.0),0.5,
|
|
};
|
|
fp_t g1d_3[3][3] = {
|
|
0.5,0.5,4.0/9.0,
|
|
static_cast<float>((1.0-sqrt(15)/(5.0))/2.0),static_cast<float>((1.0+sqrt(15)/(5.0))/2.0),5.0/18.0,
|
|
static_cast<float>((1.0+sqrt(15)/(5.0))/2.0),static_cast<float>((1.0-sqrt(15)/(5.0))/2.0),5.0/18.0,
|
|
};
|
|
fp_t g1d_4[4][3] = {
|
|
static_cast<float>((1.0- sqrt((3.0-2.0*sqrt(6.0/5.0))/7))/2.0), static_cast<float>((1.0 + sqrt((3.0-2.0*sqrt(6.0/5.0))/7))/2.0), static_cast<float>((18.0+sqrt(30.0))/72.0),
|
|
static_cast<float>((1.0+ sqrt((3.0-2.0*sqrt(6.0/5.0))/7))/2.0), static_cast<float>((1.0 - sqrt((3.0-2.0*sqrt(6.0/5.0))/7))/2.0), static_cast<float>((18.0+sqrt(30.0))/72.0),
|
|
static_cast<float>((1.0- sqrt((3.0+2.0*sqrt(6.0/5.0))/7))/2.0), static_cast<float>((1.0 + sqrt((3.0+2.0*sqrt(6.0/5.0))/7))/2.0), static_cast<float>((18.0+sqrt(30.0))/72.0),
|
|
static_cast<float>((1.0+ sqrt((3.0+2.0*sqrt(6.0/5.0))/7))/2.0), static_cast<float>((1.0 - sqrt((3.0+2.0*sqrt(6.0/5.0))/7))/2.0), static_cast<float>((18.0+sqrt(30.0))/72.0),
|
|
};
|
|
fp_t g1d_5[5][3] = {
|
|
0.5,0.5,64.0/225.0,
|
|
static_cast<float>((1.0- sqrt((5.0-2.0*sqrt(10.0/7.0)))/3.0)/2.0), static_cast<float>((1.0+ sqrt((5.0-2.0*sqrt(10.0/7.0)))/3.0)/2.0), static_cast<float>((322.0+13.0*sqrt(70.0))/1800.0),
|
|
static_cast<float>((1.0+ sqrt((5.0-2.0*sqrt(10.0/7.0)))/3.0)/2.0), static_cast<float>((1.0- sqrt((5.0-2.0*sqrt(10.0/7.0)))/3.0)/2.0), static_cast<float>((322.0+13.0*sqrt(70.0))/1800.0),
|
|
static_cast<float>((1.0- sqrt((5.0+2.0*sqrt(10.0/7.0)))/3.0)/2.0), static_cast<float>((1.0+ sqrt((5.0+2.0*sqrt(10.0/7.0)))/3.0)/2.0), static_cast<float>((322.0-13.0*sqrt(70.0))/1800.0),
|
|
static_cast<float>((1.0+ sqrt((5.0+2.0*sqrt(10.0/7.0)))/3.0)/2.0), static_cast<float>((1.0- sqrt((5.0+2.0*sqrt(10.0/7.0)))/3.0)/2.0), static_cast<float>((322.0-13.0*sqrt(70.0))/1800.0),
|
|
};
|
|
|
|
// Order = 1
|
|
static fp_t g2d_1[1][4] =
|
|
{
|
|
one_third, one_third, one_third, 1.0
|
|
};
|
|
|
|
// Order = 2
|
|
static fp_t g2d_3[3][4] =
|
|
{
|
|
two_third, one_sixth, one_sixth, one_third,
|
|
one_sixth, two_third, one_sixth, one_third,
|
|
one_sixth, one_sixth, two_third, one_third
|
|
};
|
|
|
|
// Order = 3
|
|
static fp_t g2d_4[4][4] =
|
|
{
|
|
one_third, one_third, one_third, -0.5625,
|
|
0.6, 0.2, 0.2, 0.520833333333333,
|
|
0.2, 0.6, 0.2, 0.520833333333333,
|
|
0.2, 0.2, 0.6, 0.520833333333333
|
|
};
|
|
|
|
// added by Marinos N. Vouvakis & Seung-Cheol Lee 08/12/02
|
|
// Order = 4
|
|
#define g6_a 0.816847572980459
|
|
#define g6_b ( 1.0 - g6_a ) / 2.0
|
|
#define g6_c 0.108103018168070
|
|
#define g6_d ( 1.0 - g6_c ) / 2.0
|
|
#define g6_W1 0.109951743655322
|
|
#define g6_W2 0.223381589678011
|
|
|
|
static fp_t g2d_6[6][4] =
|
|
{
|
|
g6_a, g6_b, g6_b, g6_W1 ,
|
|
g6_b, g6_a, g6_b, g6_W1 ,
|
|
g6_b, g6_b, g6_a, g6_W1 ,
|
|
|
|
g6_c, g6_d, g6_d, g6_W2 ,
|
|
g6_d, g6_c, g6_d, g6_W2 ,
|
|
g6_d, g6_d, g6_c, g6_W2
|
|
};
|
|
|
|
|
|
// Order = 5
|
|
static fp_t g2d_7[7][4] =
|
|
{
|
|
one_third, one_third, one_third, 0.225033000033,
|
|
0.797426985353087, 0.101286507323456, 0.101286507323456, 0.125939180544827,
|
|
0.101286507323456, 0.797426985353087, 0.101286507323456, 0.125939180544827,
|
|
0.101286507323456, 0.101286507323456, 0.797426985353087, 0.125939180544827,
|
|
0.470142064105115, 0.470142064105115, 0.059715871789770, 0.132394152788506,
|
|
0.059715871789770, 0.470142064105115, 0.470142064105115, 0.132394152788506,
|
|
0.470142064105115, 0.059715871789770, 0.470142064105115, 0.132394152788506
|
|
};
|
|
|
|
|
|
// added by Seung-Cheol Lee & Marinos N. Vouvakis 08/12/02
|
|
// Order = 5
|
|
#define g9_a 0.437525248383384
|
|
#define g9_b 1.0 - 2.0 * g9_a
|
|
#define g9_c 0.797112651860071
|
|
#define g9_d 0.165409927389841
|
|
#define g9_e 1.0 - g9_c - g9_d
|
|
#define g9_W1 0.205950504760887
|
|
#define g9_W2 0.063691414286223
|
|
|
|
static fp_t g2d_9[9][4] =
|
|
{
|
|
g9_b, g9_a, g9_a, g9_W1 ,
|
|
g9_a, g9_b, g9_a, g9_W1 ,
|
|
g9_a, g9_a, g9_b, g9_W1 ,
|
|
|
|
g9_c, g9_d, g9_e, g9_W2 ,
|
|
g9_c, g9_e, g9_d, g9_W2 ,
|
|
g9_d, g9_c, g9_e, g9_W2 ,
|
|
g9_d, g9_e, g9_c, g9_W2 ,
|
|
g9_e, g9_c, g9_d, g9_W2 ,
|
|
g9_e, g9_d, g9_c, g9_W2
|
|
};
|
|
|
|
|
|
// added by Marinos N. Vouvakis & Seung-Cheol Lee 08/12/02
|
|
// Order = 6
|
|
#define g12_a 0.063089014491502
|
|
#define g12_b 1.0 - 2.0 * g12_a
|
|
#define g12_c 0.249286745170910
|
|
#define g12_d 1.0 - 2.0 * g12_c
|
|
#define g12_e 0.636502499121399
|
|
#define g12_f 0.310352451033785
|
|
#define g12_g 1.0 - g12_e - g12_f
|
|
#define g12_W1 0.050844906370207
|
|
#define g12_W2 0.116786275726379
|
|
#define g12_W3 0.082851075618374
|
|
|
|
static fp_t g2d_12[12][4] =
|
|
{
|
|
g12_b, g12_a, g12_a, g12_W1 ,
|
|
g12_a, g12_b, g12_a, g12_W1 ,
|
|
g12_a, g12_a, g12_b, g12_W1 ,
|
|
|
|
g12_d, g12_c, g12_c, g12_W2 ,
|
|
g12_c, g12_d, g12_c, g12_W2 ,
|
|
g12_c, g12_c, g12_d, g12_W2 ,
|
|
|
|
g12_e, g12_f, g12_g, g12_W3 ,
|
|
g12_e, g12_g, g12_f, g12_W3 ,
|
|
g12_f, g12_e, g12_g, g12_W3 ,
|
|
|
|
g12_f, g12_g, g12_e, g12_W3 ,
|
|
g12_g, g12_e, g12_f, g12_W3 ,
|
|
g12_g, g12_f, g12_e, g12_W3
|
|
};
|
|
|
|
|
|
// Order = 7
|
|
#define g13_a 0.638444188569809
|
|
#define g13_b 0.312865496004875
|
|
#define g13_c 0.048690315425316
|
|
|
|
static fp_t g2d_13[13][4] =
|
|
{
|
|
one_third, one_third, one_third, -0.149570044467670,
|
|
0.479308067841923, 0.260345966079038, 0.260345966079038, 0.175615257433204,
|
|
0.260345966079038, 0.479308067841923, 0.260345966079038, 0.175615257433204,
|
|
0.260345966079038, 0.260345966079038, 0.479308067841923, 0.175615257433204,
|
|
|
|
0.869739794195568, 0.065130102902216, 0.065130102902216, 0.053347235608839,
|
|
0.065130102902216, 0.869739794195568, 0.065130102902216, 0.053347235608839,
|
|
0.065130102902216, 0.065130102902216, 0.869739794195568, 0.053347235608839,
|
|
|
|
g13_a, g13_b, g13_c, 0.077113760890257,
|
|
g13_a, g13_c, g13_b, 0.077113760890257,
|
|
g13_b, g13_a, g13_c, 0.077113760890257,
|
|
g13_b, g13_c, g13_a, 0.077113760890257,
|
|
g13_c, g13_a, g13_b, 0.077113760890257,
|
|
g13_c, g13_b, g13_a, 0.077113760890257,
|
|
};
|
|
|
|
|
|
// added by MV 03/04/03
|
|
// Order = 8
|
|
#define g16_z0_2 0.04666912123569507
|
|
#define g16_z1_2 0.4766654393821525
|
|
#define g16_z2_2 0.4766654393821525
|
|
|
|
#define g16_z0_3 0.9324563118910393
|
|
#define g16_z1_3 0.03377184405448033
|
|
#define g16_z2_3 0.03377184405448033
|
|
|
|
#define g16_z0_4 0.4593042216691921
|
|
#define g16_z1_4 0.2703478891654040
|
|
#define g16_z2_4 0.2703478891654040
|
|
|
|
#define g16_z0_5 0.05146433548666149
|
|
#define g16_z1_5 0.7458294907672514
|
|
#define g16_z2_5 1. - g16_z0_5 - g16_z1_5
|
|
|
|
#define g16_W1 -0.2834183851113958
|
|
#define g16_W2 0.2097208857979572/3.
|
|
#define g16_W3 0.05127273801480265/3.
|
|
#define g16_W4 0.6564896469913506/3.
|
|
#define g16_W5 0.3659351143072855/6.
|
|
|
|
static fp_t g2d_16[16][4] =
|
|
{
|
|
one_third, one_third, one_third, g16_W1,
|
|
|
|
g16_z0_2, g16_z1_2, g16_z1_2, g16_W2,
|
|
g16_z1_2, g16_z0_2, g16_z1_2, g16_W2,
|
|
g16_z1_2, g16_z1_2, g16_z0_2, g16_W2,
|
|
|
|
g16_z0_3, g16_z1_3, g16_z1_3, g16_W3,
|
|
g16_z1_3, g16_z0_3, g16_z1_3, g16_W3,
|
|
g16_z1_3, g16_z1_3, g16_z0_3, g16_W3,
|
|
|
|
g16_z0_4, g16_z1_4, g16_z1_4, g16_W4,
|
|
g16_z1_4, g16_z0_4, g16_z1_4, g16_W4,
|
|
g16_z1_4, g16_z1_4, g16_z0_4, g16_W4,
|
|
|
|
g16_z0_5, g16_z1_5, g16_z2_5, g16_W5,
|
|
g16_z0_5, g16_z2_5, g16_z1_5, g16_W5,
|
|
g16_z1_5, g16_z0_5, g16_z2_5, g16_W5,
|
|
g16_z1_5, g16_z2_5, g16_z0_5, g16_W5,
|
|
g16_z2_5, g16_z0_5, g16_z1_5, g16_W5,
|
|
g16_z2_5, g16_z1_5, g16_z0_5, g16_W5
|
|
};
|
|
|
|
|
|
// added by MV 03/04/03
|
|
// Order = 9
|
|
#define g19_z0_2 0.02063496160252593
|
|
#define g19_z1_2 0.4896825191987370
|
|
#define g19_z2_2 0.4896825191987370
|
|
|
|
#define g19_z0_3 0.1258208170141290
|
|
#define g19_z1_3 0.4370895914929355
|
|
#define g19_z2_3 0.4370895914929355
|
|
|
|
#define g19_z0_4 0.6235929287619356
|
|
#define g19_z1_4 0.1882035356190322
|
|
#define g19_z2_4 0.1882035356190322
|
|
|
|
#define g19_z0_5 0.9105409732110941
|
|
#define g19_z1_5 0.04472951339445297
|
|
#define g19_z2_5 0.04472951339445297
|
|
|
|
#define g19_z0_6 0.03683841205473626
|
|
#define g19_z1_6 0.7411985987844980
|
|
#define g19_z2_6 1. - g19_z0_6 - g19_z1_6
|
|
|
|
#define g19_W1 0.09713579628279610
|
|
#define g19_W2 0.09400410068141950/3.
|
|
#define g19_W3 0.2334826230143263/3.
|
|
#define g19_W4 0.2389432167815273/3.
|
|
#define g19_W5 0.07673302697609430/3.
|
|
#define g19_W6 0.2597012362637364/6.
|
|
|
|
static fp_t g2d_19[19][4] =
|
|
{
|
|
one_third, one_third, one_third, g19_W1,
|
|
|
|
g19_z0_2, g19_z1_2, g19_z1_2, g19_W2,
|
|
g19_z1_2, g19_z0_2, g19_z1_2, g19_W2,
|
|
g19_z1_2, g19_z1_2, g19_z0_2, g19_W2,
|
|
|
|
g19_z0_3, g19_z1_3, g19_z1_3, g19_W3,
|
|
g19_z1_3, g19_z0_3, g19_z1_3, g19_W3,
|
|
g19_z1_3, g19_z1_3, g19_z0_3, g19_W3,
|
|
|
|
g19_z0_4, g19_z1_4, g19_z1_4, g19_W4,
|
|
g19_z1_4, g19_z0_4, g19_z1_4, g19_W4,
|
|
g19_z1_4, g19_z1_4, g19_z0_4, g19_W4,
|
|
|
|
g19_z0_5, g19_z1_5, g19_z1_5, g19_W5,
|
|
g19_z1_5, g19_z0_5, g19_z1_5, g19_W5,
|
|
g19_z1_5, g19_z1_5, g19_z0_5, g19_W5,
|
|
|
|
g19_z0_6, g19_z1_6, g19_z2_6, g19_W6,
|
|
g19_z0_6, g19_z2_6, g19_z1_6, g19_W6,
|
|
g19_z1_6, g19_z0_6, g19_z2_6, g19_W6,
|
|
g19_z1_6, g19_z2_6, g19_z0_6, g19_W6,
|
|
g19_z2_6, g19_z0_6, g19_z1_6, g19_W6,
|
|
g19_z2_6, g19_z1_6, g19_z0_6, g19_W6
|
|
};
|
|
|
|
|
|
// added by MV 03/04/03
|
|
// Order = 11
|
|
#define g27_z0_1 0.9352701037774565
|
|
#define g27_z1_1 0.03236494811127173
|
|
#define g27_z2_1 0.03236494811127173
|
|
|
|
#define g27_z0_2 0.7612981754348137
|
|
#define g27_z1_2 0.1193509122825931
|
|
#define g27_z2_2 0.1193509122825931
|
|
|
|
#define g27_z0_3 -0.06922209654151433
|
|
#define g27_z1_3 0.5346110482707572
|
|
#define g27_z2_3 0.5346110482707572
|
|
|
|
#define g27_z0_4 0.5933801991374367
|
|
#define g27_z1_4 0.2033099004312816
|
|
#define g27_z2_4 0.2033099004312816
|
|
|
|
#define g27_z0_5 0.2020613940682885
|
|
#define g27_z1_5 0.3989693029658558
|
|
#define g27_z2_5 0.3989693029658558
|
|
|
|
#define g27_z0_6 0.05017813831049474
|
|
#define g27_z1_6 0.5932012134282132
|
|
#define g27_z2_6 1. - g27_z0_6 - g27_z1_6
|
|
|
|
#define g27_z0_7 0.02102201653616613
|
|
#define g27_z1_7 0.8074890031597923
|
|
#define g27_z2_7 1. - g27_z0_7 - g27_z1_7
|
|
|
|
#define g27_W1 0.04097919300803106/3.
|
|
#define g27_W2 0.1085536215102866/3.
|
|
#define g27_W3 0.002781018986881812/3.
|
|
#define g27_W4 0.1779689321422668/3.
|
|
#define g27_W5 0.2314486047444677/3.
|
|
#define g27_W6 0.3140226717732234/6.
|
|
#define g27_W7 0.1242459578348437/6.
|
|
|
|
static fp_t g2d_27[27][4] =
|
|
{
|
|
g27_z0_1, g27_z1_1, g27_z1_1, g27_W1,
|
|
g27_z1_1, g27_z0_1, g27_z1_1, g27_W1,
|
|
g27_z1_1, g27_z1_1, g27_z0_1, g27_W1,
|
|
|
|
g27_z0_2, g27_z1_2, g27_z1_2, g27_W2,
|
|
g27_z1_2, g27_z0_2, g27_z1_2, g27_W2,
|
|
g27_z1_2, g27_z1_2, g27_z0_2, g27_W2,
|
|
|
|
g27_z0_3, g27_z1_3, g27_z1_3, g27_W3,
|
|
g27_z1_3, g27_z0_3, g27_z1_3, g27_W3,
|
|
g27_z1_3, g27_z1_3, g27_z0_3, g27_W3,
|
|
|
|
g27_z0_4, g27_z1_4, g27_z1_4, g27_W4,
|
|
g27_z1_4, g27_z0_4, g27_z1_4, g27_W4,
|
|
g27_z1_4, g27_z1_4, g27_z0_4, g27_W4,
|
|
|
|
g27_z0_5, g27_z1_5, g27_z1_5, g27_W5,
|
|
g27_z1_5, g27_z0_5, g27_z1_5, g27_W5,
|
|
g27_z1_5, g27_z1_5, g27_z0_5, g27_W5,
|
|
|
|
g27_z0_6, g27_z1_6, g27_z2_6, g27_W6,
|
|
g27_z0_6, g27_z2_6, g27_z1_6, g27_W6,
|
|
g27_z1_6, g27_z0_6, g27_z2_6, g27_W6,
|
|
g27_z1_6, g27_z2_6, g27_z0_6, g27_W6,
|
|
g27_z2_6, g27_z0_6, g27_z1_6, g27_W6,
|
|
g27_z2_6, g27_z1_6, g27_z0_6, g27_W6,
|
|
|
|
g27_z0_7, g27_z1_7, g27_z2_7, g27_W7,
|
|
g27_z0_7, g27_z2_7, g27_z1_7, g27_W7,
|
|
g27_z1_7, g27_z0_7, g27_z2_7, g27_W7,
|
|
g27_z1_7, g27_z2_7, g27_z0_7, g27_W7,
|
|
g27_z2_7, g27_z0_7, g27_z1_7, g27_W7,
|
|
g27_z2_7, g27_z1_7, g27_z0_7, g27_W7
|
|
};
|
|
|
|
// added by MV 03/07/03
|
|
// Order = 12
|
|
#define g33_z0_1 0.023565220452390
|
|
#define g33_z1_1 0.488217389773805
|
|
#define g33_z2_1 0.488217389773805
|
|
|
|
#define g33_z0_2 0.120551215411079
|
|
#define g33_z1_2 0.439724392294460
|
|
#define g33_z2_2 0.439724392294460
|
|
|
|
#define g33_z0_3 0.457579229975768
|
|
#define g33_z1_3 0.271210385012116
|
|
#define g33_z2_3 0.271210385012116
|
|
|
|
#define g33_z0_4 0.744847708916828
|
|
#define g33_z1_4 0.127576145541586
|
|
#define g33_z2_4 0.127576145541586
|
|
|
|
#define g33_z0_5 0.957365299093579
|
|
#define g33_z1_5 0.021317350453210
|
|
#define g33_z2_5 0.021317350453210
|
|
|
|
#define g33_z0_6 0.115343494534698
|
|
#define g33_z1_6 0.275713269685514
|
|
#define g33_z2_6 0.608943235779788
|
|
|
|
#define g33_z0_7 0.022838332222257
|
|
#define g33_z1_7 0.281325580989940
|
|
#define g33_z2_7 0.695836086787803
|
|
|
|
#define g33_z0_8 0.025734050548330
|
|
#define g33_z1_8 0.116251915907597
|
|
#define g33_z2_8 0.858014033544073
|
|
|
|
#define g33_W1 0.025731066440455
|
|
#define g33_W2 0.043692544538038
|
|
#define g33_W3 0.062858224217885
|
|
#define g33_W4 0.034796112930709
|
|
#define g33_W5 0.006166261051559
|
|
#define g33_W6 0.040371557766381
|
|
#define g33_W7 0.022356773202303
|
|
#define g33_W8 0.017316231108659
|
|
|
|
|
|
static fp_t g2d_33[33][4] =
|
|
{
|
|
g33_z0_1, g33_z1_1, g33_z1_1, g33_W1,
|
|
g33_z1_1, g33_z0_1, g33_z1_1, g33_W1,
|
|
g33_z1_1, g33_z1_1, g33_z0_1, g33_W1,
|
|
|
|
g33_z0_2, g33_z1_2, g33_z1_2, g33_W2,
|
|
g33_z1_2, g33_z0_2, g33_z1_2, g33_W2,
|
|
g33_z1_2, g33_z1_2, g33_z0_2, g33_W2,
|
|
|
|
g33_z0_3, g33_z1_3, g33_z1_3, g33_W3,
|
|
g33_z1_3, g33_z0_3, g33_z1_3, g33_W3,
|
|
g33_z1_3, g33_z1_3, g33_z0_3, g33_W3,
|
|
|
|
g33_z0_4, g33_z1_4, g33_z1_4, g33_W4,
|
|
g33_z1_4, g33_z0_4, g33_z1_4, g33_W4,
|
|
g33_z1_4, g33_z1_4, g33_z0_4, g33_W4,
|
|
|
|
g33_z0_5, g33_z1_5, g33_z1_5, g33_W5,
|
|
g33_z1_5, g33_z0_5, g33_z1_5, g33_W5,
|
|
g33_z1_5, g33_z1_5, g33_z0_5, g33_W5,
|
|
|
|
g33_z0_6, g33_z1_6, g33_z2_6, g33_W6,
|
|
g33_z0_6, g33_z2_6, g33_z1_6, g33_W6,
|
|
g33_z1_6, g33_z0_6, g33_z2_6, g33_W6,
|
|
g33_z1_6, g33_z2_6, g33_z0_6, g33_W6,
|
|
g33_z2_6, g33_z0_6, g33_z1_6, g33_W6,
|
|
g33_z2_6, g33_z1_6, g33_z0_6, g33_W6,
|
|
|
|
g33_z0_7, g33_z1_7, g33_z2_7, g33_W7,
|
|
g33_z0_7, g33_z2_7, g33_z1_7, g33_W7,
|
|
g33_z1_7, g33_z0_7, g33_z2_7, g33_W7,
|
|
g33_z1_7, g33_z2_7, g33_z0_7, g33_W7,
|
|
g33_z2_7, g33_z0_7, g33_z1_7, g33_W7,
|
|
g33_z2_7, g33_z1_7, g33_z0_7, g33_W7,
|
|
|
|
g33_z0_8, g33_z1_8, g33_z2_8, g33_W8,
|
|
g33_z0_8, g33_z2_8, g33_z1_8, g33_W8,
|
|
g33_z1_8, g33_z0_8, g33_z2_8, g33_W8,
|
|
g33_z1_8, g33_z2_8, g33_z0_8, g33_W8,
|
|
g33_z2_8, g33_z0_8, g33_z1_8, g33_W8,
|
|
g33_z2_8, g33_z1_8, g33_z0_8, g33_W8
|
|
};
|
|
|
|
|
|
// added by MV 03/07/03
|
|
// Order = 13
|
|
#define g37_z0_2 0.009903630120591
|
|
#define g37_z1_2 0.495048184939705
|
|
#define g37_z2_2 0.495048184939705
|
|
|
|
#define g37_z0_3 0.062566729780852
|
|
#define g37_z1_3 0.468716635109574
|
|
#define g37_z2_3 0.468716635109574
|
|
|
|
#define g37_z0_4 0.170957326397447
|
|
#define g37_z1_4 0.414521336801277
|
|
#define g37_z2_4 0.414521336801277
|
|
|
|
#define g37_z0_5 0.541200855914337
|
|
#define g37_z1_5 0.229399572042831
|
|
#define g37_z2_5 0.229399572042831
|
|
|
|
#define g37_z0_6 0.771151009607340
|
|
#define g37_z1_6 0.114424495196330
|
|
#define g37_z2_6 0.114424495196330
|
|
|
|
#define g37_z0_7 0.950377217273082
|
|
#define g37_z1_7 0.024811391363459
|
|
#define g37_z2_7 0.024811391363459
|
|
|
|
#define g37_z0_8 0.094853828379579
|
|
#define g37_z1_8 0.268794997058761
|
|
#define g37_z2_8 0.636351174561660
|
|
|
|
#define g37_z0_9 0.018100773278807
|
|
#define g37_z1_9 0.291730066734288
|
|
#define g37_z2_9 0.690169159986905
|
|
|
|
#define g37_z0_10 0.022233076674090
|
|
#define g37_z1_10 0.126357385491669
|
|
#define g37_z2_10 0.851409537834241
|
|
|
|
#define g37_W1 0.052520923400802
|
|
#define g37_W2 0.011280145209330
|
|
#define g37_W3 0.031423518362454
|
|
#define g37_W4 0.047072502504194
|
|
#define g37_W5 0.047363586536355
|
|
#define g37_W6 0.031167529045794
|
|
#define g37_W7 0.007975771465074
|
|
#define g37_W8 0.036848402728732
|
|
#define g37_W9 0.017401463303822
|
|
#define g37_W10 0.015521786839045
|
|
|
|
static fp_t g2d_37[37][4] =
|
|
{
|
|
one_third, one_third, one_third, g37_W1,
|
|
|
|
g37_z0_2, g37_z1_2, g37_z1_2, g37_W2,
|
|
g37_z1_2, g37_z0_2, g37_z1_2, g37_W2,
|
|
g37_z1_2, g37_z1_2, g37_z0_2, g37_W2,
|
|
|
|
g37_z0_3, g37_z1_3, g37_z1_3, g37_W3,
|
|
g37_z1_3, g37_z0_3, g37_z1_3, g37_W3,
|
|
g37_z1_3, g37_z1_3, g37_z0_3, g37_W3,
|
|
|
|
g37_z0_4, g37_z1_4, g37_z1_4, g37_W4,
|
|
g37_z1_4, g37_z0_4, g37_z1_4, g37_W4,
|
|
g37_z1_4, g37_z1_4, g37_z0_4, g37_W4,
|
|
|
|
g37_z0_5, g37_z1_5, g37_z1_5, g37_W5,
|
|
g37_z1_5, g37_z0_5, g37_z1_5, g37_W5,
|
|
g37_z1_5, g37_z1_5, g37_z0_5, g37_W5,
|
|
|
|
g37_z0_6, g37_z1_6, g37_z1_6, g37_W6,
|
|
g37_z1_6, g37_z0_6, g37_z1_6, g37_W6,
|
|
g37_z1_6, g37_z1_6, g37_z0_6, g37_W6,
|
|
|
|
g37_z0_7, g37_z1_7, g37_z1_7, g37_W7,
|
|
g37_z1_7, g37_z0_7, g37_z1_7, g37_W7,
|
|
g37_z1_7, g37_z1_7, g37_z0_7, g37_W7,
|
|
|
|
g37_z0_8, g37_z1_8, g37_z2_8, g37_W8,
|
|
g37_z0_8, g37_z2_8, g37_z1_8, g37_W8,
|
|
g37_z1_8, g37_z0_8, g37_z2_8, g37_W8,
|
|
g37_z1_8, g37_z2_8, g37_z0_8, g37_W8,
|
|
g37_z2_8, g37_z0_8, g37_z1_8, g37_W8,
|
|
g37_z2_8, g37_z1_8, g37_z0_8, g37_W8,
|
|
|
|
g37_z0_9, g37_z1_9, g37_z2_9, g37_W9,
|
|
g37_z0_9, g37_z2_9, g37_z1_9, g37_W9,
|
|
g37_z1_9, g37_z0_9, g37_z2_9, g37_W9,
|
|
g37_z1_9, g37_z2_9, g37_z0_9, g37_W9,
|
|
g37_z2_9, g37_z0_9, g37_z1_9, g37_W9,
|
|
g37_z2_9, g37_z1_9, g37_z0_9, g37_W9,
|
|
|
|
g37_z0_10, g37_z1_10, g37_z2_10, g37_W10,
|
|
g37_z0_10, g37_z2_10, g37_z1_10, g37_W10,
|
|
g37_z1_10, g37_z0_10, g37_z2_10, g37_W10,
|
|
g37_z1_10, g37_z2_10, g37_z0_10, g37_W10,
|
|
g37_z2_10, g37_z0_10, g37_z1_10, g37_W10,
|
|
g37_z2_10, g37_z1_10, g37_z0_10, g37_W10
|
|
};
|
|
|
|
// Added by Samuel Jung, 4/16/2025
|
|
// these are 3rd order quadrature points for a tetrahedron.
|
|
// there are 4 evaluation points in this scheme.
|
|
// these points come from the paper"Symmetric quadrature rules for tetrahedra based on a
|
|
// cubic close-packed lattice arrangement" by Lee Shunn and Frank Ham
|
|
#define g3d_4_a 0.1381966011250110
|
|
#define g3d_4_b 0.5854101966249680
|
|
#define g3d_4_w 0.250
|
|
static fp_t g3d_4[4][5] =
|
|
{
|
|
g3d_4_b, g3d_4_a, g3d_4_a, g3d_4_a, g3d_4_w,
|
|
g3d_4_a, g3d_4_b, g3d_4_a, g3d_4_a, g3d_4_w,
|
|
g3d_4_a, g3d_4_a, g3d_4_b, g3d_4_a, g3d_4_w,
|
|
g3d_4_a, g3d_4_a, g3d_4_a, g3d_4_b, g3d_4_w
|
|
};
|
|
|
|
#define g3d_10_a 0.0738349017262234
|
|
#define g3d_10_b 0.7784952948213300
|
|
#define g3d_10_c 0.4062443438840510
|
|
#define g3d_10_d 0.0937556561159491
|
|
#define g3d_10_w1 0.0476331348432089
|
|
#define g3d_10_w2 0.1349112434378610
|
|
static fp_t g3d_10[10][5] =
|
|
{
|
|
g3d_10_b, g3d_10_a, g3d_10_a, g3d_10_a, g3d_10_w1,
|
|
g3d_10_a, g3d_10_b, g3d_10_a, g3d_10_a, g3d_10_w1,
|
|
g3d_10_a, g3d_10_a, g3d_10_b, g3d_10_a, g3d_10_w1,
|
|
g3d_10_a, g3d_10_a, g3d_10_a, g3d_10_b, g3d_10_w1,
|
|
g3d_10_c, g3d_10_c, g3d_10_d, g3d_10_d, g3d_10_w2,
|
|
g3d_10_c, g3d_10_d, g3d_10_c, g3d_10_d, g3d_10_w2,
|
|
g3d_10_c, g3d_10_d, g3d_10_d, g3d_10_c, g3d_10_w2,
|
|
g3d_10_d, g3d_10_c, g3d_10_c, g3d_10_d, g3d_10_w2,
|
|
g3d_10_d, g3d_10_c, g3d_10_d, g3d_10_c, g3d_10_w2,
|
|
g3d_10_d, g3d_10_d, g3d_10_c, g3d_10_c, g3d_10_w2,
|
|
};
|
|
|
|
static fp_t g3d_20[20][5] =
|
|
{
|
|
0.9029422158182680, 0.0323525947272439, 0.0323525947272439, 0.0323525947272439, 0.0070670747944695,
|
|
0.0323525947272439, 0.9029422158182680, 0.0323525947272439, 0.0323525947272439, 0.0070670747944695,
|
|
0.0323525947272439, 0.0323525947272439, 0.9029422158182680, 0.0323525947272439, 0.0070670747944695,
|
|
0.0323525947272439, 0.0323525947272439, 0.0323525947272439, 0.9029422158182680, 0.0070670747944695,
|
|
0.2626825838877790, 0.6165965330619370, 0.0603604415251421, 0.0603604415251421, 0.0469986689718877,
|
|
0.6165965330619370, 0.2626825838877790, 0.0603604415251421, 0.0603604415251421, 0.0469986689718877,
|
|
0.2626825838877790, 0.0603604415251421, 0.6165965330619370, 0.0603604415251421, 0.0469986689718877,
|
|
0.6165965330619370, 0.0603604415251421, 0.2626825838877790, 0.0603604415251421, 0.0469986689718877,
|
|
0.2626825838877790, 0.0603604415251421, 0.0603604415251421, 0.6165965330619370, 0.0469986689718877,
|
|
0.6165965330619370, 0.0603604415251421, 0.0603604415251421, 0.2626825838877790, 0.0469986689718877,
|
|
0.0603604415251421, 0.2626825838877790, 0.6165965330619370, 0.0603604415251421, 0.0469986689718877,
|
|
0.0603604415251421, 0.6165965330619370, 0.2626825838877790, 0.0603604415251421, 0.0469986689718877,
|
|
0.0603604415251421, 0.2626825838877790, 0.0603604415251421, 0.6165965330619370, 0.0469986689718877,
|
|
0.0603604415251421, 0.6165965330619370, 0.0603604415251421, 0.2626825838877790, 0.0469986689718877,
|
|
0.0603604415251421, 0.0603604415251421, 0.2626825838877790, 0.6165965330619370, 0.0469986689718877,
|
|
0.0603604415251421, 0.0603604415251421, 0.6165965330619370, 0.2626825838877790, 0.0469986689718877,
|
|
0.3097693042728620, 0.3097693042728620, 0.3097693042728620, 0.0706920871814129, 0.1019369182898680,
|
|
0.3097693042728620, 0.3097693042728620, 0.0706920871814129, 0.3097693042728620, 0.1019369182898680,
|
|
0.3097693042728620, 0.0706920871814129, 0.3097693042728620, 0.3097693042728620, 0.1019369182898680,
|
|
0.0706920871814129, 0.3097693042728620, 0.3097693042728620, 0.3097693042728620, 0.1019369182898680
|
|
};
|
|
|
|
static fp_t g3d_35[35][5] =
|
|
{
|
|
0.9197896733368800, 0.0267367755543735, 0.0267367755543735, 0.0267367755543735, 0.0021900463965388,
|
|
0.0267367755543735, 0.9197896733368800, 0.0267367755543735, 0.0267367755543735, 0.0021900463965388,
|
|
0.0267367755543735, 0.0267367755543735, 0.9197896733368800, 0.0267367755543735, 0.0021900463965388,
|
|
0.0267367755543735, 0.0267367755543735, 0.0267367755543735, 0.9197896733368800, 0.0021900463965388,
|
|
0.1740356302468940, 0.7477598884818090, 0.0391022406356488, 0.0391022406356488, 0.0143395670177665,
|
|
0.7477598884818090, 0.1740356302468940, 0.0391022406356488, 0.0391022406356488, 0.0143395670177665,
|
|
0.1740356302468940, 0.0391022406356488, 0.7477598884818090, 0.0391022406356488, 0.0143395670177665,
|
|
0.7477598884818090, 0.0391022406356488, 0.1740356302468940, 0.0391022406356488, 0.0143395670177665,
|
|
0.1740356302468940, 0.0391022406356488, 0.0391022406356488, 0.7477598884818090, 0.0143395670177665,
|
|
0.7477598884818090, 0.0391022406356488, 0.0391022406356488, 0.1740356302468940, 0.0143395670177665,
|
|
0.0391022406356488, 0.1740356302468940, 0.7477598884818090, 0.0391022406356488, 0.0143395670177665,
|
|
0.0391022406356488, 0.7477598884818090, 0.1740356302468940, 0.0391022406356488, 0.0143395670177665,
|
|
0.0391022406356488, 0.1740356302468940, 0.0391022406356488, 0.7477598884818090, 0.0143395670177665,
|
|
0.0391022406356488, 0.7477598884818090, 0.0391022406356488, 0.1740356302468940, 0.0143395670177665,
|
|
0.0391022406356488, 0.0391022406356488, 0.1740356302468940, 0.7477598884818090, 0.0143395670177665,
|
|
0.0391022406356488, 0.0391022406356488, 0.7477598884818090, 0.1740356302468940, 0.0143395670177665,
|
|
0.4547545999844830, 0.4547545999844830, 0.0452454000155172, 0.0452454000155172, 0.0250305395686746,
|
|
0.4547545999844830, 0.0452454000155172, 0.4547545999844830, 0.0452454000155172, 0.0250305395686746,
|
|
0.4547545999844830, 0.0452454000155172, 0.0452454000155172, 0.4547545999844830, 0.0250305395686746,
|
|
0.0452454000155172, 0.4547545999844830, 0.4547545999844830, 0.0452454000155172, 0.0250305395686746,
|
|
0.0452454000155172, 0.4547545999844830, 0.0452454000155172, 0.4547545999844830, 0.0250305395686746,
|
|
0.0452454000155172, 0.0452454000155172, 0.4547545999844830, 0.4547545999844830, 0.0250305395686746,
|
|
0.5031186450145980, 0.2232010379623150, 0.2232010379623150, 0.0504792790607720, 0.0479839333057554,
|
|
0.2232010379623150, 0.5031186450145980, 0.2232010379623150, 0.0504792790607720, 0.0479839333057554,
|
|
0.2232010379623150, 0.2232010379623150, 0.5031186450145980, 0.0504792790607720, 0.0479839333057554,
|
|
0.5031186450145980, 0.2232010379623150, 0.0504792790607720, 0.2232010379623150, 0.0479839333057554,
|
|
0.2232010379623150, 0.5031186450145980, 0.0504792790607720, 0.2232010379623150, 0.0479839333057554,
|
|
0.2232010379623150, 0.2232010379623150, 0.0504792790607720, 0.5031186450145980, 0.0479839333057554,
|
|
0.5031186450145980, 0.0504792790607720, 0.2232010379623150, 0.2232010379623150, 0.0479839333057554,
|
|
0.2232010379623150, 0.0504792790607720, 0.5031186450145980, 0.2232010379623150, 0.0479839333057554,
|
|
0.2232010379623150, 0.0504792790607720, 0.2232010379623150, 0.5031186450145980, 0.0479839333057554,
|
|
0.0504792790607720, 0.5031186450145980, 0.2232010379623150, 0.2232010379623150, 0.0479839333057554,
|
|
0.0504792790607720, 0.2232010379623150, 0.5031186450145980, 0.2232010379623150, 0.0479839333057554,
|
|
0.0504792790607720, 0.2232010379623150, 0.2232010379623150, 0.5031186450145980, 0.0479839333057554,
|
|
0.2500000000000000, 0.2500000000000000, 0.2500000000000000, 0.2500000000000000, 0.0931745731195340
|
|
};
|
|
|
|
static fp_t g3d_56[56][5] =
|
|
{
|
|
0.9551438045408220, 0.0149520651530592, 0.0149520651530592, 0.0149520651530592, 0.0010373112336140,
|
|
0.0149520651530592, 0.9551438045408220, 0.0149520651530592, 0.0149520651530592, 0.0010373112336140,
|
|
0.0149520651530592, 0.0149520651530592, 0.9551438045408220, 0.0149520651530592, 0.0010373112336140,
|
|
0.0149520651530592, 0.0149520651530592, 0.0149520651530592, 0.9551438045408220, 0.0010373112336140,
|
|
0.7799760084415400, 0.1518319491659370, 0.0340960211962615, 0.0340960211962615, 0.0096016645399480,
|
|
0.1518319491659370, 0.7799760084415400, 0.0340960211962615, 0.0340960211962615, 0.0096016645399480,
|
|
0.7799760084415400, 0.0340960211962615, 0.1518319491659370, 0.0340960211962615, 0.0096016645399480,
|
|
0.1518319491659370, 0.0340960211962615, 0.7799760084415400, 0.0340960211962615, 0.0096016645399480,
|
|
0.7799760084415400, 0.0340960211962615, 0.0340960211962615, 0.1518319491659370, 0.0096016645399480,
|
|
0.1518319491659370, 0.0340960211962615, 0.0340960211962615, 0.7799760084415400, 0.0096016645399480,
|
|
0.0340960211962615, 0.7799760084415400, 0.1518319491659370, 0.0340960211962615, 0.0096016645399480,
|
|
0.0340960211962615, 0.1518319491659370, 0.7799760084415400, 0.0340960211962615, 0.0096016645399480,
|
|
0.0340960211962615, 0.7799760084415400, 0.0340960211962615, 0.1518319491659370, 0.0096016645399480,
|
|
0.0340960211962615, 0.1518319491659370, 0.0340960211962615, 0.7799760084415400, 0.0096016645399480,
|
|
0.0340960211962615, 0.0340960211962615, 0.7799760084415400, 0.1518319491659370, 0.0096016645399480,
|
|
0.0340960211962615, 0.0340960211962615, 0.1518319491659370, 0.7799760084415400, 0.0096016645399480,
|
|
0.3549340560639790, 0.5526556431060170, 0.0462051504150017, 0.0462051504150017, 0.0164493976798232,
|
|
0.5526556431060170, 0.3549340560639790, 0.0462051504150017, 0.0462051504150017, 0.0164493976798232,
|
|
0.3549340560639790, 0.0462051504150017, 0.5526556431060170, 0.0462051504150017, 0.0164493976798232,
|
|
0.5526556431060170, 0.0462051504150017, 0.3549340560639790, 0.0462051504150017, 0.0164493976798232,
|
|
0.3549340560639790, 0.0462051504150017, 0.0462051504150017, 0.5526556431060170, 0.0164493976798232,
|
|
0.5526556431060170, 0.0462051504150017, 0.0462051504150017, 0.3549340560639790, 0.0164493976798232,
|
|
0.0462051504150017, 0.3549340560639790, 0.5526556431060170, 0.0462051504150017, 0.0164493976798232,
|
|
0.0462051504150017, 0.5526556431060170, 0.3549340560639790, 0.0462051504150017, 0.0164493976798232,
|
|
0.0462051504150017, 0.3549340560639790, 0.0462051504150017, 0.5526556431060170, 0.0164493976798232,
|
|
0.0462051504150017, 0.5526556431060170, 0.0462051504150017, 0.3549340560639790, 0.0164493976798232,
|
|
0.0462051504150017, 0.0462051504150017, 0.3549340560639790, 0.5526556431060170, 0.0164493976798232,
|
|
0.0462051504150017, 0.0462051504150017, 0.5526556431060170, 0.3549340560639790, 0.0164493976798232,
|
|
0.5381043228880020, 0.2281904610687610, 0.2281904610687610, 0.0055147549744775, 0.0153747766513310,
|
|
0.2281904610687610, 0.5381043228880020, 0.2281904610687610, 0.0055147549744775, 0.0153747766513310,
|
|
0.2281904610687610, 0.2281904610687610, 0.5381043228880020, 0.0055147549744775, 0.0153747766513310,
|
|
0.5381043228880020, 0.2281904610687610, 0.0055147549744775, 0.2281904610687610, 0.0153747766513310,
|
|
0.2281904610687610, 0.5381043228880020, 0.0055147549744775, 0.2281904610687610, 0.0153747766513310,
|
|
0.2281904610687610, 0.2281904610687610, 0.0055147549744775, 0.5381043228880020, 0.0153747766513310,
|
|
0.5381043228880020, 0.0055147549744775, 0.2281904610687610, 0.2281904610687610, 0.0153747766513310,
|
|
0.2281904610687610, 0.0055147549744775, 0.5381043228880020, 0.2281904610687610, 0.0153747766513310,
|
|
0.2281904610687610, 0.0055147549744775, 0.2281904610687610, 0.5381043228880020, 0.0153747766513310,
|
|
0.0055147549744775, 0.5381043228880020, 0.2281904610687610, 0.2281904610687610, 0.0153747766513310,
|
|
0.0055147549744775, 0.2281904610687610, 0.5381043228880020, 0.2281904610687610, 0.0153747766513310,
|
|
0.0055147549744775, 0.2281904610687610, 0.2281904610687610, 0.5381043228880020, 0.0153747766513310,
|
|
0.1961837595745600, 0.3523052600879940, 0.3523052600879940, 0.0992057202494530, 0.0293520118375230,
|
|
0.3523052600879940, 0.1961837595745600, 0.3523052600879940, 0.0992057202494530, 0.0293520118375230,
|
|
0.3523052600879940, 0.3523052600879940, 0.1961837595745600, 0.0992057202494530, 0.0293520118375230,
|
|
0.1961837595745600, 0.3523052600879940, 0.0992057202494530, 0.3523052600879940, 0.0293520118375230,
|
|
0.3523052600879940, 0.1961837595745600, 0.0992057202494530, 0.3523052600879940, 0.0293520118375230,
|
|
0.3523052600879940, 0.3523052600879940, 0.0992057202494530, 0.1961837595745600, 0.0293520118375230,
|
|
0.1961837595745600, 0.0992057202494530, 0.3523052600879940, 0.3523052600879940, 0.0293520118375230,
|
|
0.3523052600879940, 0.0992057202494530, 0.1961837595745600, 0.3523052600879940, 0.0293520118375230,
|
|
0.3523052600879940, 0.0992057202494530, 0.3523052600879940, 0.1961837595745600, 0.0293520118375230,
|
|
0.0992057202494530, 0.1961837595745600, 0.3523052600879940, 0.3523052600879940, 0.0293520118375230,
|
|
0.0992057202494530, 0.3523052600879940, 0.1961837595745600, 0.3523052600879940, 0.0293520118375230,
|
|
0.0992057202494530, 0.3523052600879940, 0.3523052600879940, 0.1961837595745600, 0.0293520118375230,
|
|
0.5965649956210170, 0.1344783347929940, 0.1344783347929940, 0.1344783347929940, 0.0366291366405108,
|
|
0.1344783347929940, 0.5965649956210170, 0.1344783347929940, 0.1344783347929940, 0.0366291366405108,
|
|
0.1344783347929940, 0.1344783347929940, 0.5965649956210170, 0.1344783347929940, 0.0366291366405108,
|
|
0.1344783347929940, 0.1344783347929940, 0.1344783347929940, 0.5965649956210170, 0.0366291366405108
|
|
};
|
|
|
|
static fp_t gauss21[21][4] =
|
|
{
|
|
0.444444, 0.444444, 0.111111, 0.075011,
|
|
0.367096, 0.367096, 0.265809, 0.0419797,
|
|
0.831189, 0.135049, 0.0337622, 0.0419797,
|
|
0.135049, 0.831189, 0.0337622, 0.0419797,
|
|
0.626856, 0.21643, 0.156714, 0.0441314,
|
|
0.490047, 0.490047, 0.0199053, 0.0441314,
|
|
0.21643, 0.626856, 0.156714, 0.0441314,
|
|
0.111111, 0.444444, 0.444444, 0.075011,
|
|
0.265809, 0.367096, 0.367096, 0.0419797,
|
|
0.0337622, 0.831189, 0.135049, 0.0419797,
|
|
0.0337622, 0.135049, 0.831189, 0.0419797,
|
|
0.156714, 0.626856, 0.21643, 0.0441314,
|
|
0.0199053, 0.490047, 0.490047, 0.0441314,
|
|
0.156714, 0.21643, 0.626856, 0.0441314,
|
|
0.444444, 0.111111, 0.444444, 0.075011,
|
|
0.367096, 0.265809, 0.367096, 0.0419797,
|
|
0.135049, 0.0337622, 0.831189, 0.0419797,
|
|
0.831189, 0.0337622, 0.135049, 0.0419797,
|
|
0.21643, 0.156714, 0.626856, 0.0441314,
|
|
0.490047, 0.0199053, 0.490047, 0.0441314,
|
|
0.626856, 0.156714, 0.21643, 0.0441314
|
|
};
|
|
|
|
static fp_t gauss4_21[4][21][4] =
|
|
{
|
|
0.444444, 0.444444, 0.111111, 0.075011,
|
|
0.367096, 0.367096, 0.265809, 0.0419797,
|
|
0.831189, 0.135049, 0.0337622, 0.0419797,
|
|
0.135049, 0.831189, 0.0337622, 0.0419797,
|
|
0.626856, 0.21643, 0.156714, 0.0441314,
|
|
0.490047, 0.490047, 0.0199053, 0.0441314,
|
|
0.21643, 0.626856, 0.156714, 0.0441314,
|
|
0.111111, 0.444444, 0.444444, 0.075011,
|
|
0.265809, 0.367096, 0.367096, 0.0419797,
|
|
0.0337622, 0.831189, 0.135049, 0.0419797,
|
|
0.0337622, 0.135049, 0.831189, 0.0419797,
|
|
0.156714, 0.626856, 0.21643, 0.0441314,
|
|
0.0199053, 0.490047, 0.490047, 0.0441314,
|
|
0.156714, 0.21643, 0.626856, 0.0441314,
|
|
0.444444, 0.111111, 0.444444, 0.075011,
|
|
0.367096, 0.265809, 0.367096, 0.0419797,
|
|
0.135049, 0.0337622, 0.831189, 0.0419797,
|
|
0.831189, 0.0337622, 0.135049, 0.0419797,
|
|
0.21643, 0.156714, 0.626856, 0.0441314,
|
|
0.490047, 0.0199053, 0.490047, 0.0441314,
|
|
0.626856, 0.156714, 0.21643, 0.0441314,
|
|
|
|
0.533333, 0.4, 0.0666667, 0.0450066,
|
|
0.579743, 0.260772, 0.159485, 0.0251878,
|
|
0.858199, 0.121544, 0.0202573, 0.0251878,
|
|
0.162058, 0.817684, 0.0202573, 0.0251878,
|
|
0.752227, 0.153744, 0.0940284, 0.0264788,
|
|
0.505972, 0.482085, 0.0119432, 0.0264788,
|
|
0.341801, 0.56417, 0.0940284, 0.0264788,
|
|
0.2, 0.4, 0.4, 0.13502,
|
|
0.478456, 0.260772, 0.260772, 0.0755635,
|
|
0.0607719, 0.817684, 0.121544, 0.0755635,
|
|
0.0607719, 0.121544, 0.817684, 0.0755635,
|
|
0.282085, 0.56417, 0.153744, 0.0794365,
|
|
0.0358295, 0.482085, 0.482085, 0.0794365,
|
|
0.282085, 0.153744, 0.56417, 0.0794365,
|
|
0.533333, 0.0666667, 0.4, 0.0450066,
|
|
0.579743, 0.159485, 0.260772, 0.0251878,
|
|
0.162058, 0.0202573, 0.817684, 0.0251878,
|
|
0.858199, 0.0202573, 0.121544, 0.0251878,
|
|
0.341801, 0.0940284, 0.56417, 0.0264788,
|
|
0.505972, 0.0119432, 0.482085, 0.0264788,
|
|
0.752227, 0.0940284, 0.153744, 0.0264788,
|
|
|
|
0.4, 0.533333, 0.0666667, 0.0450066,
|
|
0.260772, 0.579743, 0.159485, 0.0251878,
|
|
0.817684, 0.162058, 0.0202573, 0.0251878,
|
|
0.121544, 0.858199, 0.0202573, 0.0251878,
|
|
0.56417, 0.341801, 0.0940284, 0.0264788,
|
|
0.482085, 0.505972, 0.0119432, 0.0264788,
|
|
0.153744, 0.752227, 0.0940284, 0.0264788,
|
|
0.0666667, 0.533333, 0.4, 0.0450066,
|
|
0.159485, 0.579743, 0.260772, 0.0251878,
|
|
0.0202573, 0.858199, 0.121544, 0.0251878,
|
|
0.0202573, 0.162058, 0.817684, 0.0251878,
|
|
0.0940284, 0.752227, 0.153744, 0.0264788,
|
|
0.0119432, 0.505972, 0.482085, 0.0264788,
|
|
0.0940284, 0.341801, 0.56417, 0.0264788,
|
|
0.4, 0.2, 0.4, 0.13502,
|
|
0.260772, 0.478456, 0.260772, 0.0755635,
|
|
0.121544, 0.0607719, 0.817684, 0.0755635,
|
|
0.817684, 0.0607719, 0.121544, 0.0755635,
|
|
0.153744, 0.282085, 0.56417, 0.0794365,
|
|
0.482085, 0.0358295, 0.482085, 0.0794365,
|
|
0.56417, 0.282085, 0.153744, 0.0794365,
|
|
|
|
0.4, 0.4, 0.2, 0.13502,
|
|
0.260772, 0.260772, 0.478456, 0.0755635,
|
|
0.817684, 0.121544, 0.0607719, 0.0755635,
|
|
0.121544, 0.817684, 0.0607719, 0.0755635,
|
|
0.56417, 0.153744, 0.282085, 0.0794365,
|
|
0.482085, 0.482085, 0.0358295, 0.0794365,
|
|
0.153744, 0.56417, 0.282085, 0.0794365,
|
|
0.0666667, 0.4, 0.533333, 0.0450066,
|
|
0.159485, 0.260772, 0.579743, 0.0251878,
|
|
0.0202573, 0.817684, 0.162058, 0.0251878,
|
|
0.0202573, 0.121544, 0.858199, 0.0251878,
|
|
0.0940284, 0.56417, 0.341801, 0.0264788,
|
|
0.0119432, 0.482085, 0.505972, 0.0264788,
|
|
0.0940284, 0.153744, 0.752227, 0.0264788,
|
|
0.4, 0.0666667, 0.533333, 0.0450066,
|
|
0.260772, 0.159485, 0.579743, 0.0251878,
|
|
0.121544, 0.0202573, 0.858199, 0.0251878,
|
|
0.817684, 0.0202573, 0.162058, 0.0251878,
|
|
0.153744, 0.0940284, 0.752227, 0.0264788,
|
|
0.482085, 0.0119432, 0.505972, 0.0264788,
|
|
0.56417, 0.0940284, 0.341801, 0.0264788,
|
|
};
|
|
|
|
// a factor of 2 was divided by all weights 08/15/02
|
|
static fp_t duffy1_12[1][12][4] =
|
|
{
|
|
0.429558, 0.30755, 0.262892, 0.0704416/2.,
|
|
0.30755, 0.429558, 0.262892, 0.0704416/2.,
|
|
0.69245, 0.237108, 0.0704416, 0.262892/2.,
|
|
0.237108, 0.69245, 0.0704416, 0.262892/2.,
|
|
0.262892, 0.429558, 0.30755, 0.0704416/2.,
|
|
0.262892, 0.30755, 0.429558, 0.0704416/2.,
|
|
0.0704416, 0.69245, 0.237108, 0.262892/2.,
|
|
0.0704416, 0.237108, 0.69245, 0.262892/2.,
|
|
0.30755, 0.262892, 0.429558, 0.0704416/2.,
|
|
0.429558, 0.262892, 0.30755, 0.0704416/2.,
|
|
0.237108, 0.0704416, 0.69245, 0.262892/2.,
|
|
0.69245, 0.0704416, 0.237108, 0.262892/2.,
|
|
};
|
|
|
|
|
|
// a factor of 2 was divided by all weights 08/15/02
|
|
static fp_t duffy3_12[3][12][4] =
|
|
{
|
|
0.69245, 0.176104, 0.131446, 0.0352208/2.,
|
|
0.570442, 0.298113, 0.131446, 0.0352208/2.,
|
|
0.762892, 0.201887, 0.0352208, 0.131446/2.,
|
|
0.30755, 0.657229, 0.0352208, 0.131446/2.,
|
|
0.525783, 0.298113, 0.176104, 0.140883/2.,
|
|
0.525783, 0.176104, 0.298113, 0.140883/2.,
|
|
0.140883, 0.657229, 0.201887, 0.525783/2.,
|
|
0.140883, 0.201887, 0.657229, 0.525783/2.,
|
|
0.570442, 0.131446, 0.298113, 0.0352208/2.,
|
|
0.69245, 0.131446, 0.176104, 0.0352208/2.,
|
|
0.30755, 0.0352208, 0.657229, 0.131446/2.,
|
|
0.762892, 0.0352208, 0.201887, 0.131446/2.,
|
|
|
|
0.298113, 0.570442, 0.131446, 0.0352208/2.,
|
|
0.176104, 0.69245, 0.131446, 0.0352208/2.,
|
|
0.657229, 0.30755, 0.0352208, 0.131446/2.,
|
|
0.201887, 0.762892, 0.0352208, 0.131446/2.,
|
|
0.131446, 0.69245, 0.176104, 0.0352208/2.,
|
|
0.131446, 0.570442, 0.298113, 0.0352208/2.,
|
|
0.0352208, 0.762892, 0.201887, 0.131446/2.,
|
|
0.0352208, 0.30755, 0.657229, 0.131446/2.,
|
|
0.176104, 0.525783, 0.298113, 0.140883/2.,
|
|
0.298113, 0.525783, 0.176104, 0.140883/2.,
|
|
0.201887, 0.140883, 0.657229, 0.525783/2.,
|
|
0.657229, 0.140883, 0.201887, 0.525783/2.,
|
|
|
|
0.298113, 0.176104, 0.525783, 0.140883/2.,
|
|
0.176104, 0.298113, 0.525783, 0.140883/2.,
|
|
0.657229, 0.201887, 0.140883, 0.525783/2.,
|
|
0.201887, 0.657229, 0.140883, 0.525783/2.,
|
|
0.131446, 0.298113, 0.570442, 0.0352208/2.,
|
|
0.131446, 0.176104, 0.69245, 0.0352208/2.,
|
|
0.0352208, 0.657229, 0.30755, 0.131446/2.,
|
|
0.0352208, 0.201887, 0.762892, 0.131446/2.,
|
|
0.176104, 0.131446, 0.69245, 0.0352208/2.,
|
|
0.298113, 0.131446, 0.570442, 0.0352208/2.,
|
|
0.201887, 0.0352208, 0.762892, 0.131446/2.,
|
|
0.657229, 0.0352208, 0.30755, 0.131446/2.,
|
|
};
|
|
|
|
// correct waights should add up to 2.
|
|
static fp_t duffy4_12[4][12][4] =
|
|
{
|
|
0.429558, 0.30755, 0.262892, 0.0704416,
|
|
0.30755, 0.429558, 0.262892, 0.0704416,
|
|
0.69245, 0.237108, 0.0704416, 0.262892,
|
|
0.237108, 0.69245, 0.0704416, 0.262892,
|
|
0.262892, 0.429558, 0.30755, 0.0704416,
|
|
0.262892, 0.30755, 0.429558, 0.0704416,
|
|
0.0704416, 0.69245, 0.237108, 0.262892,
|
|
0.0704416, 0.237108, 0.69245, 0.262892,
|
|
0.30755, 0.262892, 0.429558, 0.0704416,
|
|
0.429558, 0.262892, 0.30755, 0.0704416,
|
|
0.237108, 0.0704416, 0.69245, 0.262892,
|
|
0.69245, 0.0704416, 0.237108, 0.262892,
|
|
|
|
0.639872, 0.202393, 0.157735, 0.042265,
|
|
0.517863, 0.324402, 0.157735, 0.042265,
|
|
0.748803, 0.208932, 0.042265, 0.157735,
|
|
0.293462, 0.664273, 0.042265, 0.157735,
|
|
0.473205, 0.324402, 0.202393, 0.126795,
|
|
0.473205, 0.202393, 0.324402, 0.126795,
|
|
0.126795, 0.664273, 0.208932, 0.473205,
|
|
0.126795, 0.208932, 0.664273, 0.473205,
|
|
0.517863, 0.157735, 0.324402, 0.042265,
|
|
0.639872, 0.157735, 0.202393, 0.042265,
|
|
0.293462, 0.042265, 0.664273, 0.157735,
|
|
0.748803, 0.042265, 0.208932, 0.157735,
|
|
|
|
0.324402, 0.517863, 0.157735, 0.042265,
|
|
0.202393, 0.639872, 0.157735, 0.042265,
|
|
0.664273, 0.293462, 0.042265, 0.157735,
|
|
0.208932, 0.748803, 0.042265, 0.157735,
|
|
0.157735, 0.639872, 0.202393, 0.042265,
|
|
0.157735, 0.517863, 0.324402, 0.042265,
|
|
0.042265, 0.748803, 0.208932, 0.157735,
|
|
0.042265, 0.293462, 0.664273, 0.157735,
|
|
0.202393, 0.473205, 0.324402, 0.126795,
|
|
0.324402, 0.473205, 0.202393, 0.126795,
|
|
0.208932, 0.126795, 0.664273, 0.473205,
|
|
0.664273, 0.126795, 0.208932, 0.473205,
|
|
|
|
0.324402, 0.202393, 0.473205, 0.126795,
|
|
0.202393, 0.324402, 0.473205, 0.126795,
|
|
0.664273, 0.208932, 0.126795, 0.473205,
|
|
0.208932, 0.664273, 0.126795, 0.473205,
|
|
0.157735, 0.324402, 0.517863, 0.042265,
|
|
0.157735, 0.202393, 0.639872, 0.042265,
|
|
0.042265, 0.664273, 0.293462, 0.157735,
|
|
0.042265, 0.208932, 0.748803, 0.157735,
|
|
0.202393, 0.157735, 0.639872, 0.042265,
|
|
0.324402, 0.157735, 0.517863, 0.042265,
|
|
0.208932, 0.042265, 0.748803, 0.157735,
|
|
0.664273, 0.042265, 0.293462, 0.157735,
|
|
};
|
|
|
|
// a factor of 2 was divided by all weights 08/15/02
|
|
static fp_t duffy7_12[7][12][4] =
|
|
{
|
|
0.429558, 0.30755, 0.262892, 0.0704416/2.,
|
|
0.30755, 0.429558, 0.262892, 0.0704416/2.,
|
|
0.69245, 0.237108, 0.0704416, 0.262892/2.,
|
|
0.237108, 0.69245, 0.0704416, 0.262892/2.,
|
|
0.262892, 0.429558, 0.30755, 0.0704416/2.,
|
|
0.262892, 0.30755, 0.429558, 0.0704416/2.,
|
|
0.0704416, 0.69245, 0.237108, 0.262892/2.,
|
|
0.0704416, 0.237108, 0.69245, 0.262892/2.,
|
|
0.30755, 0.262892, 0.429558, 0.0704416/2.,
|
|
0.429558, 0.262892, 0.30755, 0.0704416/2.,
|
|
0.237108, 0.0704416, 0.69245, 0.262892/2.,
|
|
0.69245, 0.0704416, 0.237108, 0.262892/2.,
|
|
|
|
0.795578, 0.12454, 0.0798821, 0.0214044/2.,
|
|
0.673569, 0.246549, 0.0798821, 0.0214044/2.,
|
|
0.790525, 0.188071, 0.0214044, 0.0798821/2.,
|
|
0.335183, 0.643413, 0.0214044, 0.0798821/2.,
|
|
0.628911, 0.246549, 0.12454, 0.168516/2.,
|
|
0.628911, 0.12454, 0.246549, 0.168516/2.,
|
|
0.168516, 0.643413, 0.188071, 0.628911/2.,
|
|
0.168516, 0.188071, 0.643413, 0.628911/2.,
|
|
0.673569, 0.0798821, 0.246549, 0.0214044/2.,
|
|
0.795578, 0.0798821, 0.12454, 0.0214044/2.,
|
|
0.335183, 0.0214044, 0.643413, 0.0798821/2.,
|
|
0.790525, 0.0214044, 0.188071, 0.0798821/2.,
|
|
|
|
0.246549, 0.673569, 0.0798821, 0.0214044/2.,
|
|
0.12454, 0.795578, 0.0798821, 0.0214044/2.,
|
|
0.643413, 0.335183, 0.0214044, 0.0798821/2.,
|
|
0.188071, 0.790525, 0.0214044, 0.0798821/2.,
|
|
0.0798821, 0.795578, 0.12454, 0.0214044/2.,
|
|
0.0798821, 0.673569, 0.246549, 0.0214044/2.,
|
|
0.0214044, 0.790525, 0.188071, 0.0798821/2.,
|
|
0.0214044, 0.335183, 0.643413, 0.0798821/2.,
|
|
0.12454, 0.628911, 0.246549, 0.168516/2.,
|
|
0.246549, 0.628911, 0.12454, 0.168516/2.,
|
|
0.188071, 0.168516, 0.643413, 0.628911/2.,
|
|
0.643413, 0.168516, 0.188071, 0.628911/2.,
|
|
|
|
0.246549, 0.12454, 0.628911, 0.168516/2.,
|
|
0.12454, 0.246549, 0.628911, 0.168516/2.,
|
|
0.643413, 0.188071, 0.168516, 0.628911/2.,
|
|
0.188071, 0.643413, 0.168516, 0.628911/2.,
|
|
0.0798821, 0.246549, 0.673569, 0.0214044/2.,
|
|
0.0798821, 0.12454, 0.795578, 0.0214044/2.,
|
|
0.0214044, 0.643413, 0.335183, 0.0798821/2.,
|
|
0.0214044, 0.188071, 0.790525, 0.0798821/2.,
|
|
0.12454, 0.0798821, 0.795578, 0.0214044/2.,
|
|
0.246549, 0.0798821, 0.673569, 0.0214044/2.,
|
|
0.188071, 0.0214044, 0.790525, 0.0798821/2.,
|
|
0.643413, 0.0214044, 0.335183, 0.0798821/2.,
|
|
|
|
0.537456, 0.415448, 0.0470964, 0.0126194/2.,
|
|
0.415448, 0.537456, 0.0470964, 0.0126194/2.,
|
|
0.721361, 0.266019, 0.0126194, 0.0470964/2.,
|
|
0.266019, 0.721361, 0.0126194, 0.0470964/2.,
|
|
0.370789, 0.537456, 0.0917546, 0.0993527/2.,
|
|
0.370789, 0.415448, 0.213763, 0.0993527/2.,
|
|
0.0993527, 0.721361, 0.179286, 0.370789/2.,
|
|
0.0993527, 0.266019, 0.634628, 0.370789/2.,
|
|
0.415448, 0.370789, 0.213763, 0.0993527/2.,
|
|
0.537456, 0.370789, 0.0917546, 0.0993527/2.,
|
|
0.266019, 0.0993527, 0.634628, 0.370789/2.,
|
|
0.721361, 0.0993527, 0.179286, 0.370789/2.,
|
|
|
|
0.213763, 0.415448, 0.370789, 0.0993527/2.,
|
|
0.0917546, 0.537456, 0.370789, 0.0993527/2.,
|
|
0.634628, 0.266019, 0.0993527, 0.370789/2.,
|
|
0.179286, 0.721361, 0.0993527, 0.370789/2.,
|
|
0.0470964, 0.537456, 0.415448, 0.0126194/2.,
|
|
0.0470964, 0.415448, 0.537456, 0.0126194/2.,
|
|
0.0126194, 0.721361, 0.266019, 0.0470964/2.,
|
|
0.0126194, 0.266019, 0.721361, 0.0470964/2.,
|
|
0.0917546, 0.370789, 0.537456, 0.0993527/2.,
|
|
0.213763, 0.370789, 0.415448, 0.0993527/2.,
|
|
0.179286, 0.0993527, 0.721361, 0.370789/2.,
|
|
0.634628, 0.0993527, 0.266019, 0.370789/2.,
|
|
|
|
0.537456, 0.0917546, 0.370789, 0.0993527/2.,
|
|
0.415448, 0.213763, 0.370789, 0.0993527/2.,
|
|
0.721361, 0.179286, 0.0993527, 0.370789/2.,
|
|
0.266019, 0.634628, 0.0993527, 0.370789/2.,
|
|
0.370789, 0.213763, 0.415448, 0.0993527/2.,
|
|
0.370789, 0.0917546, 0.537456, 0.0993527/2.,
|
|
0.0993527, 0.634628, 0.266019, 0.370789/2.,
|
|
0.0993527, 0.179286, 0.721361, 0.370789/2.,
|
|
0.415448, 0.0470964, 0.537456, 0.0126194/2.,
|
|
0.537456, 0.0470964, 0.415448, 0.0126194/2.,
|
|
0.266019, 0.0126194, 0.721361, 0.0470964/2.,
|
|
0.721361, 0.0126194, 0.266019, 0.0470964/2.,
|
|
};
|
|
|
|
static fp_t duffy1_27[1][27][4] =
|
|
{
|
|
0.395766, 0.308468, 0.295766, 0.00579741,
|
|
0.308468, 0.395766, 0.295766, 0.00579741,
|
|
0.352117, 0.352117, 0.295766, 0.00927586,
|
|
0.824866, 0.137567, 0.0375672, 0.0456429,
|
|
0.137567, 0.824866, 0.0375672, 0.0456429,
|
|
0.481216, 0.481216, 0.0375672, 0.0730287,
|
|
0.610316, 0.223017, 0.166667, 0.0411523,
|
|
0.223017, 0.610316, 0.166667, 0.0411523,
|
|
0.416667, 0.416667, 0.166667, 0.0658436,
|
|
0.295766, 0.395766, 0.308468, 0.00579741,
|
|
0.295766, 0.308468, 0.395766, 0.00579741,
|
|
0.295766, 0.352117, 0.352117, 0.00927586,
|
|
0.0375672, 0.824866, 0.137567, 0.0456429,
|
|
0.0375672, 0.137567, 0.824866, 0.0456429,
|
|
0.0375672, 0.481216, 0.481216, 0.0730287,
|
|
0.166667, 0.610316, 0.223017, 0.0411523,
|
|
0.166667, 0.223017, 0.610316, 0.0411523,
|
|
0.166667, 0.416667, 0.416667, 0.0658436,
|
|
0.308468, 0.295766, 0.395766, 0.00579741,
|
|
0.395766, 0.295766, 0.308468, 0.00579741,
|
|
0.352117, 0.295766, 0.352117, 0.00927586,
|
|
0.137567, 0.0375672, 0.824866, 0.0456429,
|
|
0.824866, 0.0375672, 0.137567, 0.0456429,
|
|
0.481216, 0.0375672, 0.481216, 0.0730287,
|
|
0.223017, 0.166667, 0.610316, 0.0411523,
|
|
0.610316, 0.166667, 0.223017, 0.0411523,
|
|
0.416667, 0.166667, 0.416667, 0.0658436,
|
|
};
|
|
|
|
static fp_t duffy3_27[3][27][4] =
|
|
{
|
|
0.691532, 0.160585, 0.147883, 0.00289871,
|
|
0.604234, 0.247883, 0.147883, 0.00289871,
|
|
0.647883, 0.204234, 0.147883, 0.00463793,
|
|
0.862433, 0.118784, 0.0187836, 0.0228215,
|
|
0.175134, 0.806082, 0.0187836, 0.0228215,
|
|
0.518784, 0.462433, 0.0187836, 0.0365143,
|
|
0.776983, 0.139684, 0.0833333, 0.0205761,
|
|
0.389684, 0.526983, 0.0833333, 0.0205761,
|
|
0.583333, 0.333333, 0.0833333, 0.0329218,
|
|
0.591532, 0.247883, 0.160585, 0.0115948,
|
|
0.591532, 0.160585, 0.247883, 0.0115948,
|
|
0.591532, 0.204234, 0.204234, 0.0185517,
|
|
0.0751344, 0.806082, 0.118784, 0.0912858,
|
|
0.0751344, 0.118784, 0.806082, 0.0912858,
|
|
0.0751344, 0.462433, 0.462433, 0.146057,
|
|
0.333333, 0.526983, 0.139684, 0.0823045,
|
|
0.333333, 0.139684, 0.526983, 0.0823045,
|
|
0.333333, 0.333333, 0.333333, 0.131687,
|
|
0.604234, 0.147883, 0.247883, 0.00289871,
|
|
0.691532, 0.147883, 0.160585, 0.00289871,
|
|
0.647883, 0.147883, 0.204234, 0.00463793,
|
|
0.175134, 0.0187836, 0.806082, 0.0228215,
|
|
0.862433, 0.0187836, 0.118784, 0.0228215,
|
|
0.518784, 0.0187836, 0.462433, 0.0365143,
|
|
0.389684, 0.0833333, 0.526983, 0.0205761,
|
|
0.776983, 0.0833333, 0.139684, 0.0205761,
|
|
0.583333, 0.0833333, 0.333333, 0.0329218,
|
|
|
|
0.247883, 0.604234, 0.147883, 0.00289871,
|
|
0.160585, 0.691532, 0.147883, 0.00289871,
|
|
0.204234, 0.647883, 0.147883, 0.00463793,
|
|
0.806082, 0.175134, 0.0187836, 0.0228215,
|
|
0.118784, 0.862433, 0.0187836, 0.0228215,
|
|
0.462433, 0.518784, 0.0187836, 0.0365143,
|
|
0.526983, 0.389684, 0.0833333, 0.0205761,
|
|
0.139684, 0.776983, 0.0833333, 0.0205761,
|
|
0.333333, 0.583333, 0.0833333, 0.0329218,
|
|
0.147883, 0.691532, 0.160585, 0.00289871,
|
|
0.147883, 0.604234, 0.247883, 0.00289871,
|
|
0.147883, 0.647883, 0.204234, 0.00463793,
|
|
0.0187836, 0.862433, 0.118784, 0.0228215,
|
|
0.0187836, 0.175134, 0.806082, 0.0228215,
|
|
0.0187836, 0.518784, 0.462433, 0.0365143,
|
|
0.0833333, 0.776983, 0.139684, 0.0205761,
|
|
0.0833333, 0.389684, 0.526983, 0.0205761,
|
|
0.0833333, 0.583333, 0.333333, 0.0329218,
|
|
0.160585, 0.591532, 0.247883, 0.0115948,
|
|
0.247883, 0.591532, 0.160585, 0.0115948,
|
|
0.204234, 0.591532, 0.204234, 0.0185517,
|
|
0.118784, 0.0751344, 0.806082, 0.0912858,
|
|
0.806082, 0.0751344, 0.118784, 0.0912858,
|
|
0.462433, 0.0751344, 0.462433, 0.146057,
|
|
0.139684, 0.333333, 0.526983, 0.0823045,
|
|
0.526983, 0.333333, 0.139684, 0.0823045,
|
|
0.333333, 0.333333, 0.333333, 0.131687,
|
|
|
|
0.247883, 0.160585, 0.591532, 0.0115948,
|
|
0.160585, 0.247883, 0.591532, 0.0115948,
|
|
0.204234, 0.204234, 0.591532, 0.0185517,
|
|
0.806082, 0.118784, 0.0751344, 0.0912858,
|
|
0.118784, 0.806082, 0.0751344, 0.0912858,
|
|
0.462433, 0.462433, 0.0751344, 0.146057,
|
|
0.526983, 0.139684, 0.333333, 0.0823045,
|
|
0.139684, 0.526983, 0.333333, 0.0823045,
|
|
0.333333, 0.333333, 0.333333, 0.131687,
|
|
0.147883, 0.247883, 0.604234, 0.00289871,
|
|
0.147883, 0.160585, 0.691532, 0.00289871,
|
|
0.147883, 0.204234, 0.647883, 0.00463793,
|
|
0.0187836, 0.806082, 0.175134, 0.0228215,
|
|
0.0187836, 0.118784, 0.862433, 0.0228215,
|
|
0.0187836, 0.462433, 0.518784, 0.0365143,
|
|
0.0833333, 0.526983, 0.389684, 0.0205761,
|
|
0.0833333, 0.139684, 0.776983, 0.0205761,
|
|
0.0833333, 0.333333, 0.583333, 0.0329218,
|
|
0.160585, 0.147883, 0.691532, 0.00289871,
|
|
0.247883, 0.147883, 0.604234, 0.00289871,
|
|
0.204234, 0.147883, 0.647883, 0.00463793,
|
|
0.118784, 0.0187836, 0.862433, 0.0228215,
|
|
0.806082, 0.0187836, 0.175134, 0.0228215,
|
|
0.462433, 0.0187836, 0.518784, 0.0365143,
|
|
0.139684, 0.0833333, 0.776983, 0.0205761,
|
|
0.526983, 0.0833333, 0.389684, 0.0205761,
|
|
0.333333, 0.0833333, 0.583333, 0.0329218,
|
|
};
|
|
|
|
static fp_t duffy4_27[4][27][4] =
|
|
{
|
|
0.395766, 0.308468, 0.295766, 0.00579741,
|
|
0.308468, 0.395766, 0.295766, 0.00579741,
|
|
0.352117, 0.352117, 0.295766, 0.00927586,
|
|
0.824866, 0.137567, 0.0375672, 0.0456429,
|
|
0.137567, 0.824866, 0.0375672, 0.0456429,
|
|
0.481216, 0.481216, 0.0375672, 0.0730287,
|
|
0.610316, 0.223017, 0.166667, 0.0411523,
|
|
0.223017, 0.610316, 0.166667, 0.0411523,
|
|
0.416667, 0.416667, 0.166667, 0.0658436,
|
|
0.295766, 0.395766, 0.308468, 0.00579741,
|
|
0.295766, 0.308468, 0.395766, 0.00579741,
|
|
0.295766, 0.352117, 0.352117, 0.00927586,
|
|
0.0375672, 0.824866, 0.137567, 0.0456429,
|
|
0.0375672, 0.137567, 0.824866, 0.0456429,
|
|
0.0375672, 0.481216, 0.481216, 0.0730287,
|
|
0.166667, 0.610316, 0.223017, 0.0411523,
|
|
0.166667, 0.223017, 0.610316, 0.0411523,
|
|
0.166667, 0.416667, 0.416667, 0.0658436,
|
|
0.308468, 0.295766, 0.395766, 0.00579741,
|
|
0.395766, 0.295766, 0.308468, 0.00579741,
|
|
0.352117, 0.295766, 0.352117, 0.00927586,
|
|
0.137567, 0.0375672, 0.824866, 0.0456429,
|
|
0.824866, 0.0375672, 0.137567, 0.0456429,
|
|
0.481216, 0.0375672, 0.481216, 0.0730287,
|
|
0.223017, 0.166667, 0.610316, 0.0411523,
|
|
0.610316, 0.166667, 0.223017, 0.0411523,
|
|
0.416667, 0.166667, 0.416667, 0.0658436,
|
|
|
|
0.632379, 0.190161, 0.17746, 0.00347845,
|
|
0.545081, 0.27746, 0.17746, 0.00347845,
|
|
0.58873, 0.23381, 0.17746, 0.00556551,
|
|
0.854919, 0.12254, 0.0225403, 0.0273858,
|
|
0.167621, 0.809839, 0.0225403, 0.0273858,
|
|
0.51127, 0.46619, 0.0225403, 0.0438172,
|
|
0.743649, 0.156351, 0.1, 0.0246914,
|
|
0.356351, 0.543649, 0.1, 0.0246914,
|
|
0.55, 0.35, 0.1, 0.0395062,
|
|
0.532379, 0.27746, 0.190161, 0.0104353,
|
|
0.532379, 0.190161, 0.27746, 0.0104353,
|
|
0.532379, 0.23381, 0.23381, 0.0166965,
|
|
0.067621, 0.809839, 0.12254, 0.0821573,
|
|
0.067621, 0.12254, 0.809839, 0.0821573,
|
|
0.067621, 0.46619, 0.46619, 0.131452,
|
|
0.3, 0.543649, 0.156351, 0.0740741,
|
|
0.3, 0.156351, 0.543649, 0.0740741,
|
|
0.3, 0.35, 0.35, 0.118519,
|
|
0.545081, 0.17746, 0.27746, 0.00347845,
|
|
0.632379, 0.17746, 0.190161, 0.00347845,
|
|
0.58873, 0.17746, 0.23381, 0.00556551,
|
|
0.167621, 0.0225403, 0.809839, 0.0273858,
|
|
0.854919, 0.0225403, 0.12254, 0.0273858,
|
|
0.51127, 0.0225403, 0.46619, 0.0438172,
|
|
0.356351, 0.1, 0.543649, 0.0246914,
|
|
0.743649, 0.1, 0.156351, 0.0246914,
|
|
0.55, 0.1, 0.35, 0.0395062,
|
|
|
|
0.27746, 0.545081, 0.17746, 0.00347845,
|
|
0.190161, 0.632379, 0.17746, 0.00347845,
|
|
0.23381, 0.58873, 0.17746, 0.00556551,
|
|
0.809839, 0.167621, 0.0225403, 0.0273858,
|
|
0.12254, 0.854919, 0.0225403, 0.0273858,
|
|
0.46619, 0.51127, 0.0225403, 0.0438172,
|
|
0.543649, 0.356351, 0.1, 0.0246914,
|
|
0.156351, 0.743649, 0.1, 0.0246914,
|
|
0.35, 0.55, 0.1, 0.0395062,
|
|
0.17746, 0.632379, 0.190161, 0.00347845,
|
|
0.17746, 0.545081, 0.27746, 0.00347845,
|
|
0.17746, 0.58873, 0.23381, 0.00556551,
|
|
0.0225403, 0.854919, 0.12254, 0.0273858,
|
|
0.0225403, 0.167621, 0.809839, 0.0273858,
|
|
0.0225403, 0.51127, 0.46619, 0.0438172,
|
|
0.1, 0.743649, 0.156351, 0.0246914,
|
|
0.1, 0.356351, 0.543649, 0.0246914,
|
|
0.1, 0.55, 0.35, 0.0395062,
|
|
0.190161, 0.532379, 0.27746, 0.0104353,
|
|
0.27746, 0.532379, 0.190161, 0.0104353,
|
|
0.23381, 0.532379, 0.23381, 0.0166965,
|
|
0.12254, 0.067621, 0.809839, 0.0821573,
|
|
0.809839, 0.067621, 0.12254, 0.0821573,
|
|
0.46619, 0.067621, 0.46619, 0.131452,
|
|
0.156351, 0.3, 0.543649, 0.0740741,
|
|
0.543649, 0.3, 0.156351, 0.0740741,
|
|
0.35, 0.3, 0.35, 0.118519,
|
|
|
|
0.27746, 0.190161, 0.532379, 0.0104353,
|
|
0.190161, 0.27746, 0.532379, 0.0104353,
|
|
0.23381, 0.23381, 0.532379, 0.0166965,
|
|
0.809839, 0.12254, 0.067621, 0.0821573,
|
|
0.12254, 0.809839, 0.067621, 0.0821573,
|
|
0.46619, 0.46619, 0.067621, 0.131452,
|
|
0.543649, 0.156351, 0.3, 0.0740741,
|
|
0.156351, 0.543649, 0.3, 0.0740741,
|
|
0.35, 0.35, 0.3, 0.118519,
|
|
0.17746, 0.27746, 0.545081, 0.00347845,
|
|
0.17746, 0.190161, 0.632379, 0.00347845,
|
|
0.17746, 0.23381, 0.58873, 0.00556551,
|
|
0.0225403, 0.809839, 0.167621, 0.0273858,
|
|
0.0225403, 0.12254, 0.854919, 0.0273858,
|
|
0.0225403, 0.46619, 0.51127, 0.0438172,
|
|
0.1, 0.543649, 0.356351, 0.0246914,
|
|
0.1, 0.156351, 0.743649, 0.0246914,
|
|
0.1, 0.35, 0.55, 0.0395062,
|
|
0.190161, 0.17746, 0.632379, 0.00347845,
|
|
0.27746, 0.17746, 0.545081, 0.00347845,
|
|
0.23381, 0.17746, 0.58873, 0.00556551,
|
|
0.12254, 0.0225403, 0.854919, 0.0273858,
|
|
0.809839, 0.0225403, 0.167621, 0.0273858,
|
|
0.46619, 0.0225403, 0.51127, 0.0438172,
|
|
0.156351, 0.1, 0.743649, 0.0246914,
|
|
0.543649, 0.1, 0.356351, 0.0246914,
|
|
0.35, 0.1, 0.55, 0.0395062,
|
|
};
|
|
|
|
static fp_t duffy7_27[7][27][4] =
|
|
{
|
|
0.395766, 0.308468, 0.295766, 0.0115948,
|
|
0.308468, 0.395766, 0.295766, 0.0115948,
|
|
0.352117, 0.352117, 0.295766, 0.0185517,
|
|
0.824866, 0.137567, 0.0375672, 0.0912858,
|
|
0.137567, 0.824866, 0.0375672, 0.0912858,
|
|
0.481216, 0.481216, 0.0375672, 0.146057,
|
|
0.610316, 0.223017, 0.166667, 0.0823045,
|
|
0.223017, 0.610316, 0.166667, 0.0823045,
|
|
0.416667, 0.416667, 0.166667, 0.131687,
|
|
0.295766, 0.395766, 0.308468, 0.0115948,
|
|
0.295766, 0.308468, 0.395766, 0.0115948,
|
|
0.295766, 0.352117, 0.352117, 0.0185517,
|
|
0.0375672, 0.824866, 0.137567, 0.0912858,
|
|
0.0375672, 0.137567, 0.824866, 0.0912858,
|
|
0.0375672, 0.481216, 0.481216, 0.146057,
|
|
0.166667, 0.610316, 0.223017, 0.0823045,
|
|
0.166667, 0.223017, 0.610316, 0.0823045,
|
|
0.166667, 0.416667, 0.416667, 0.131687,
|
|
0.308468, 0.295766, 0.395766, 0.0115948,
|
|
0.395766, 0.295766, 0.308468, 0.0115948,
|
|
0.352117, 0.295766, 0.352117, 0.0185517,
|
|
0.137567, 0.0375672, 0.824866, 0.0912858,
|
|
0.824866, 0.0375672, 0.137567, 0.0912858,
|
|
0.481216, 0.0375672, 0.481216, 0.146057,
|
|
0.223017, 0.166667, 0.610316, 0.0823045,
|
|
0.610316, 0.166667, 0.223017, 0.0823045,
|
|
0.416667, 0.166667, 0.416667, 0.131687,
|
|
|
|
0.807556, 0.102573, 0.0898713, 0.0035232,
|
|
0.720257, 0.189871, 0.0898713, 0.0035232,
|
|
0.763906, 0.146222, 0.0898713, 0.00563712,
|
|
0.87717, 0.111415, 0.0114152, 0.0277381,
|
|
0.189871, 0.798713, 0.0114152, 0.0277381,
|
|
0.533521, 0.455064, 0.0114152, 0.0443809,
|
|
0.842363, 0.106994, 0.0506433, 0.025009,
|
|
0.455064, 0.494292, 0.0506433, 0.025009,
|
|
0.648713, 0.300643, 0.0506433, 0.0400144,
|
|
0.707556, 0.189871, 0.102573, 0.0277381,
|
|
0.707556, 0.102573, 0.189871, 0.0277381,
|
|
0.707556, 0.146222, 0.146222, 0.0443809,
|
|
0.0898713, 0.798713, 0.111415, 0.218381,
|
|
0.0898713, 0.111415, 0.798713, 0.218381,
|
|
0.0898713, 0.455064, 0.455064, 0.34941,
|
|
0.398713, 0.494292, 0.106994, 0.196896,
|
|
0.398713, 0.106994, 0.494292, 0.196896,
|
|
0.398713, 0.300643, 0.300643, 0.315033,
|
|
0.720257, 0.0898713, 0.189871, 0.0035232,
|
|
0.807556, 0.0898713, 0.102573, 0.0035232,
|
|
0.763906, 0.0898713, 0.146222, 0.00563712,
|
|
0.189871, 0.0114152, 0.798713, 0.0277381,
|
|
0.87717, 0.0114152, 0.111415, 0.0277381,
|
|
0.533521, 0.0114152, 0.455064, 0.0443809,
|
|
0.455064, 0.0506433, 0.494292, 0.025009,
|
|
0.842363, 0.0506433, 0.106994, 0.025009,
|
|
0.648713, 0.0506433, 0.300643, 0.0400144,
|
|
|
|
0.189871, 0.720257, 0.0898713, 0.0035232,
|
|
0.102573, 0.807556, 0.0898713, 0.0035232,
|
|
0.146222, 0.763906, 0.0898713, 0.00563712,
|
|
0.798713, 0.189871, 0.0114152, 0.0277381,
|
|
0.111415, 0.87717, 0.0114152, 0.0277381,
|
|
0.455064, 0.533521, 0.0114152, 0.0443809,
|
|
0.494292, 0.455064, 0.0506433, 0.025009,
|
|
0.106994, 0.842363, 0.0506433, 0.025009,
|
|
0.300643, 0.648713, 0.0506433, 0.0400144,
|
|
0.0898713, 0.807556, 0.102573, 0.0035232,
|
|
0.0898713, 0.720257, 0.189871, 0.0035232,
|
|
0.0898713, 0.763906, 0.146222, 0.00563712,
|
|
0.0114152, 0.87717, 0.111415, 0.0277381,
|
|
0.0114152, 0.189871, 0.798713, 0.0277381,
|
|
0.0114152, 0.533521, 0.455064, 0.0443809,
|
|
0.0506433, 0.842363, 0.106994, 0.025009,
|
|
0.0506433, 0.455064, 0.494292, 0.025009,
|
|
0.0506433, 0.648713, 0.300643, 0.0400144,
|
|
0.102573, 0.707556, 0.189871, 0.0277381,
|
|
0.189871, 0.707556, 0.102573, 0.0277381,
|
|
0.146222, 0.707556, 0.146222, 0.0443809,
|
|
0.111415, 0.0898713, 0.798713, 0.218381,
|
|
0.798713, 0.0898713, 0.111415, 0.218381,
|
|
0.455064, 0.0898713, 0.455064, 0.34941,
|
|
0.106994, 0.398713, 0.494292, 0.196896,
|
|
0.494292, 0.398713, 0.106994, 0.196896,
|
|
0.300643, 0.398713, 0.300643, 0.315033,
|
|
|
|
0.189871, 0.102573, 0.707556, 0.0277381,
|
|
0.102573, 0.189871, 0.707556, 0.0277381,
|
|
0.146222, 0.146222, 0.707556, 0.0443809,
|
|
0.798713, 0.111415, 0.0898713, 0.218381,
|
|
0.111415, 0.798713, 0.0898713, 0.218381,
|
|
0.455064, 0.455064, 0.0898713, 0.34941,
|
|
0.494292, 0.106994, 0.398713, 0.196896,
|
|
0.106994, 0.494292, 0.398713, 0.196896,
|
|
0.300643, 0.300643, 0.398713, 0.315033,
|
|
0.0898713, 0.189871, 0.720257, 0.0035232,
|
|
0.0898713, 0.102573, 0.807556, 0.0035232,
|
|
0.0898713, 0.146222, 0.763906, 0.00563712,
|
|
0.0114152, 0.798713, 0.189871, 0.0277381,
|
|
0.0114152, 0.111415, 0.87717, 0.0277381,
|
|
0.0114152, 0.455064, 0.533521, 0.0443809,
|
|
0.0506433, 0.494292, 0.455064, 0.025009,
|
|
0.0506433, 0.106994, 0.842363, 0.025009,
|
|
0.0506433, 0.300643, 0.648713, 0.0400144,
|
|
0.102573, 0.0898713, 0.807556, 0.0035232,
|
|
0.189871, 0.0898713, 0.720257, 0.0035232,
|
|
0.146222, 0.0898713, 0.763906, 0.00563712,
|
|
0.111415, 0.0114152, 0.87717, 0.0277381,
|
|
0.798713, 0.0114152, 0.189871, 0.0277381,
|
|
0.455064, 0.0114152, 0.533521, 0.0443809,
|
|
0.106994, 0.0506433, 0.842363, 0.025009,
|
|
0.494292, 0.0506433, 0.455064, 0.025009,
|
|
0.300643, 0.0506433, 0.648713, 0.0400144,
|
|
|
|
0.517156, 0.429858, 0.0529858, 0.00207718,
|
|
0.429858, 0.517156, 0.0529858, 0.00207718,
|
|
0.473507, 0.473507, 0.0529858, 0.0033235,
|
|
0.840284, 0.152986, 0.00673008, 0.0163536,
|
|
0.152986, 0.840284, 0.00673008, 0.0163536,
|
|
0.496635, 0.496635, 0.00673008, 0.0261658,
|
|
0.67872, 0.291422, 0.0298579, 0.0147447,
|
|
0.291422, 0.67872, 0.0298579, 0.0147447,
|
|
0.485071, 0.485071, 0.0298579, 0.0235915,
|
|
0.417156, 0.517156, 0.0656875, 0.0163536,
|
|
0.417156, 0.429858, 0.152986, 0.0163536,
|
|
0.417156, 0.473507, 0.109337, 0.0261658,
|
|
0.0529858, 0.840284, 0.10673, 0.128752,
|
|
0.0529858, 0.152986, 0.794028, 0.128752,
|
|
0.0529858, 0.496635, 0.450379, 0.206003,
|
|
0.235071, 0.67872, 0.0862088, 0.116084,
|
|
0.235071, 0.291422, 0.473507, 0.116084,
|
|
0.235071, 0.485071, 0.279858, 0.185735,
|
|
0.429858, 0.417156, 0.152986, 0.0163536,
|
|
0.517156, 0.417156, 0.0656875, 0.0163536,
|
|
0.473507, 0.417156, 0.109337, 0.0261658,
|
|
0.152986, 0.0529858, 0.794028, 0.128752,
|
|
0.840284, 0.0529858, 0.10673, 0.128752,
|
|
0.496635, 0.0529858, 0.450379, 0.206003,
|
|
0.291422, 0.235071, 0.473507, 0.116084,
|
|
0.67872, 0.235071, 0.0862088, 0.116084,
|
|
0.485071, 0.235071, 0.279858, 0.185735,
|
|
|
|
0.152986, 0.429858, 0.417156, 0.0163536,
|
|
0.0656875, 0.517156, 0.417156, 0.0163536,
|
|
0.109337, 0.473507, 0.417156, 0.0261658,
|
|
0.794028, 0.152986, 0.0529858, 0.128752,
|
|
0.10673, 0.840284, 0.0529858, 0.128752,
|
|
0.450379, 0.496635, 0.0529858, 0.206003,
|
|
0.473507, 0.291422, 0.235071, 0.116084,
|
|
0.0862088, 0.67872, 0.235071, 0.116084,
|
|
0.279858, 0.485071, 0.235071, 0.185735,
|
|
0.0529858, 0.517156, 0.429858, 0.00207718,
|
|
0.0529858, 0.429858, 0.517156, 0.00207718,
|
|
0.0529858, 0.473507, 0.473507, 0.0033235,
|
|
0.00673008, 0.840284, 0.152986, 0.0163536,
|
|
0.00673008, 0.152986, 0.840284, 0.0163536,
|
|
0.00673008, 0.496635, 0.496635, 0.0261658,
|
|
0.0298579, 0.67872, 0.291422, 0.0147447,
|
|
0.0298579, 0.291422, 0.67872, 0.0147447,
|
|
0.0298579, 0.485071, 0.485071, 0.0235915,
|
|
0.0656875, 0.417156, 0.517156, 0.0163536,
|
|
0.152986, 0.417156, 0.429858, 0.0163536,
|
|
0.109337, 0.417156, 0.473507, 0.0261658,
|
|
0.10673, 0.0529858, 0.840284, 0.128752,
|
|
0.794028, 0.0529858, 0.152986, 0.128752,
|
|
0.450379, 0.0529858, 0.496635, 0.206003,
|
|
0.0862088, 0.235071, 0.67872, 0.116084,
|
|
0.473507, 0.235071, 0.291422, 0.116084,
|
|
0.279858, 0.235071, 0.485071, 0.185735,
|
|
|
|
0.517156, 0.0656875, 0.417156, 0.0163536,
|
|
0.429858, 0.152986, 0.417156, 0.0163536,
|
|
0.473507, 0.109337, 0.417156, 0.0261658,
|
|
0.840284, 0.10673, 0.0529858, 0.128752,
|
|
0.152986, 0.794028, 0.0529858, 0.128752,
|
|
0.496635, 0.450379, 0.0529858, 0.206003,
|
|
0.67872, 0.0862088, 0.235071, 0.116084,
|
|
0.291422, 0.473507, 0.235071, 0.116084,
|
|
0.485071, 0.279858, 0.235071, 0.185735,
|
|
0.417156, 0.152986, 0.429858, 0.0163536,
|
|
0.417156, 0.0656875, 0.517156, 0.0163536,
|
|
0.417156, 0.109337, 0.473507, 0.0261658,
|
|
0.0529858, 0.794028, 0.152986, 0.128752,
|
|
0.0529858, 0.10673, 0.840284, 0.128752,
|
|
0.0529858, 0.450379, 0.496635, 0.206003,
|
|
0.235071, 0.473507, 0.291422, 0.116084,
|
|
0.235071, 0.0862088, 0.67872, 0.116084,
|
|
0.235071, 0.279858, 0.485071, 0.185735,
|
|
0.429858, 0.0529858, 0.517156, 0.00207718,
|
|
0.517156, 0.0529858, 0.429858, 0.00207718,
|
|
0.473507, 0.0529858, 0.473507, 0.0033235,
|
|
0.152986, 0.00673008, 0.840284, 0.0163536,
|
|
0.840284, 0.00673008, 0.152986, 0.0163536,
|
|
0.496635, 0.00673008, 0.496635, 0.0261658,
|
|
0.291422, 0.0298579, 0.67872, 0.0147447,
|
|
0.67872, 0.0298579, 0.291422, 0.0147447,
|
|
0.485071, 0.0298579, 0.485071, 0.0235915
|
|
};
|
|
|
|
void GetFormula(int np, int id, fp_t *zeta0, fp_t *zeta1, fp_t *zeta2, fp_t *weight){
|
|
if (id < 0 || id >= np)
|
|
return;
|
|
|
|
switch (np) {
|
|
case 1: (*zeta0) = g2d_1[id][0];
|
|
(*zeta1) = g2d_1[id][1];
|
|
(*zeta2) = g2d_1[id][2];
|
|
(*weight) = g2d_1[id][3];
|
|
break;
|
|
case 3: (*zeta0) = g2d_3[id][0];
|
|
(*zeta1) = g2d_3[id][1];
|
|
(*zeta2) = g2d_3[id][2];
|
|
(*weight) = g2d_3[id][3];
|
|
break;
|
|
case 4: (*zeta0) = g2d_4[id][0];
|
|
(*zeta1) = g2d_4[id][1];
|
|
(*zeta2) = g2d_4[id][2];
|
|
(*weight) = g2d_4[id][3];
|
|
break;
|
|
case 6: (*zeta0) = g2d_6[id][0];
|
|
(*zeta1) = g2d_6[id][1];
|
|
(*zeta2) = g2d_6[id][2];
|
|
(*weight) = g2d_6[id][3];
|
|
break;
|
|
case 7: (*zeta0) = g2d_7[id][0];
|
|
(*zeta1) = g2d_7[id][1];
|
|
(*zeta2) = g2d_7[id][2];
|
|
(*weight) = g2d_7[id][3];
|
|
break;
|
|
case 9:
|
|
(*zeta0) = g2d_9[id][0];
|
|
(*zeta1) = g2d_9[id][1];
|
|
(*zeta2) = g2d_9[id][2];
|
|
(*weight) = g2d_9[id][3];
|
|
break;
|
|
case 12: (*zeta0) = g2d_12[id][0];
|
|
(*zeta1) = g2d_12[id][1];
|
|
(*zeta2) = g2d_12[id][2];
|
|
(*weight) = g2d_12[id][3];
|
|
break;
|
|
case 13: (*zeta0) = g2d_13[id][0];
|
|
(*zeta1) = g2d_13[id][1];
|
|
(*zeta2) = g2d_13[id][2];
|
|
(*weight) = g2d_13[id][3];
|
|
break;
|
|
case 16: (*zeta0) = g2d_16[id][0];
|
|
(*zeta1) = g2d_16[id][1];
|
|
(*zeta2) = g2d_16[id][2];
|
|
(*weight) = g2d_16[id][3];
|
|
break;
|
|
case 19: (*zeta0) = g2d_19[id][0];
|
|
(*zeta1) = g2d_19[id][1];
|
|
(*zeta2) = g2d_19[id][2];
|
|
(*weight) = g2d_19[id][3];
|
|
break;
|
|
case 27: (*zeta0) = g2d_27[id][0];
|
|
(*zeta1) = g2d_27[id][1];
|
|
(*zeta2) = g2d_27[id][2];
|
|
(*weight) = g2d_27[id][3];
|
|
break;
|
|
case 33: (*zeta0) = g2d_33[id][0];
|
|
(*zeta1) = g2d_33[id][1];
|
|
(*zeta2) = g2d_33[id][2];
|
|
(*weight) = g2d_33[id][3];
|
|
break;
|
|
case 37: (*zeta0) = g2d_37[id][0];
|
|
(*zeta1) = g2d_37[id][1];
|
|
(*zeta2) = g2d_37[id][2];
|
|
(*weight) = g2d_37[id][3];
|
|
break;
|
|
case 21: (*zeta0) = gauss21[id][0];
|
|
(*zeta1) = gauss21[id][1];
|
|
(*zeta2) = gauss21[id][2];
|
|
(*weight) = gauss21[id][3];
|
|
break;
|
|
default:
|
|
(*zeta0) = (*zeta1) = (*zeta2) = (*weight) = 0.0;
|
|
}
|
|
}
|
|
|
|
void GetFormula2dPtr(int np, fp_t (*&gaussPts)[4]){
|
|
switch(np){
|
|
case 1:
|
|
gaussPts = g2d_1;
|
|
break;
|
|
case 3:
|
|
gaussPts = g2d_3;
|
|
break;
|
|
case 4:
|
|
gaussPts = g2d_4;
|
|
break;
|
|
case 6:
|
|
gaussPts = g2d_6;
|
|
break;
|
|
case 7:
|
|
gaussPts = g2d_7;
|
|
break;
|
|
case 9:
|
|
gaussPts = g2d_9;
|
|
break;
|
|
default:
|
|
gaussPts = nullptr;
|
|
break;
|
|
}
|
|
}
|
|
|
|
void GetFormula3d(int np, int id, fp_t *zeta0, fp_t *zeta1, fp_t *zeta2, fp_t *zeta3, fp_t *weight){
|
|
if (id < 0 || id >= np)
|
|
return;
|
|
|
|
switch(np){
|
|
case 4:
|
|
(*zeta0) = g3d_4[id][0];
|
|
(*zeta1) = g3d_4[id][1];
|
|
(*zeta2) = g3d_4[id][2];
|
|
(*zeta3) = g3d_4[id][3];
|
|
(*weight) = g3d_4[id][4];
|
|
break;
|
|
case 10:
|
|
(*zeta0) = g3d_10[id][0];
|
|
(*zeta1) = g3d_10[id][1];
|
|
(*zeta2) = g3d_10[id][2];
|
|
(*zeta3) = g3d_10[id][3];
|
|
(*weight) = g3d_10[id][4];
|
|
break;
|
|
case 20:
|
|
(*zeta0) = g3d_20[id][0];
|
|
(*zeta1) = g3d_20[id][1];
|
|
(*zeta2) = g3d_20[id][2];
|
|
(*zeta3) = g3d_20[id][3];
|
|
(*weight) = g3d_20[id][4];
|
|
break;
|
|
case 35:
|
|
(*zeta0) = g3d_35[id][0];
|
|
(*zeta1) = g3d_35[id][1];
|
|
(*zeta2) = g3d_35[id][2];
|
|
(*zeta3) = g3d_35[id][3];
|
|
(*weight) = g3d_35[id][4];
|
|
break;
|
|
case 56:
|
|
(*zeta0) = g3d_56[id][0];
|
|
(*zeta1) = g3d_56[id][1];
|
|
(*zeta2) = g3d_56[id][2];
|
|
(*zeta3) = g3d_56[id][3];
|
|
(*weight) = g3d_56[id][4];
|
|
break;
|
|
default:
|
|
(*zeta0) = (*zeta1) = (*zeta2) = (*zeta3) = (*weight) = 0.0;
|
|
}
|
|
}
|
|
|
|
void GetFormula3dPtr(int np, fp_t (*&gaussPts)[5]){
|
|
switch(np){
|
|
case 4:
|
|
gaussPts = g3d_4;
|
|
break;
|
|
case 10:
|
|
gaussPts = g3d_10;
|
|
break;
|
|
case 20:
|
|
gaussPts = g3d_20;
|
|
break;
|
|
case 35:
|
|
gaussPts = g3d_35;
|
|
break;
|
|
case 56:
|
|
gaussPts = g3d_56;
|
|
break;
|
|
default:
|
|
gaussPts = nullptr;
|
|
break;
|
|
}
|
|
}
|
|
|
|
void GetGauss(int outLoop, int outID,
|
|
int id,
|
|
fp_t *zeta0, fp_t *zeta1, fp_t *zeta2,
|
|
fp_t *wgt)
|
|
{
|
|
if (outLoop == 4) {
|
|
if (outID < 0 || outID >= outLoop) return;
|
|
|
|
(*zeta0) = gauss4_21[outID][id][0];
|
|
(*zeta1) = gauss4_21[outID][id][1];
|
|
(*zeta2) = gauss4_21[outID][id][2];
|
|
(*wgt) = gauss4_21[outID][id][3];
|
|
}
|
|
if (outLoop == 1) {
|
|
if (outID < 0 || outID >= outLoop) return;
|
|
|
|
(*zeta0) = gauss21[id][0];
|
|
(*zeta1) = gauss21[id][1];
|
|
(*zeta2) = gauss21[id][2];
|
|
(*wgt) = gauss21[id][3];
|
|
}
|
|
}
|
|
|
|
void GetDuffy(int outLoop, int singularLoop,
|
|
int outID, int id,
|
|
fp_t *zeta0, fp_t *zeta1, fp_t *zeta2,
|
|
fp_t *wgt)
|
|
{
|
|
if (outLoop == 1 && singularLoop == 27) {
|
|
if (outID < 0 || outID >= outLoop) return;
|
|
|
|
(*zeta0) = duffy1_27[outID][id][0];
|
|
(*zeta1) = duffy1_27[outID][id][1];
|
|
(*zeta2) = duffy1_27[outID][id][2];
|
|
(*wgt) = duffy1_27[outID][id][3];
|
|
}
|
|
|
|
if (outLoop == 3 && singularLoop == 27) {
|
|
if (outID < 0 || outID >= outLoop) return;
|
|
|
|
(*zeta0) = duffy3_27[outID][id][0];
|
|
(*zeta1) = duffy3_27[outID][id][1];
|
|
(*zeta2) = duffy3_27[outID][id][2];
|
|
(*wgt) = duffy3_27[outID][id][3];
|
|
}
|
|
|
|
if (outLoop == 4 && singularLoop == 27) {
|
|
if (outID < 0 || outID >= outLoop) return;
|
|
|
|
(*zeta0) = duffy4_27[outID][id][0];
|
|
(*zeta1) = duffy4_27[outID][id][1];
|
|
(*zeta2) = duffy4_27[outID][id][2];
|
|
(*wgt) = duffy4_27[outID][id][3];
|
|
}
|
|
|
|
if (outLoop == 7 && singularLoop == 27) {
|
|
if (outID < 0 || outID >= outLoop) return;
|
|
|
|
(*zeta0) = duffy7_27[outID][id][0];
|
|
(*zeta1) = duffy7_27[outID][id][1];
|
|
(*zeta2) = duffy7_27[outID][id][2];
|
|
(*wgt) = duffy7_27[outID][id][3];
|
|
}
|
|
|
|
|
|
if (outLoop == 1 && singularLoop == 12) {
|
|
if (outID < 0 || outID >= outLoop) return;
|
|
|
|
(*zeta0) = duffy1_12[outID][id][0];
|
|
(*zeta1) = duffy1_12[outID][id][1];
|
|
(*zeta2) = duffy1_12[outID][id][2];
|
|
(*wgt) = duffy1_12[outID][id][3];
|
|
}
|
|
|
|
if (outLoop == 3 && singularLoop == 12) {
|
|
if (outID < 0 || outID >= outLoop) return;
|
|
|
|
(*zeta0) = duffy3_12[outID][id][0];
|
|
(*zeta1) = duffy3_12[outID][id][1];
|
|
(*zeta2) = duffy3_12[outID][id][2];
|
|
(*wgt) = duffy3_12[outID][id][3];
|
|
}
|
|
|
|
if (outLoop == 4 && singularLoop == 12) {
|
|
if (outID < 0 || outID >= outLoop) return;
|
|
|
|
(*zeta0) = duffy4_12[outID][id][0];
|
|
(*zeta1) = duffy4_12[outID][id][1];
|
|
(*zeta2) = duffy4_12[outID][id][2];
|
|
(*wgt) = duffy4_12[outID][id][3];
|
|
}
|
|
|
|
if (outLoop == 7 && singularLoop == 12) {
|
|
if (outID < 0 || outID >= outLoop) return;
|
|
|
|
(*zeta0) = duffy7_12[outID][id][0];
|
|
(*zeta1) = duffy7_12[outID][id][1];
|
|
(*zeta2) = duffy7_12[outID][id][2];
|
|
(*wgt) = duffy7_12[outID][id][3];
|
|
}
|
|
}
|
|
void GetFormula1D(int NP, int i, fp_t * v1, fp_t *v2, fp_t *w)
|
|
{
|
|
if(i<0 || i>=NP){
|
|
*v1=0;
|
|
*v2=0;
|
|
*w=0;
|
|
return;
|
|
|
|
}
|
|
switch(NP){
|
|
case 1:
|
|
*v1=g1d_1[ i][0];
|
|
*v2=g1d_1[ i][1];
|
|
*w =g1d_1[ i][2];
|
|
break;
|
|
case 2:
|
|
*v1=g1d_2[ i][0];
|
|
*v2=g1d_2[ i][1];
|
|
*w =g1d_2[ i][2];
|
|
break;
|
|
case 3:
|
|
*v1=g1d_3[ i][0];
|
|
*v2=g1d_3[ i][1];
|
|
*w =g1d_3[ i][2];
|
|
break;
|
|
case 4:
|
|
*v1=g1d_4[ i][0];
|
|
*v2=g1d_4[ i][1];
|
|
*w =g1d_4[ i][2];
|
|
break;
|
|
case 5:
|
|
*v1=g1d_5[ i][0];
|
|
*v2=g1d_5[ i][1];
|
|
*w =g1d_5[ i][2];
|
|
break;
|
|
default:
|
|
*v1=0;
|
|
*v2=0;
|
|
*w=0;
|
|
return;
|
|
break;
|
|
}
|
|
|
|
return;
|
|
}
|
|
|
|
|
|
|
|
|