use crate::utils::error_codes::GAUSSIAN_QUADRATURE_ORDER_OUT_OF_RANGE;
pub const MAX_GL_ORDER: usize = 30;
pub fn get_gl_weights_and_abscissae(order: usize, index: usize) -> Result<(f64, f64), &'static str>
{
let ref_abs: f64 = match order
{
1 => LEGENDRE_ABSCISSA_1[index],
2 => LEGENDRE_ABSCISSA_2[index],
3 => LEGENDRE_ABSCISSA_3[index],
4 => LEGENDRE_ABSCISSA_4[index],
5 => LEGENDRE_ABSCISSA_5[index],
6 => LEGENDRE_ABSCISSA_6[index],
7 => LEGENDRE_ABSCISSA_7[index],
8 => LEGENDRE_ABSCISSA_8[index],
9 => LEGENDRE_ABSCISSA_9[index],
10 => LEGENDRE_ABSCISSA_10[index],
11 => LEGENDRE_ABSCISSA_11[index],
12 => LEGENDRE_ABSCISSA_12[index],
13 => LEGENDRE_ABSCISSA_13[index],
14 => LEGENDRE_ABSCISSA_14[index],
15 => LEGENDRE_ABSCISSA_15[index],
16 => LEGENDRE_ABSCISSA_16[index],
17 => LEGENDRE_ABSCISSA_17[index],
18 => LEGENDRE_ABSCISSA_18[index],
19 => LEGENDRE_ABSCISSA_19[index],
20 => LEGENDRE_ABSCISSA_20[index],
21 => LEGENDRE_ABSCISSA_21[index],
22 => LEGENDRE_ABSCISSA_22[index],
23 => LEGENDRE_ABSCISSA_23[index],
24 => LEGENDRE_ABSCISSA_24[index],
25 => LEGENDRE_ABSCISSA_25[index],
26 => LEGENDRE_ABSCISSA_26[index],
27 => LEGENDRE_ABSCISSA_27[index],
28 => LEGENDRE_ABSCISSA_28[index],
29 => LEGENDRE_ABSCISSA_29[index],
30 => LEGENDRE_ABSCISSA_30[index],
_ => return Err(GAUSSIAN_QUADRATURE_ORDER_OUT_OF_RANGE),
};
let ref_weight: f64 = match order
{
1 => LEGENDRE_WEIGHT_1[index],
2 => LEGENDRE_WEIGHT_2[index],
3 => LEGENDRE_WEIGHT_3[index],
4 => LEGENDRE_WEIGHT_4[index],
5 => LEGENDRE_WEIGHT_5[index],
6 => LEGENDRE_WEIGHT_6[index],
7 => LEGENDRE_WEIGHT_7[index],
8 => LEGENDRE_WEIGHT_8[index],
9 => LEGENDRE_WEIGHT_9[index],
10 => LEGENDRE_WEIGHT_10[index],
11 => LEGENDRE_WEIGHT_11[index],
12 => LEGENDRE_WEIGHT_12[index],
13 => LEGENDRE_WEIGHT_13[index],
14 => LEGENDRE_WEIGHT_14[index],
15 => LEGENDRE_WEIGHT_15[index],
16 => LEGENDRE_WEIGHT_16[index],
17 => LEGENDRE_WEIGHT_17[index],
18 => LEGENDRE_WEIGHT_18[index],
19 => LEGENDRE_WEIGHT_19[index],
20 => LEGENDRE_WEIGHT_20[index],
21 => LEGENDRE_WEIGHT_21[index],
22 => LEGENDRE_WEIGHT_22[index],
23 => LEGENDRE_WEIGHT_23[index],
24 => LEGENDRE_WEIGHT_24[index],
25 => LEGENDRE_WEIGHT_25[index],
26 => LEGENDRE_WEIGHT_26[index],
27 => LEGENDRE_WEIGHT_27[index],
28 => LEGENDRE_WEIGHT_28[index],
29 => LEGENDRE_WEIGHT_29[index],
30 => LEGENDRE_WEIGHT_30[index],
_ => return Err(GAUSSIAN_QUADRATURE_ORDER_OUT_OF_RANGE),
};
return Ok((ref_abs, ref_weight));
}
const LEGENDRE_ABSCISSA_1: [f64; 1] = [
0.0];
const LEGENDRE_ABSCISSA_2: [f64; 2] = [
-0.5773502691896257,
0.5773502691896257];
const LEGENDRE_ABSCISSA_3: [f64; 3] = [
-0.7745966692414834,
0.0,
0.7745966692414834];
const LEGENDRE_ABSCISSA_4: [f64; 4] = [
-0.8611363115940526,
-0.33998104358485626,
0.33998104358485626,
0.8611363115940526];
const LEGENDRE_ABSCISSA_5: [f64; 5] = [
-0.906179845938664,
-0.5384693101056831,
0.0,
0.5384693101056831,
0.906179845938664];
const LEGENDRE_ABSCISSA_6: [f64; 6] = [
-0.932469514203152,
-0.6612093864662645,
-0.23861918608319693,
0.23861918608319693,
0.6612093864662645,
0.932469514203152];
const LEGENDRE_ABSCISSA_7: [f64; 7] = [
-0.9491079123427585,
-0.7415311855993945,
-0.4058451513773972,
0.0,
0.4058451513773972,
0.7415311855993945,
0.9491079123427585];
const LEGENDRE_ABSCISSA_8: [f64; 8] = [
-0.9602898564975362,
-0.7966664774136267,
-0.525532409916329,
-0.18343464249564978,
0.18343464249564978,
0.525532409916329,
0.7966664774136267,
0.9602898564975362];
const LEGENDRE_ABSCISSA_9: [f64; 9] = [
-0.9681602395076261,
-0.8360311073266358,
-0.6133714327005904,
-0.3242534234038089,
0.0,
0.3242534234038089,
0.6133714327005904,
0.8360311073266358,
0.9681602395076261];
const LEGENDRE_ABSCISSA_10: [f64; 10] = [
-0.9739065285171717,
-0.8650633666889845,
-0.6794095682990244,
-0.4333953941292472,
-0.14887433898163122,
0.14887433898163122,
0.4333953941292472,
0.6794095682990244,
0.8650633666889845,
0.9739065285171717];
const LEGENDRE_ABSCISSA_11: [f64; 11] = [
-0.978228658146057,
-0.8870625997680953,
-0.7301520055740494,
-0.5190961292068118,
-0.26954315595234496,
0.0,
0.26954315595234496,
0.5190961292068118,
0.7301520055740494,
0.8870625997680953,
0.978228658146057];
const LEGENDRE_ABSCISSA_12: [f64; 12] = [
-0.9815606342467192,
-0.9041172563704748,
-0.7699026741943047,
-0.5873179542866175,
-0.3678314989981802,
-0.1252334085114689,
0.1252334085114689,
0.3678314989981802,
0.5873179542866175,
0.7699026741943047,
0.9041172563704748,
0.9815606342467192];
const LEGENDRE_ABSCISSA_13: [f64; 13] = [
-0.9841830547185881,
-0.9175983992229779,
-0.8015780907333099,
-0.6423493394403402,
-0.4484927510364468,
-0.23045831595513477,
0.0,
0.23045831595513477,
0.4484927510364468,
0.6423493394403402,
0.8015780907333099,
0.9175983992229779,
0.9841830547185881];
const LEGENDRE_ABSCISSA_14: [f64; 14] = [
-0.9862838086968123,
-0.9284348836635735,
-0.827201315069765,
-0.6872929048116855,
-0.5152486363581541,
-0.31911236892788974,
-0.10805494870734367,
0.10805494870734367,
0.31911236892788974,
0.5152486363581541,
0.6872929048116855,
0.827201315069765,
0.9284348836635735,
0.9862838086968123];
const LEGENDRE_ABSCISSA_15: [f64; 15] = [
-0.9879925180204854,
-0.937273392400706,
-0.8482065834104272,
-0.7244177313601701,
-0.5709721726085388,
-0.3941513470775634,
-0.20119409399743451,
0.0,
0.20119409399743451,
0.3941513470775634,
0.5709721726085388,
0.7244177313601701,
0.8482065834104272,
0.937273392400706,
0.9879925180204854];
const LEGENDRE_ABSCISSA_16: [f64; 16] = [
-0.9894009349916499,
-0.9445750230732326,
-0.8656312023878318,
-0.755404408355003,
-0.6178762444026438,
-0.45801677765722737,
-0.2816035507792589,
-0.09501250983763745,
0.09501250983763745,
0.2816035507792589,
0.45801677765722737,
0.6178762444026438,
0.755404408355003,
0.8656312023878318,
0.9445750230732326,
0.9894009349916499];
const LEGENDRE_ABSCISSA_17: [f64; 17] = [
-0.9905754753144174,
-0.9506755217687678,
-0.8802391537269859,
-0.7815140038968014,
-0.6576711592166908,
-0.5126905370864769,
-0.3512317634538763,
-0.17848418149584785,
0.0,
0.17848418149584785,
0.3512317634538763,
0.5126905370864769,
0.6576711592166908,
0.7815140038968014,
0.8802391537269859,
0.9506755217687678,
0.9905754753144174];
const LEGENDRE_ABSCISSA_18: [f64; 18] = [
-0.9915651684209309,
-0.9558239495713978,
-0.8926024664975557,
-0.8037049589725231,
-0.6916870430603532,
-0.5597708310739475,
-0.41175116146284263,
-0.2518862256915055,
-0.08477501304173529,
0.08477501304173529,
0.2518862256915055,
0.41175116146284263,
0.5597708310739475,
0.6916870430603532,
0.8037049589725231,
0.8926024664975557,
0.9558239495713978,
0.9915651684209309];
const LEGENDRE_ABSCISSA_19: [f64; 19] = [
-0.9924068438435844,
-0.96020815213483,
-0.9031559036148179,
-0.8227146565371428,
-0.7209661773352294,
-0.600545304661681,
-0.46457074137596094,
-0.31656409996362983,
-0.1603586456402254,
0.0,
0.1603586456402254,
0.31656409996362983,
0.46457074137596094,
0.600545304661681,
0.7209661773352294,
0.8227146565371428,
0.9031559036148179,
0.96020815213483,
0.9924068438435844];
const LEGENDRE_ABSCISSA_20: [f64; 20] = [
-0.9931285991850949,
-0.9639719272779138,
-0.9122344282513258,
-0.8391169718222188,
-0.7463319064601508,
-0.636053680726515,
-0.5108670019508271,
-0.37370608871541955,
-0.2277858511416451,
-0.07652652113349734,
0.07652652113349734,
0.2277858511416451,
0.37370608871541955,
0.5108670019508271,
0.636053680726515,
0.7463319064601508,
0.8391169718222188,
0.9122344282513258,
0.9639719272779138,
0.9931285991850949];
const LEGENDRE_ABSCISSA_21: [f64; 21] = [
-0.9937521706203895,
-0.9672268385663063,
-0.9200993341504008,
-0.8533633645833173,
-0.7684399634756779,
-0.6671388041974123,
-0.5516188358872198,
-0.4243421202074388,
-0.2880213168024011,
-0.1455618541608951,
0.0,
0.1455618541608951,
0.2880213168024011,
0.4243421202074388,
0.5516188358872198,
0.6671388041974123,
0.7684399634756779,
0.8533633645833173,
0.9200993341504008,
0.9672268385663063,
0.9937521706203895];
const LEGENDRE_ABSCISSA_22: [f64; 22] = [
-0.9942945854823992,
-0.9700604978354287,
-0.926956772187174,
-0.8658125777203002,
-0.7878168059792081,
-0.6944872631866827,
-0.5876404035069116,
-0.46935583798675706,
-0.34193582089208424,
-0.2078604266882213,
-0.06973927331972221,
0.06973927331972221,
0.2078604266882213,
0.34193582089208424,
0.46935583798675706,
0.5876404035069116,
0.6944872631866827,
0.7878168059792081,
0.8658125777203002,
0.926956772187174,
0.9700604978354287,
0.9942945854823992];
const LEGENDRE_ABSCISSA_23: [f64; 23] = [
-0.9947693349975522,
-0.9725424712181152,
-0.9329710868260161,
-0.8767523582704416,
-0.8048884016188399,
-0.7186613631319502,
-0.6196098757636461,
-0.5095014778460075,
-0.3903010380302908,
-0.26413568097034495,
-0.1332568242984661,
0.0,
0.1332568242984661,
0.26413568097034495,
0.3903010380302908,
0.5095014778460075,
0.6196098757636461,
0.7186613631319502,
0.8048884016188399,
0.8767523582704416,
0.9329710868260161,
0.9725424712181152,
0.9947693349975522];
const LEGENDRE_ABSCISSA_24: [f64; 24] = [
-0.9951872199970213,
-0.9747285559713095,
-0.9382745520027328,
-0.886415527004401,
-0.820001985973903,
-0.7401241915785544,
-0.6480936519369755,
-0.5454214713888396,
-0.4337935076260451,
-0.3150426796961634,
-0.1911188674736163,
-0.06405689286260563,
0.06405689286260563,
0.1911188674736163,
0.3150426796961634,
0.4337935076260451,
0.5454214713888396,
0.6480936519369755,
0.7401241915785544,
0.820001985973903,
0.886415527004401,
0.9382745520027328,
0.9747285559713095,
0.9951872199970213];
const LEGENDRE_ABSCISSA_25: [f64; 25] = [
-0.995556969790498,
-0.9766639214595175,
-0.9429745712289743,
-0.8949919978782753,
-0.833442628760834,
-0.7592592630373576,
-0.6735663684734684,
-0.577662930241223,
-0.473002731445715,
-0.36117230580938786,
-0.24386688372098841,
-0.1228646926107104,
0.0,
0.1228646926107104,
0.24386688372098841,
0.36117230580938786,
0.473002731445715,
0.577662930241223,
0.6735663684734684,
0.7592592630373576,
0.833442628760834,
0.8949919978782753,
0.9429745712289743,
0.9766639214595175,
0.995556969790498];
const LEGENDRE_ABSCISSA_26: [f64; 26] = [
-0.9958857011456169,
-0.9783854459564709,
-0.9471590666617142,
-0.9026378619843071,
-0.845445942788498,
-0.7763859488206788,
-0.6964272604199573,
-0.6066922930176181,
-0.5084407148245057,
-0.4030517551234863,
-0.2920048394859569,
-0.17685882035689018,
-0.05923009342931321,
0.05923009342931321,
0.17685882035689018,
0.2920048394859569,
0.4030517551234863,
0.5084407148245057,
0.6066922930176181,
0.6964272604199573,
0.7763859488206788,
0.845445942788498,
0.9026378619843071,
0.9471590666617142,
0.9783854459564709,
0.9958857011456169];
const LEGENDRE_ABSCISSA_27: [f64; 27] = [
-0.9961792628889885,
-0.9799234759615012,
-0.9509005578147051,
-0.9094823206774911,
-0.8562079080182945,
-0.7917716390705083,
-0.7170134737394237,
-0.6329079719464952,
-0.540551564579457,
-0.44114825175002687,
-0.3359939036385089,
-0.22645936543953685,
-0.11397258560952997,
0.0,
0.11397258560952997,
0.22645936543953685,
0.3359939036385089,
0.44114825175002687,
0.540551564579457,
0.6329079719464952,
0.7170134737394237,
0.7917716390705083,
0.8562079080182945,
0.9094823206774911,
0.9509005578147051,
0.9799234759615012,
0.9961792628889885];
const LEGENDRE_ABSCISSA_28: [f64; 28] = [
-0.9964424975739544,
-0.9813031653708728,
-0.9542592806289382,
-0.9156330263921321,
-0.865892522574395,
-0.8056413709171791,
-0.7356108780136318,
-0.656651094038865,
-0.5697204718114017,
-0.4758742249551183,
-0.3762515160890787,
-0.2720616276351781,
-0.1645692821333808,
-0.055079289884034266,
0.055079289884034266,
0.1645692821333808,
0.2720616276351781,
0.3762515160890787,
0.4758742249551183,
0.5697204718114017,
0.656651094038865,
0.7356108780136318,
0.8056413709171791,
0.865892522574395,
0.9156330263921321,
0.9542592806289382,
0.9813031653708728,
0.9964424975739544];
const LEGENDRE_ABSCISSA_29: [f64; 29] = [
-0.9966794422605966,
-0.9825455052614132,
-0.9572855957780877,
-0.9211802329530587,
-0.8746378049201028,
-0.8181854876152524,
-0.7524628517344771,
-0.6782145376026865,
-0.5962817971382278,
-0.5075929551242276,
-0.41315288817400864,
-0.31403163786763993,
-0.21135228616600107,
-0.10627823013267923,
0.0,
0.10627823013267923,
0.21135228616600107,
0.31403163786763993,
0.41315288817400864,
0.5075929551242276,
0.5962817971382278,
0.6782145376026865,
0.7524628517344771,
0.8181854876152524,
0.8746378049201028,
0.9211802329530587,
0.9572855957780877,
0.9825455052614132,
0.9966794422605966];
const LEGENDRE_ABSCISSA_30: [f64; 30] = [
-0.9968934840746495,
-0.9836681232797473,
-0.9600218649683075,
-0.9262000474292743,
-0.8825605357920526,
-0.8295657623827684,
-0.7677774321048262,
-0.6978504947933158,
-0.6205261829892429,
-0.5366241481420199,
-0.44703376953808915,
-0.3527047255308781,
-0.25463692616788985,
-0.15386991360858354,
-0.0514718425553177,
0.0514718425553177,
0.15386991360858354,
0.25463692616788985,
0.3527047255308781,
0.44703376953808915,
0.5366241481420199,
0.6205261829892429,
0.6978504947933158,
0.7677774321048262,
0.8295657623827684,
0.8825605357920526,
0.9262000474292743,
0.9600218649683075,
0.9836681232797473,
0.9968934840746495];
const LEGENDRE_WEIGHT_1: [f64; 1] = [
2.0];
const LEGENDRE_WEIGHT_2: [f64; 2] = [
1.0,
1.0];
const LEGENDRE_WEIGHT_3: [f64; 3] = [
0.5555555555555557,
0.8888888888888888,
0.5555555555555557];
const LEGENDRE_WEIGHT_4: [f64; 4] = [
0.3478548451374537,
0.6521451548625462,
0.6521451548625462,
0.3478548451374537];
const LEGENDRE_WEIGHT_5: [f64; 5] = [
0.23692688505618942,
0.4786286704993662,
0.568888888888889,
0.4786286704993662,
0.23692688505618942];
const LEGENDRE_WEIGHT_6: [f64; 6] = [
0.17132449237916975,
0.36076157304813894,
0.46791393457269137,
0.46791393457269137,
0.36076157304813894,
0.17132449237916975];
const LEGENDRE_WEIGHT_7: [f64; 7] = [
0.12948496616887065,
0.2797053914892766,
0.3818300505051183,
0.41795918367346896,
0.3818300505051183,
0.2797053914892766,
0.12948496616887065];
const LEGENDRE_WEIGHT_8: [f64; 8] = [
0.10122853629037669,
0.22238103445337434,
0.31370664587788705,
0.36268378337836177,
0.36268378337836177,
0.31370664587788705,
0.22238103445337434,
0.10122853629037669];
const LEGENDRE_WEIGHT_9: [f64; 9] = [
0.08127438836157472,
0.18064816069485712,
0.26061069640293566,
0.3123470770400028,
0.33023935500125967,
0.3123470770400028,
0.26061069640293566,
0.18064816069485712,
0.08127438836157472];
const LEGENDRE_WEIGHT_10: [f64; 10] = [
0.06667134430868807,
0.14945134915058036,
0.219086362515982,
0.2692667193099965,
0.295524224714753,
0.295524224714753,
0.2692667193099965,
0.219086362515982,
0.14945134915058036,
0.06667134430868807];
const LEGENDRE_WEIGHT_11: [f64; 11] = [
0.055668567116173164,
0.1255803694649047,
0.18629021092773443,
0.23319376459199068,
0.26280454451024676,
0.2729250867779009,
0.26280454451024676,
0.23319376459199068,
0.18629021092773443,
0.1255803694649047,
0.055668567116173164];
const LEGENDRE_WEIGHT_12: [f64; 12] = [
0.04717533638651202,
0.10693932599531888,
0.1600783285433461,
0.20316742672306565,
0.23349253653835464,
0.2491470458134027,
0.2491470458134027,
0.23349253653835464,
0.20316742672306565,
0.1600783285433461,
0.10693932599531888,
0.04717533638651202];
const LEGENDRE_WEIGHT_13: [f64; 13] = [
0.04048400476531588,
0.0921214998377286,
0.13887351021978736,
0.17814598076194552,
0.20781604753688857,
0.22628318026289715,
0.2325515532308739,
0.22628318026289715,
0.20781604753688857,
0.17814598076194552,
0.13887351021978736,
0.0921214998377286,
0.04048400476531588];
const LEGENDRE_WEIGHT_14: [f64; 14] = [
0.035119460331752374,
0.0801580871597603,
0.12151857068790296,
0.1572031671581934,
0.18553839747793763,
0.20519846372129555,
0.21526385346315766,
0.21526385346315766,
0.20519846372129555,
0.18553839747793763,
0.1572031671581934,
0.12151857068790296,
0.0801580871597603,
0.035119460331752374];
const LEGENDRE_WEIGHT_15: [f64; 15] = [
0.030753241996118647,
0.07036604748810807,
0.10715922046717177,
0.1395706779261539,
0.16626920581699378,
0.18616100001556188,
0.19843148532711125,
0.2025782419255609,
0.19843148532711125,
0.18616100001556188,
0.16626920581699378,
0.1395706779261539,
0.10715922046717177,
0.07036604748810807,
0.030753241996118647];
const LEGENDRE_WEIGHT_16: [f64; 16] = [
0.027152459411754037,
0.062253523938647706,
0.09515851168249259,
0.12462897125553403,
0.14959598881657676,
0.16915651939500262,
0.1826034150449236,
0.18945061045506859,
0.18945061045506859,
0.1826034150449236,
0.16915651939500262,
0.14959598881657676,
0.12462897125553403,
0.09515851168249259,
0.062253523938647706,
0.027152459411754037];
const LEGENDRE_WEIGHT_17: [f64; 17] = [
0.02414830286854952,
0.0554595293739866,
0.08503614831717908,
0.11188384719340365,
0.13513636846852523,
0.15404576107681012,
0.16800410215644995,
0.17656270536699253,
0.17944647035620653,
0.17656270536699253,
0.16800410215644995,
0.15404576107681012,
0.13513636846852523,
0.11188384719340365,
0.08503614831717908,
0.0554595293739866,
0.02414830286854952];
const LEGENDRE_WEIGHT_18: [f64; 18] = [
0.02161601352648413,
0.04971454889496922,
0.07642573025488925,
0.10094204410628699,
0.12255520671147836,
0.14064291467065063,
0.15468467512626521,
0.16427648374583273,
0.16914238296314363,
0.16914238296314363,
0.16427648374583273,
0.15468467512626521,
0.14064291467065063,
0.12255520671147836,
0.10094204410628699,
0.07642573025488925,
0.04971454889496922,
0.02161601352648413];
const LEGENDRE_WEIGHT_19: [f64; 19] = [
0.01946178822972761,
0.04481422676569981,
0.06904454273764107,
0.09149002162244985,
0.11156664554733375,
0.1287539625393362,
0.14260670217360638,
0.15276604206585945,
0.15896884339395415,
0.16105444984878345,
0.15896884339395415,
0.15276604206585945,
0.14260670217360638,
0.1287539625393362,
0.11156664554733375,
0.09149002162244985,
0.06904454273764107,
0.04481422676569981,
0.01946178822972761];
const LEGENDRE_WEIGHT_20: [f64; 20] = [
0.017614007139153273,
0.04060142980038622,
0.06267204833410944,
0.08327674157670467,
0.10193011981724026,
0.11819453196151825,
0.13168863844917653,
0.14209610931838187,
0.14917298647260366,
0.15275338713072578,
0.15275338713072578,
0.14917298647260366,
0.14209610931838187,
0.13168863844917653,
0.11819453196151825,
0.10193011981724026,
0.08327674157670467,
0.06267204833410944,
0.04060142980038622,
0.017614007139153273];
const LEGENDRE_WEIGHT_21: [f64; 21] = [
0.016017228257774137,
0.03695378977085292,
0.057134425426857156,
0.07610011362837935,
0.09344442345603382,
0.10879729916714831,
0.12183141605372842,
0.13226893863333739,
0.13988739479107312,
0.14452440398997007,
0.14608113364969047,
0.14452440398997007,
0.13988739479107312,
0.13226893863333739,
0.12183141605372842,
0.10879729916714831,
0.09344442345603382,
0.07610011362837935,
0.057134425426857156,
0.03695378977085292,
0.016017228257774137];
const LEGENDRE_WEIGHT_22: [f64; 22] = [
0.014627995298274705,
0.03377490158481518,
0.05229333515268287,
0.0697964684245202,
0.0859416062170674,
0.10041414444288072,
0.11293229608053883,
0.12325237681051199,
0.13117350478706188,
0.13654149834601478,
0.13925187285563156,
0.13925187285563156,
0.13654149834601478,
0.13117350478706188,
0.12325237681051199,
0.11293229608053883,
0.10041414444288072,
0.0859416062170674,
0.0697964684245202,
0.05229333515268287,
0.03377490158481518,
0.014627995298274705];
const LEGENDRE_WEIGHT_23: [f64; 23] = [
0.013411859487141846,
0.030988005856979497,
0.04803767173108495,
0.06423242140852606,
0.07928141177671887,
0.09291576606003524,
0.10489209146454138,
0.1149966402224113,
0.12304908430672945,
0.128905722188082,
0.13246203940469642,
0.13365457218610594,
0.13246203940469642,
0.128905722188082,
0.12304908430672945,
0.1149966402224113,
0.10489209146454138,
0.09291576606003524,
0.07928141177671887,
0.06423242140852606,
0.04803767173108495,
0.030988005856979497,
0.013411859487141846];
const LEGENDRE_WEIGHT_24: [f64; 24] = [
0.012341229799987091,
0.028531388628933743,
0.04427743881741955,
0.05929858491543674,
0.07334648141108041,
0.08619016153195329,
0.09761865210411406,
0.1074442701159656,
0.11550566805372561,
0.12167047292780342,
0.1258374563468283,
0.12793819534675221,
0.12793819534675221,
0.1258374563468283,
0.12167047292780342,
0.11550566805372561,
0.1074442701159656,
0.09761865210411406,
0.08619016153195329,
0.07334648141108041,
0.05929858491543674,
0.04427743881741955,
0.028531388628933743,
0.012341229799987091];
const LEGENDRE_WEIGHT_25: [f64; 25] = [
0.011393798501027593,
0.026354986615031908,
0.0409391567013065,
0.05490469597583544,
0.06803833381235701,
0.08014070033500098,
0.09102826198296338,
0.10053594906705049,
0.10851962447426344,
0.11485825914571146,
0.1194557635357845,
0.12224244299030987,
0.12317605372671524,
0.12224244299030987,
0.1194557635357845,
0.11485825914571146,
0.10851962447426344,
0.10053594906705049,
0.09102826198296338,
0.08014070033500098,
0.06803833381235701,
0.05490469597583544,
0.0409391567013065,
0.026354986615031908,
0.011393798501027593];
const LEGENDRE_WEIGHT_26: [f64; 26] = [
0.010551372617343395,
0.024417851092631938,
0.03796238329436312,
0.05097582529714808,
0.06327404632957467,
0.07468414976565976,
0.08504589431348507,
0.09421380035591416,
0.10205916109442532,
0.10847184052857647,
0.11336181654631956,
0.11666044348529646,
0.11832141527926213,
0.11832141527926213,
0.11666044348529646,
0.11336181654631956,
0.10847184052857647,
0.10205916109442532,
0.09421380035591416,
0.08504589431348507,
0.07468414976565976,
0.06327404632957467,
0.05097582529714808,
0.03796238329436312,
0.024417851092631938,
0.010551372617343395];
const LEGENDRE_WEIGHT_27: [f64; 27] = [
0.009798996051294204,
0.022686231596180995,
0.03529705375741918,
0.047449412520615374,
0.05898353685983364,
0.06974882376624564,
0.07960486777305782,
0.08842315854375683,
0.0960887273700285,
0.10250163781774586,
0.10757828578853317,
0.11125248835684516,
0.1134763461089652,
0.11422086737895706,
0.1134763461089652,
0.11125248835684516,
0.10757828578853317,
0.10250163781774586,
0.0960887273700285,
0.08842315854375683,
0.07960486777305782,
0.06974882376624564,
0.05898353685983364,
0.047449412520615374,
0.03529705375741918,
0.022686231596180995,
0.009798996051294204];
const LEGENDRE_WEIGHT_28: [f64; 28] = [
0.009124282593094397,
0.02113211259277127,
0.03290142778230452,
0.044272934759003985,
0.055107345675716936,
0.06527292396699975,
0.07464621423456881,
0.08311341722890093,
0.09057174439303285,
0.09693065799792992,
0.10211296757806078,
0.10605576592284637,
0.10871119225829413,
0.11004701301647524,
0.11004701301647524,
0.10871119225829413,
0.10605576592284637,
0.10211296757806078,
0.09693065799792992,
0.09057174439303285,
0.08311341722890093,
0.07464621423456881,
0.06527292396699975,
0.055107345675716936,
0.044272934759003985,
0.03290142778230452,
0.02113211259277127,
0.009124282593094397];
const LEGENDRE_WEIGHT_29: [f64; 29] = [
0.008516903878747237,
0.019732085056123293,
0.03074049220209336,
0.04140206251868274,
0.051594826902497753,
0.06120309065707902,
0.07011793325505114,
0.07823832713576369,
0.0854722573661724,
0.0917377571392587,
0.09696383409440848,
0.10109127375991488,
0.10407331007772933,
0.10587615509732079,
0.10647938171831416,
0.10587615509732079,
0.10407331007772933,
0.10109127375991488,
0.09696383409440848,
0.0917377571392587,
0.0854722573661724,
0.07823832713576369,
0.07011793325505114,
0.06120309065707902,
0.051594826902497753,
0.04140206251868274,
0.03074049220209336,
0.019732085056123293,
0.008516903878747237];
const LEGENDRE_WEIGHT_30: [f64; 30] = [
0.007968192496169523,
0.018466468311091087,
0.028784707883322873,
0.03879919256962679,
0.048402672830594434,
0.05749315621761909,
0.06597422988218032,
0.0737559747377048,
0.08075589522941981,
0.0868997872010827,
0.09212252223778579,
0.09636873717464399,
0.09959342058679493,
0.10176238974840521,
0.10285265289355848,
0.10285265289355848,
0.10176238974840521,
0.09959342058679493,
0.09636873717464399,
0.09212252223778579,
0.0868997872010827,
0.08075589522941981,
0.0737559747377048,
0.06597422988218032,
0.05749315621761909,
0.048402672830594434,
0.03879919256962679,
0.028784707883322873,
0.018466468311091087,
0.007968192496169523];