13 return std::vector{0.};
15 return std::vector{-std::numbers::inv_sqrt3, std::numbers::inv_sqrt3};
17 return std::vector{-std::sqrt(3. / 5.), 0., std::sqrt(3. / 5.)};
20 -std::sqrt((3. / 7.) + ((2. / 7.) * std::sqrt(6. / 5.))),
21 -std::sqrt((3. / 7.) - ((2. / 7.) * std::sqrt(6. / 5.))),
22 std::sqrt((3. / 7.) - ((2. / 7.) * std::sqrt(6. / 5.))),
23 std::sqrt((3. / 7.) + ((2. / 7.) * std::sqrt(6. / 5.)))
27 -(1. / 3.) * std::sqrt(5. + (2. * std::sqrt(10. / 7.))),
28 -(1. / 3.) * std::sqrt(5. - (2. * std::sqrt(10. / 7.))), 0.,
29 (1. / 3.) * std::sqrt(5. - (2. * std::sqrt(10. / 7.))),
30 (1. / 3.) * std::sqrt(5. + (2. * std::sqrt(10. / 7.)))
33 return std::vector{-0.9324695142031520501, -0.6612093864662644815,
34 -0.2386191860831969325, 0.2386191860831969325,
35 0.6612093864662644815, 0.9324695142031520501};
37 return std::vector{-0.9491079123427585, -0.7415311855993945, -0.4058451513773972, 0.,
38 0.4058451513773972, 0.7415311855993945, 0.9491079123427585};
40 return std::vector{-0.9602898564975362872, -0.796666477413626728, -0.5255324099163289908,
41 -0.1834346424956497801, 0.1834346424956497801, 0.5255324099163289908,
42 0.796666477413626728, 0.9602898564975362872};
44 return std::vector{-0.9681602395076261,
55 -0.973906528517172, -0.8650633666889761, -0.6794095682990245,
56 -0.4333953941292472, -0.1488743389816312, 0.1488743389816312,
57 0.4333953941292472, 0.6794095682990245, 0.8650633666889761,
61 return std::vector{-0.9782286581460570, -0.8870625997680953, -0.7301520055740494,
62 -0.5190961292068118, -0.2695431559523449, 0.,
63 0.2695431559523449, 0.5190961292068118, 0.7301520055740494,
64 0.8870625997680953, 0.9782286581460570};
66 return std::vector{-0.9815606342467192436, -0.9041172563704749088,
67 -0.7699026741943046925, -0.5873179542866174829,
68 -0.3678314989981801841, -0.1252334085114689133,
69 0.1252334085114689133, 0.3678314989981801841,
70 0.5873179542866174829, 0.7699026741943046925,
71 0.9041172563704749088, 0.9815606342467192436};
89 return std::vector{-0.9862838086968123141, -0.928434883663573518,
90 -0.8272013150697650197, -0.6872929048116854789,
91 -0.5152486363581540996, -0.3191123689278897446,
92 -0.1080549487073436538, 0.1080549487073436538,
93 0.3191123689278897446, 0.5152486363581540996,
94 0.6872929048116854789, 0.8272013150697650197,
95 0.928434883663573518, 0.9862838086968123141};
98 -0.9879925180204854, -0.9372733924007059, -0.8482065834104272, -0.7244177313601700,
99 -0.5709721726085388, -0.3941513470775634, -0.2011940939974345, 0.,
100 0.2011940939974345, 0.3941513470775634, 0.5709721726085388, 0.7244177313601700,
101 0.8482065834104272, 0.9372733924007059, 0.9879925180204854
104 return std::vector{-0.9894009349916499, -0.9445750230732326, -0.8656312023878318,
105 -0.755404408355003, -0.6178762444026438, -0.45801677765722737,
106 -0.2816035507792589, -0.09501250983763744, 0.09501250983763744,
107 0.2816035507792589, 0.45801677765722737, 0.6178762444026438,
108 0.755404408355003, 0.8656312023878318, 0.9445750230732326,
111 return std::vector{-0.9905754753144174, -0.9506755217687677, -0.8802391537269859,
112 -0.7815140038968014, -0.6576711592166907, -0.5126905370864769,
113 -0.3512317634538763, -0.17848418149584785, 0.0,
114 0.17848418149584785, 0.3512317634538763, 0.5126905370864769,
115 0.6576711592166907, 0.7815140038968014, 0.8802391537269859,
116 0.9506755217687677, 0.9905754753144174};
118 return std::vector{-0.991565168420931, -0.9558239495713978, -0.8926024664975557,
119 -0.8037049589725231, -0.6916870430603532, -0.5597708310739475,
120 -0.41175116146284263, -0.2518862256915055, -0.08477501304173529,
121 0.08477501304173529, 0.2518862256915055, 0.41175116146284263,
122 0.5597708310739475, 0.6916870430603532, 0.8037049589725231,
123 0.8926024664975557, 0.9558239495713978, 0.991565168420931};
125 return std::vector{-0.9924068438435844, -0.96020815213483,
126 -0.9031559036148179, -0.8227146565371428,
127 -0.7209661773352294, -0.600545304661681,
128 -0.46457074137596094, -0.31656409996362983,
129 -0.16035864564022537, 0.0,
130 0.16035864564022537, 0.31656409996362983,
131 0.46457074137596094, 0.600545304661681,
132 0.7209661773352294, 0.8227146565371428,
133 0.9031559036148179, 0.96020815213483,
136 return std::vector{-0.993128599185095, -0.9639719272779138, -0.912234428251326,
137 -0.8391169718222188, -0.7463319064601508, -0.636053680726515,
138 -0.5108670019508271, -0.37370608871541955, -0.22778585114164507,
139 -0.07652652113349734, 0.07652652113349734, 0.22778585114164507,
140 0.37370608871541955, 0.5108670019508271, 0.636053680726515,
141 0.7463319064601508, 0.8391169718222188, 0.912234428251326,
142 0.9639719272779138, 0.993128599185095};
145 -0.9997137267734413, -0.9984919506395958, -0.9962951347331251,
146 -0.9931249370374434, -0.9889843952429918, -0.983877540706057,
147 -0.9778093584869183, -0.9707857757637064, -0.9628136542558156,
148 -0.9539007829254917, -0.944055870136256, -0.9332885350430795,
149 -0.921609298145334, -0.9090295709825297, -0.895561644970727,
150 -0.8812186793850184, -0.8660146884971647, -0.8499645278795913,
151 -0.8330838798884008, -0.8153892383391762, -0.7968978923903145,
152 -0.7776279096494955, -0.7575981185197072, -0.7368280898020207,
153 -0.7153381175730564, -0.693149199355802, -0.670283015603141,
154 -0.6467619085141293, -0.6226088602037078, -0.5978474702471788,
155 -0.5725019326213812, -0.5465970120650941, -0.520158019881763,
156 -0.49321078920819095, -0.46578164977335806, -0.4378974021720315,
157 -0.40958529167830154, -0.38087298162462996, -0.35178852637242175,
158 -0.32236034390052914, -0.292617188038472, -0.2625881203715035,
159 -0.23230248184497396, -0.201789864095736, -0.17108008053860327,
160 -0.14020313723611397, -0.10918920358006111, -0.07806858281343663,
161 -0.046871682421591634, -0.015628984421543084, 0.015628984421543084,
162 0.046871682421591634, 0.07806858281343663, 0.10918920358006111,
163 0.14020313723611397, 0.17108008053860327, 0.201789864095736,
164 0.23230248184497396, 0.2625881203715035, 0.292617188038472,
165 0.32236034390052914, 0.35178852637242175, 0.38087298162462996,
166 0.40958529167830154, 0.4378974021720315, 0.46578164977335806,
167 0.49321078920819095, 0.520158019881763, 0.5465970120650941,
168 0.5725019326213812, 0.5978474702471788, 0.6226088602037078,
169 0.6467619085141293, 0.670283015603141, 0.693149199355802,
170 0.7153381175730564, 0.7368280898020207, 0.7575981185197072,
171 0.7776279096494955, 0.7968978923903145, 0.8153892383391762,
172 0.8330838798884008, 0.8499645278795913, 0.8660146884971647,
173 0.8812186793850184, 0.895561644970727, 0.9090295709825297,
174 0.921609298145334, 0.9332885350430795, 0.944055870136256,
175 0.9539007829254917, 0.9628136542558156, 0.9707857757637064,
176 0.9778093584869183, 0.983877540706057, 0.9889843952429918,
177 0.9931249370374434, 0.9962951347331251, 0.9984919506395958,
181 throw std::runtime_error(
"Supported orders are 1 - 20");
188 return std::vector{2.};
190 return std::vector{1., 1.};
192 return std::vector{5. / 9., 8. / 9., 5. / 9.};
195 (18. - std::sqrt(30.)) / 36., (18. + std::sqrt(30.)) / 36.,
196 (18. + std::sqrt(30.)) / 36., (18. - std::sqrt(30.)) / 36.
200 (322. - 13. * std::sqrt(70.)) / 900., (322. + 13. * std::sqrt(70.)) / 900.,
201 128. / 225., (322. + 13. * std::sqrt(70.)) / 900.,
202 (322. - 13. * std::sqrt(70.)) / 900.
205 return std::vector{0.1713244923791703844, 0.3607615730481385508, 0.4679139345726910371,
206 0.4679139345726910371, 0.3607615730481385508, 0.1713244923791703844};
208 return std::vector{0.1294849661688697, 0.2797053914892766, 0.3818300505051189,
209 0.4179591836734694, 0.3818300505051189, 0.2797053914892766,
212 return std::vector{0.1012285362903762309, 0.2223810344533744821, 0.3137066458778872136,
213 0.3626837833783619902, 0.3626837833783619902, 0.3137066458778872136,
214 0.2223810344533744821, 0.1012285362903762309};
216 return std::vector{0.0812743883615744, 0.1806481606948574, 0.2606106964029354,
217 0.3123470770400029, 0.3302393550012598, 0.3123470770400029,
218 0.2606106964029354, 0.1806481606948574, 0.0812743883615744};
220 return std::vector{0.06667134430868793, 0.1494513491504942, 0.2190863625159827,
221 0.2692667193099965, 0.2955242247147527, 0.2955242247147527,
222 0.2692667193099965, 0.2190863625159827, 0.1494513491504942,
223 0.06667134430868793};
225 return std::vector{0.0556685671161737, 0.1255803694649046, 0.1862902109277343,
226 0.2331937645919905, 0.2628045445102467, 0.2729250867779006,
227 0.2628045445102467, 0.2331937645919905, 0.1862902109277343,
228 0.1255803694649046, 0.0556685671161737};
230 return std::vector{0.04717533638651186939, 0.1069393259953183295,
231 0.1600783285433463876, 0.2031674267230659803,
232 0.2334925365383547224, 0.2491470458134028843,
233 0.2491470458134028843, 0.2334925365383547224,
234 0.2031674267230659803, 0.1600783285433463876,
235 0.1069393259953183295, 0.04717533638651186939};
237 return std::vector{0.0404840047653159, 0.0921214998377284, 0.1388735102197872,
238 0.1781459807619457, 0.2078160475368885, 0.2262831802628972,
239 0.2325515532308739, 0.2262831802628972, 0.2078160475368885,
240 0.1781459807619457, 0.1388735102197872, 0.0921214998377284,
243 return std::vector{0.03511946033175197823, 0.08015808715976011078, 0.1215185706879031435,
244 0.1572031671581935464, 0.185538397477937822, 0.2051984637212956875,
245 0.2152638534631578227, 0.2152638534631578227, 0.2051984637212956875,
246 0.185538397477937822, 0.1572031671581935464, 0.1215185706879031435,
247 0.08015808715976011078, 0.03511946033175197823};
249 return std::vector{0.0307532419961173, 0.0703660474881081, 0.1071592204671719,
250 0.1395706779261543, 0.1662692058169939, 0.1861610000155622,
251 0.1984314853271116, 0.2025782419255613, 0.1984314853271116,
252 0.1861610000155622, 0.1662692058169939, 0.1395706779261543,
253 0.1071592204671719, 0.0703660474881081, 0.0307532419961173};
255 return std::vector{0.027152459411754176, 0.062253523938647456, 0.0951585116824926,
256 0.12462897125553407, 0.1495959888165767, 0.16915651939500265,
257 0.18260341504492364, 0.18945061045506864, 0.18945061045506864,
258 0.18260341504492364, 0.16915651939500265, 0.1495959888165767,
259 0.12462897125553407, 0.0951585116824926, 0.062253523938647456,
260 0.027152459411754176};
262 return std::vector{0.02414830286854758, 0.05545952937398796, 0.08503614831717912,
263 0.11188384719340397, 0.1351363684685255, 0.15404576107681026,
264 0.1680041021564499, 0.17656270536699253, 0.17944647035620653,
265 0.17656270536699253, 0.1680041021564499, 0.15404576107681026,
266 0.1351363684685255, 0.11188384719340397, 0.08503614831717912,
267 0.05545952937398796, 0.02414830286854758};
269 return std::vector{0.021616013526481497, 0.049714548894969394, 0.07642573025488957,
270 0.10094204410628728, 0.1225552067114787, 0.14064291467065093,
271 0.15468467512626555, 0.16427648374583304, 0.1691423829631439,
272 0.1691423829631439, 0.16427648374583304, 0.15468467512626555,
273 0.14064291467065093, 0.1225552067114787, 0.10094204410628728,
274 0.07642573025488957, 0.049714548894969394, 0.021616013526481497};
276 return std::vector{0.01946178822972652, 0.04481422676569959, 0.06904454273764117,
277 0.09149002162244999, 0.111566645547334, 0.12875396253933621,
278 0.14260670217360646, 0.15276604206585961, 0.15896884339395434,
279 0.16105444984878362, 0.15896884339395434, 0.15276604206585961,
280 0.14260670217360646, 0.12875396253933621, 0.111566645547334,
281 0.09149002162244999, 0.06904454273764117, 0.04481422676569959,
282 0.01946178822972652};
284 return std::vector{0.017614007139150893, 0.040601429800386446, 0.06267204833410879,
285 0.08327674157670471, 0.1019301198172407, 0.1181945319615186,
286 0.1316886384491769, 0.1420961093183824, 0.14917298647260424,
287 0.15275338713072628, 0.15275338713072628, 0.14917298647260424,
288 0.1420961093183824, 0.1316886384491769, 0.1181945319615186,
289 0.1019301198172407, 0.08327674157670471, 0.06267204833410879,
290 0.040601429800386446, 0.017614007139150893};
292 return std::vector{0.0007346344905072278, 0.0017093926535173846, 0.0026839253715533677,
293 0.0036559612013274284, 0.004624450063421983, 0.005588428003865369,
294 0.00654694845084484, 0.007499073255463917, 0.008443871469668723,
295 0.009380419653694416, 0.010307802574868973, 0.011225114023186138,
296 0.012131457662979225, 0.013025947892971705, 0.01390771070371871,
297 0.014775884527441366, 0.01562962107754569, 0.016468086176144956,
298 0.017290460568323576, 0.018095940722128372, 0.018883739613374844,
299 0.019653087494435423, 0.020403232646209492, 0.021133442112527462,
300 0.021843002416247488, 0.02253122025633618, 0.023197423185254033,
301 0.023840960265968176, 0.024461202707957062, 0.025057544481579572,
302 0.02562940291020816, 0.026176219239545735, 0.026697459183571044,
303 0.027192613446576898, 0.027661198220792355, 0.028102755659101225,
304 0.02851685432239509, 0.028903089601125198, 0.029261084110638252,
305 0.029590488059912677, 0.029890979593332794, 0.03016226510516914,
306 0.030404079526454842, 0.030616186583980465, 0.03079837903115257,
307 0.030950478850490973, 0.031072337427566554, 0.031163835696209896,
308 0.031224884254849358, 0.031255423453863354, 0.031255423453863354,
309 0.031224884254849358, 0.031163835696209896, 0.031072337427566554,
310 0.030950478850490973, 0.03079837903115257, 0.030616186583980465,
311 0.030404079526454842, 0.03016226510516914, 0.029890979593332794,
312 0.029590488059912677, 0.029261084110638252, 0.028903089601125198,
313 0.02851685432239509, 0.028102755659101225, 0.027661198220792355,
314 0.027192613446576898, 0.026697459183571044, 0.026176219239545735,
315 0.02562940291020816, 0.025057544481579572, 0.024461202707957062,
316 0.023840960265968176, 0.023197423185254033, 0.02253122025633618,
317 0.021843002416247488, 0.021133442112527462, 0.020403232646209492,
318 0.019653087494435423, 0.018883739613374844, 0.018095940722128372,
319 0.017290460568323576, 0.016468086176144956, 0.01562962107754569,
320 0.014775884527441366, 0.01390771070371871, 0.013025947892971705,
321 0.012131457662979225, 0.011225114023186138, 0.010307802574868973,
322 0.009380419653694416, 0.008443871469668723, 0.007499073255463917,
323 0.00654694845084484, 0.005588428003865369, 0.004624450063421983,
324 0.0036559612013274284, 0.0026839253715533677, 0.0017093926535173846,
325 0.0007346344905072278};
328 throw std::runtime_error(
"Supported Orders are 1 - 20");