libome-rs 0.0.1

Rust bindings for libome, a C++ library for massive QCD operator matrix elements in x-space.
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
/******************************************************************************
 * This file is part of libome                                                *
 * Copyright (C) 2025 Arnd Behring, Kay Schoenwald                            *
 * SPDX-License-Identifier: GPL-3.0-or-later                                  *
 ******************************************************************************/

#include <ome/polAQqPSs.h>

namespace ome
{

  /**************** polAQqPSs, regular part ****************/

  const ome_as<double> polAQqPSs_reg = 
    // polAQqPSs_reg
    ome_as<double>({
      // polAQqPSs_reg as^3
      ome_logm<double>({
        // polAQqPSs_reg as^3 LM^0
        ome_nf<double>({
          // polAQqPSs_reg as^3 LM^0 NF^0
          ome_piecewisex<double>(
            {0.375,0.625},
            {
              // polAQqPSs_reg as^3 LM^0 NF^0 [below 0.375]
              make_ome_genps(
                std::function<double(double)>(f_id<double>),
                // polAQqPSs_reg as^3 LM^0 NF^0 [below 0.375] y=x
                ome_logx<double>({
                  // polAQqPSs_reg as^3 LM^0 NF^0 [below 0.375] y=x H[0, y]^0
                  ome_x<double>({
                    409.917666999005915183638676529,-361.356775300760032587859048847,-129.904917997320004855209243251,
                    112.475488880165674412082994954,-72.9892875128697696783053959804,79.3599165953495349923075345934,
                    -78.3403610443983277978027382973,81.1961409135079816293750834961,-81.9404434175491839576260379915,
                    83.397943711056502450384053353,-84.0380085712541513988865268948,84.8576501030381133605628797103,
                    -85.307972025270393172155047391,85.8035558594449753697738768655,-86.1166939840644218280808193537,
                    86.4329522233530545681871528861,-86.6547321212648425907160353247,86.8649169788850964137261807394,
                    -87.0256716956038072399837191536,87.1697317457196878055120780857,-87.2888570539020952684121112072,
                    87.3899280007576529587682859354,-87.4799599663826687980561204914,87.5521130647408716474855736733,
                    -87.6213346799603276747212544337,87.6734815767413780858584814804,-87.7274990975098253355738785359,
                    87.7654782602860380974817703923,-87.8081752925181522928918192845,87.8359231895026327696702238129,
                    -87.8700482464483295635480650714,87.8902849744834374476214077478,-87.917821428404721279644793696,
                    87.9324668637978983255776729078,-87.9548712846018495687099871815,87.9653057251494697972500848979,
                    -87.9836648600878320291564844398,87.9908968185456603187436409989,-88.0060331496671423249690284741,
                    88.0108100256751808085731089527,-88.0233541231852709874584866066,88.0262367887637120509909872792,
                    -88.0366777875075721774726371819,88.038091829523434219594384316,-88.04681321853847492155728723,
                    88.0470847578087777523510314294,-88.0543901368872066641150023198,88.0537712600032263217498669586,
                    -88.0599031313461456670409341133,88.0585902047490320830561729562,-88.0637438571283561687590560564
                  },0),
                  // polAQqPSs_reg as^3 LM^0 NF^0 [below 0.375] y=x H[0, y]^1
                  ome_x<double>({
                    129.864177053284463379556706393,364.754532837829760245828821348,-62.3292470032004461628709397541,
                    -48.8552041439403739284532344944,5.87709060665821860939434599208,-14.3196233934936670057026036666,
                    3.60098437667908450036741870173,-6.38698122535125198536630078701,2.01297872442248761242978179753,
                    -3.53171469799021076942160968042,1.21664085486181119176327416365,-2.21019842815688927143840832771,
                    0.787383934208495396451663995703,-1.49877956090762023208270285877,0.536989611462294302449109411377,
                    -1.07520521424222818833154736585,0.381205201741698948715292540842,-0.804170336207939505708656230207,
                    0.279186742365416393305704324083,-0.621092075608913034857187723699,0.209574928040456584116946814856,
                    -0.492094612855775954747532147148,0.160459194750996112118603275934,-0.398073204017808894244416153953,
                    0.124832736242902829329685437157,-0.327615484554627514495002560742,0.0983846941633173321102985967603,
                    -0.273577447841518713937946608533,0.0783605316406205766238694491041,-0.231309769880839256263319373639,
                    0.0629423391863125455460746767437,-0.197685746402745448769883130555,0.0508964334857656804262787663944,
                    -0.170542776295195156447245838647,0.0413650389557647238237272875143,-0.148348288078992799839574162382,
                    0.0337389095258504448851633719407,-0.12999286852459074225386828153,0.0275770946954296237815137105218,
                    -0.114658232591469859589263338097,0.0225550557605482538276495634501,-0.101730691383660186033760303394,
                    0.018430320501213966500598161129,-0.0907430885987167558809285391001,0.0150192660436425827860525761304,
                    -0.0813350121192063768349419051774,0.0121811250279930862230182766498,-0.073225009125822876888802061525,
                    0.00980677774657207803959625851551,-0.0661908496873589933731023339428,0.00781077500440535638769204151879
                  },0),
                  // polAQqPSs_reg as^3 LM^0 NF^0 [below 0.375] y=x H[0, y]^2
                  ome_x<double>({
                    -21.9324542246430191529655355553,-36.690305006235691453480733368,23.7037037037037037037037037037,
                    -5.02057613168724279835390946502,-21.9101508916323731138545953361,-6.76320987654320987654320987654,
                    -27.1462277091906721536351165981,-8.71105032253936259983123172844,-28.6534189072454378576827556419,
                    -9.82192800531277897533041565963,-29.3209420747418003933778968073,-10.5167144796162243361508742592,
                    -29.6920856599970976055049108819,-10.9876310415612044657263446072,-29.9285058187767200366322855555,
                    -11.3263374562039213084816511372,-30.0929920826487184511875869901,-11.5810236899621002454754179204,
                    -30.2145963564207538858928456304,-11.7791993648382273488176372016,-30.3085273327699337321731256707,
                    -11.9376331992138899697244672662,-30.383508778359154834717269831,-12.0670984107964270312342995225,
                    -30.4449076657592584846115285037,-12.1748189879348869392891069703,-30.4962128980608666407403325972,
                    -12.2658135970537075886778809599,-30.5397952929436797630004661345,-12.3436740796401744581148527297,
                    -30.5773254585050057329201524383,-12.411037004906749601034566658,-30.6100166973806365687155643744,
                    -12.4698803671286666458716033937,-30.6387729237195839188928322265,-12.5217164760436805667666556421,
                    -30.6642823584991636190829453484,-12.5677209789877162805912596676,-30.6870789184430540337020468729,
                    -12.6088213428738569065829727413,-30.7075836315635597148518348701,-12.6457588874246855916945766265,
                    -30.7261333005612138534995498937,-12.6791331379232469986168490599,-30.7430007914286481994833868227,
                    -12.7094340993302786842220871801,-30.7584096830440880271392081273,-12.7370661161759761874023141855,
                    -30.7725450345919603594972613548,-12.7623657667654064079908022503,-30.7855614266556988448060650721
                  },0),
                  // polAQqPSs_reg as^3 LM^0 NF^0 [below 0.375] y=x H[0, y]^3
                  ome_x<double>({
                    -14.6216361497620127686436903702,7.10675891196638229308470469154,0,1.75582990397805212620027434842,
                    -0.411522633744855967078189300412,0.469135802469135802469135802469,-0.184362139917695473251028806584,
                    0.217239159038100837042635984435,-0.102040816326530612244897959184,0.125361987501905197378448407255,
                    -0.0643804298125285779606767261088,0.0816243240485664728088970513213,-0.0442131755263068394381525694657,
                    0.0573858978417382975787534192093,-0.032202230004427806625608823411,0.0425520002239578959155678732398,
                    -0.0244855967078189300411522633745,0.0328132342261523345721730958178,-0.0192391973330928433666696727912,
                    0.0260753440649249046134697560207,-0.0155124653739612188365650969529,0.021220010638000055989473978892,
                    -0.0127711527422927134326845726557,0.0176055489110424093525428233568,-0.0106964767750317004675332757668,
                    0.0148422496570644718792866941015,-0.00908875739644970414201183431953,0.0126822764084907519890461046242,
                    -0.00781778951483047113068669016151,0.0109618868466045862569275739538,
                    -0.00679575069851196155859915933902,0.0095693643309938064630321924036,
                    -0.00596167186958029830038154699965,0.00842636522350327064131777936492,
                    -0.00527215933877707321487685683275,0.00747662899582490948449096414165,
                    -0.00469565055102973974226178811717,0.00667890669002892337337894005673,
                    -0.00420874569261183021758001169546,0.00600239758639581859349677455446,
                    -0.00379380037499695619353739011859,0.00542372632398410704974258414671,
                    -0.00343730738525975676953458508278,0.00492489348184261207459790420407,
                    -0.00312878527146681923219609438204,0.00449185709193191422895874822549,
                    -0.00286000019015958711167467497837,0.00411353243882596935910655377019,
                    -0.00262441154498898073164961148463,0.00378107487220973885480958151296,
                    -0.00241677078994863251423018186867
                  },0),
                  // polAQqPSs_reg as^3 LM^0 NF^0 [below 0.375] y=x H[0, y]^4
                  ome_x<double>({
                    -4.1975308641975308641975308642
                  },1),
                  // polAQqPSs_reg as^3 LM^0 NF^0 [below 0.375] y=x H[0, y]^5
                  ome_x<double>({
                    0.296296296296296296296296296296
                  },1)
                },0)
              ),
              // polAQqPSs_reg as^3 LM^0 NF^0 [0.375,0.625]
              make_ome_genps(
                std::function<double(double)>(f_half<double>),
                // polAQqPSs_reg as^3 LM^0 NF^0 [0.375,0.625] y=1/2-x
                ome_logx<double>({
                  // polAQqPSs_reg as^3 LM^0 NF^0 [0.375,0.625] y=1/2-x H[0, y]^0
                  ome_x<double>({
                    -8.18351036764218341880722629819,-25.4794231328933737935037630905,-23.2207689011057673987530842744,
                    6.98243372800482095177162581816,132.228990760306234690159326724,430.304935488809607750636639719,
                    1075.41773971959903941504124459,2446.12959103541883143507734035,5244.78081071760869971865973711,
                    10987.3514341652310056312280767,22498.3909401690027347549834755,45730.249414181337554232910128,
                    91908.7128367821907434461910066,184294.918317714049101612787171,367163.832914848870020469156793,
                    731235.769307283712449182364122,1.45034726574947271463220357357e6,2.87800486863327773743518328014e6,
                    5.69499351792183402016947327187e6,1.12784615727950345065386881021e7,2.22908322225827094377017521303e7,
                    4.40976971597726019785920007879e7,8.71044180126105605508319464508e7,1.72223596993177568462862476553e8,
                    3.40113280323333804050240762118e8,6.72321310491478710182661461059e8,1.32772751222518326098885950404e9,
                    2.62450674070952628827366364929e9,5.18367385798663143341397669262e9,1.0247415426246942690034463009e10,
                    2.02439907060708028211644292781e10,4.002609812896793905707370866e10,7.90927330031258898037594764478e10,
                    1.56413410845927510886990179402e11,3.09164501908366131848850864453e11,6.11545698286084793678399737432e11,
                    1.20912694449379060191258131699e12,2.39232021785415626535743106266e12,4.73141448690995481457035412362e12,
                    9.36373687029001257218064206627e12,1.8524588762770947428162459084e13,3.66705902885989752321919330642e13,
                    7.25675486984430058268402993661e13,1.43688388489318104579057144919e14,2.84425128610734653697819881366e14,
                    5.63319583514616811965958202067e14,1.11536981744511314989083617028e15,2.20958428264503785394057968891e15,
                    4.37610850502575863806871620188e15,8.67124208745415663032902445477e15,1.71778139500060007380266338634e16
                  },0)
                },0)
              ),
              // polAQqPSs_reg as^3 LM^0 NF^0 [above 0.625]
              make_ome_genps(
                std::function<double(double)>(f_omx<double>),
                // polAQqPSs_reg as^3 LM^0 NF^0 [above 0.625] y=1-x
                ome_logx<double>({
                  // polAQqPSs_reg as^3 LM^0 NF^0 [above 0.625] y=1-x H[0, y]^0
                  ome_x<double>({
                    -21.5886166927651548927851098934,7.37693476800601058667054575539,-2.94183869571566635428450209568,
                    -5.57001450497013965137822289288,-4.25635434076442631804090129846,-1.73040189121464668258896787667,
                    0.767579451585846441510109675255,2.90131966794845724227182209003,4.63703138958608311039576205471,
                    6.02534632709465950508772202731,7.13081540788495238518622347306,8.01136529328289798412399791202,
                    8.71406337955314021217169371587,9.27582686632697487139199974254,9.7252955238758412545058953805,
                    10.0846827345758491472099571362,10.3712997311005277512145132902,10.5987319916478698736726496502,
                    10.777724745289919595996475824,10.9168444282749901851687032778,11.0229731717004061006346693376,
                    11.1016803433700672287541408823,11.1575037170131314228913236062,11.1941639738881196045971885625,
                    11.2147297111676272390732904018,11.2217454238338762493848828329,11.2173315579977024158734429534,
                    11.2032633225379624716314947569,11.1810332131534867503795318584,11.1519009495036047134062875781,
                    11.1169336125628348487154382009,11.0770380980818191494992207978,11.0329875048120676049165440808,
                    10.9854427048398296991547778695,10.9349700639290962150310420352,10.8820560678908417473306538443,
                    10.8271194491921248879191969699,10.7705212836177681727977353768,10.7125734305346391662391968333,
                    10.6535456153615692447234365096,10.5936713941553995519825628602,10.5331531940042672557234118278,
                    10.4721665863289888542363407004,10.4108639210793437460458845773,10.3493774265344503387859666943,
                    10.2878218607190062571355679599,10.2262967853620906033735273362,10.1648885211028472095966236019,
                    10.1036718327040442013364232474,10.0427113849136041115581714397
                  },1),
                  // polAQqPSs_reg as^3 LM^0 NF^0 [above 0.625] y=1-x H[0, y]^1
                  ome_x<double>({
                    -3.25361702617727411716676438322,-8.88888888888888888888888888889,4.04634247741629623340042272297,
                    7.8824587904424753162402147394,8.06389199701143802412612510248,7.09506318540167753077190437091,
                    5.86488992663335300001592735087,4.66766733269710484889240798924,3.58794630197238356612268919749,
                    2.6381534191496559172358982893,1.80787378088546435443868100603,1.08127988942748417963530600814,
                    0.442954962277115385591984570129,-0.120476609449443907279437897679,-0.620168234379682661872818156995,
                    -1.06531166168115982379631045985,-1.46348232775715982285007538545,-1.82095519005742555582077974631,
                    -2.14296406497126004269430306746,-2.43390642368687763884284583756,-2.69750321302455005775472721021,
                    -2.93692364681337076935561996019,-3.15488325783887419158515905809,-3.35372160649911315803172154516,
                    -3.53546443794492185272283245536,-3.70187384870171000471417035215,-3.85448911596855017156380802431,
                    -3.99466018209707072493907564891,-4.12357530602391187987539991874,-4.24228404130936307795374412979,
                    -4.35171643989601426489340776851,-4.45269918569805907244752278883,-4.5459692144698106612198686602,
                    -4.63218526333736153878987068878,-4.7119377059100820514948280604,-4.78575696059047448209776132682,
                    -4.8541207059220603370616924921,-4.91746009414887193629070184509,-4.97616512007991066548066319342,
                    -5.03058927496169609784327939876,-5.08105359292423539432714251886,-5.12785017958008832988408280717,
                    -5.17124529767333470274543289789,-5.21148207263451615648668768947,-5.24878287098161113632333389325,
                    -5.28335139630804749224454930524,-5.31537454079347659628440359109,-5.34502402450402536440743154108,
                    -5.37245785000983945991486488353,-5.39782159587310702041610977908
                  },1),
                  // polAQqPSs_reg as^3 LM^0 NF^0 [above 0.625] y=1-x H[0, y]^2
                  ome_x<double>({
                    0.429434272142893145103452345618,0,-1.62462623886244586318263226335,-1.62462623886244586318263226335,
                    -1.22759571374163337562980113578,-0.830565188620820888076970008214,-0.502011099481406069233920164594,
                    -0.241933446323388919100651604925,-0.0377927016527112920299628826062,0.122950662024684957625347448962,
                    0.250414630193623524574969248473,0.352295646329693652591080786712,0.434354985668157350181822522315,
                    0.500905128972856606264770877526,0.555195533505683074721586946631,0.599697801196610227833840137069,
                    0.636311528543129051171915277442,0.666512122767928352508911726662,0.691457284484332700803927542025,
                    0.71206427283968295477160628758,0.729066486547795403492323983871,0.743055313382865723919909015939,
                    0.754511400080503843504787626021,0.76382825266880596196340101804,0.771330221997887225888872527896,
                    0.777286338087095864718196538749,0.781921045631288001591342750393,0.785422604552752680472903882719,
                    0.787949715375846696046122538089,0.789636783443155816465743129554,0.790598130939260212060660853103,
                    0.790931389281466035983909813161,0.790720248370077825258162673478,0.790036697695073960526485001531,
                    0.788942863330185355150101795096,0.787492521553847237541136032275,0.785732352184287263062849354257,
                    0.783702981240682799439974121793,0.781439852184299412758579339123,0.778973956979067070708617303666,
                    0.776332451970825598016827529261,0.773539178696472931685196202704,0.770615105883472209298642993856,
                    0.767578705849884664704025044251,0.764446276086229748078364036839,0.761232214856741042705399091254,
                    0.757949258094630902135711920543,0.754608683603435909456671216541,0.751220487552162288004519299928,
                    0.747793537417345915784848764418
                  },1)
                },0)
              )
            }
          )
        },0),
        // polAQqPSs_reg as^3 LM^1
        ome_nf<double>({
          // polAQqPSs_reg as^3 LM^1 NF^0
          ome_piecewisex<double>(
            {0.375,0.625},
            {
              // polAQqPSs_reg as^3 LM^1 NF^0 [below 0.375]
              make_ome_genps(
                std::function<double(double)>(f_id<double>),
                // polAQqPSs_reg as^3 LM^1 NF^0 [below 0.375] y=x
                ome_logx<double>({
                  // polAQqPSs_reg as^3 LM^1 NF^0 [below 0.375] y=x H[0, y]^0
                  ome_x<double>({
                    157.552949766462887991340817418,-294.586208117006841544823351644,162.930989043492495519019205925,
                    -40.2327029493711502718274660079,22.9164817130100661255978511933,-13.7778329174792513564306243653,
                    9.34261463307782617589071798075,-6.70038990436784921929797431102,4.99808331995844324510480535145,
                    -3.91691967104215885637840966467,3.09458096521037760696937379186,-2.55802667364585856781766371109,
                    2.09904222920541476541454249082,-1.79784001385583009426925322691,1.51524210306667546999434367849,
                    -1.33108830730983243885164956519,1.14433623265055951646753510096,-1.02448101878813060707349412997,
                    0.894310216096574730625201120313,-0.812493573922301388516961084906,0.717911325878340385203783214469,
                    -0.659926571370156225250179090691,0.5888777529230018783142960608,-0.546522303110568266144326086407,
                    0.491678443009433521958074830721,-0.459961965745090851465318328655,0.416656077326307977565032845083,
                    -0.392409176018556028702624182341,0.3575521234734272103955796062,-0.338688214676912836525447257202,
                    0.310167459629692927211343188969,-0.295270279738285657408241532441,0.27160024884720764305447503246,
                    -0.259682981100932598292235413933,0.239793454686707196052486810476,-0.230152679103040330234616820899,
                    0.213256217660394375230460701623,-0.205380421334409284840010010301,0.190886771599914436149877338428,
                    -0.184397379253507661426538822518,0.171856729547941127039046855063,-0.166469126502941614716368161136,
                    0.155533594501501515033762876013,-0.151030781371327681561553465365,0.141427722745575046966088013507,
                    -0.137642148188992007363877749447,0.129155306444635925217597570458,-0.125956111655415113017939062843,
                    0.11841207744141687658434695965,-0.115695993134787634124806010598,0.108954326299823381931123324333
                  },0),
                  // polAQqPSs_reg as^3 LM^1 NF^0 [below 0.375] y=x H[0, y]^1
                  ome_x<double>({
                    131.594725347858114917793213332,-83.3466741957179133106396877683,-33.3333333333333333333333333333,
                    2.71604938271604938271604938272,-4.67078189300411522633744855967,3.,-2.6791769547325102880658436214,
                    1.97698832619467540102460737381,-1.71865889212827988338192419825,1.35973936899862825788751714678,
                    -1.19547281555512008186905306247,0.988146399055489964580873671783,-0.881265907283660574141137348973,
                    0.750691958669166646374623582601,-0.677990715425807805955131157401,0.590349465209631498369215678362,
                    -0.538814917935288305658676029046,0.477062585626599467429917256907,-0.439231016413078951452410964799,
                    0.394027520778771875975573979518,-0.365430868997501073862745517849,0.331308677588522859964770062142,
                    -0.309155690397646365186346236037,0.28273951575565459487645933273,-0.265218275511047364647994049583,
                    0.244331488753573376896390312283,-0.230225615548608170676970303574,0.213412461437629370497127607985,
                    -0.201881119955684133816727478371,0.188137433307944419792081714841,-0.178584346982890587802272428366,
                    0.16719886842813590082726841133,-0.159191607257349817098120883069,0.149648838000908459223193725193,
                    -0.142867535894513139232751455582,0.134786270076434297818357153262,-0.128990137261399240182131750876,
                    0.122083430523464917752840979436,-0.117088344727436273227985928503,0.111136771947730292450237509884,
                    -0.106799950599246663592038051003,0.101633333303956426279519781812,-0.097842640085960550272661518941,
                    0.0933273065526758531095823668178,-0.0899936567180107470577028692518,0.0860233969010002533692655653762,
                    -0.0830752752543211340603382236738,0.0795648127499708773954392880996,-0.0769442577245082975403574327933,
                    0.0738244676090938585528835293635,-0.0714840893383815633287483155651
                  },0),
                  // polAQqPSs_reg as^3 LM^1 NF^0 [below 0.375] y=x H[0, y]^2
                  ome_x<double>({
                    43.8649084492860383059310711106,-6.89181925118993615678154814907,-4.44444444444444444444444444444,
                    4.93827160493827160493827160494,-1.66666666666666666666666666667,1.53333333333333333333333333333,
                    -0.711111111111111111111111111111,0.735701688082640463592844545225,-0.388321995464852607709750566893,
                    0.430384087791495198902606310014,-0.243621399176954732510288065844,0.282093663911845730027548209366,
                    -0.166819712274257728803183348638,0.199064942654686244429834173424,-0.121295066350011404956459901515,
                    0.147946586041824137062232300328,-0.0921296296296296296296296296296,0.114258938869665513264129181084,
                    -0.0723368504990957893687613026329,0.0908921643506644019622371935904,-0.0582948599569098184056632810095,
                    0.0740236835474930713025951121189,-0.0479751129101778452427803077154,0.0614496919703999958339191884475,
                    -0.040170132325141776937618147448,0.0518271604938271604938271604938,-0.0341249178172255095332018408941,
                    0.0442997847239695925989056726632,-0.0293478159439358733891361757323,0.0383006948320350732445177833321,
                    -0.0255075527370414409653410842471,0.0334425302860960162382292108272,-0.0223743351832581801364319574517,
                    0.0294533083358840934598510356086,-0.0197847193757857488590423475607,0.0261375138290610361791775533743,
                    -0.017619887461157302427143696985,0.0233516800083366649933216499783,-0.0157917893936460979958771379,
                    0.0209886054051122592922436661339,-0.0142340565417488494411571334648,0.0189668847907991275034701566528,
                    -0.0128958979983030293219806264762,0.0172238035690609797591692567098,-0.0117379110938282972306277286856,
                    0.0157104150370143636136902130168,-0.0107291496495445245707795592274,0.0143880664623698149547463361633,
                    -0.00984503629931425313951343829117,0.0132259063867421496187288218386,-0.00906585219121662270350316997547
                  },0),
                  // polAQqPSs_reg as^3 LM^1 NF^0 [below 0.375] y=x H[0, y]^3
                  ome_x<double>({
                    20.7407407407407407407407407407
                  },1),
                  // polAQqPSs_reg as^3 LM^1 NF^0 [below 0.375] y=x H[0, y]^4
                  ome_x<double>({
                    -1.48148148148148148148148148148
                  },1)
                },0)
              ),
              // polAQqPSs_reg as^3 LM^1 NF^0 [0.375,0.625]
              make_ome_genps(
                std::function<double(double)>(f_half<double>),
                // polAQqPSs_reg as^3 LM^1 NF^0 [0.375,0.625] y=1/2-x
                ome_logx<double>({
                  // polAQqPSs_reg as^3 LM^1 NF^0 [0.375,0.625] y=1/2-x H[0, y]^0
                  ome_x<double>({
                    5.97167865501658426203413637398,-0.866332950812028347836366825371,-16.5404253716024280105424222782,
                    76.2442850654734723166491837171,276.267783695431849938641885955,645.357270149509591914505462045,
                    1329.98220808277402744158334173,2639.15871035257343065743639066,5113.96304321149956937763185833,
                    9867.73730888121782566255821831,18910.6178240172481022865608153,36307.1418100032129592811023438,
                    69545.3296055140826400609605507,133613.368344545639054803819471,256493.123585674112106365910143,
                    493876.04201893160207509833775,950714.24537093867646394962157,1.83521356312448046523529037536e6,
                    3.54250028029210824816172673456e6,6.85496940447659754575408051184e6,1.32655310700400716882405876411e7,
                    2.57271898255236776622912199152e7,4.9899337549428127508347180424e7,9.69700223840191464212034089841e7,
                    1.88458208649326521151017424187e8,3.66893692801973879426333826421e8,7.14324850017412160841054668731e8,
                    1.39290050803037284920011421579e9,2.71624259201152101247414155946e9,5.30418626910301818452638064196e9,
                    1.03582546523265476412006617978e10,2.02534416691029445476759849112e10,3.96024890955966763018903170567e10,
                    7.75249172798124660896999475822e10,1.51762998974318882928927338814e11,2.97401457916131073759544790056e11,
                    5.82802021398293913078415168699e11,1.14317992201270319733014817961e12,2.2423558217378761041241609992e12,
                    4.40228006267324698648751879596e12,8.642580576793286565016000303e12,1.69810257340028856500841471747e13,
                    3.33636680748670281325213192369e13,6.56014118804436159253061440951e13,1.28984996640661942923324361251e14,
                    2.53788734933256846232103671605e14,4.9933238779520219072017531101e14,9.83092251464426020625197223059e14,
                    1.93544596435879465253991040936e15,3.8127386642933701496283191629e15,7.51058149882648394779651790761e15
                  },0)
                },0)
              ),
              // polAQqPSs_reg as^3 LM^1 NF^0 [above 0.625]
              make_ome_genps(
                std::function<double(double)>(f_omx<double>),
                // polAQqPSs_reg as^3 LM^1 NF^0 [above 0.625] y=1-x
                ome_logx<double>({
                  // polAQqPSs_reg as^3 LM^1 NF^0 [above 0.625] y=1-x H[0, y]^0
                  ome_x<double>({
                    17.1982417826193716392644044439,-1.28830281642867943531035703685,-11.7302455654895319965313027982,
                    -6.64164971283074783443167983529,-0.234261513522163200620216153037,4.12677856377847172443109278027,
                    6.84245060383275352374022225162,8.48836396400601660092626888182,9.46171318749630889643990843628,
                    10.0112746200070862138732514548,10.291000251818511390382511441,10.3971086192561378984988555893,
                    10.3907079726067588893225185212,10.3112721204037344332891755816,10.1847074979802481969129400802,
                    10.0282538550329881001003982987,9.85351529081597009669396753232,9.66837014033340692722045252895,
                    9.47819645976403545482718449793,9.28667199405799103583342799467,9.09630479140163523970961701752,
                    8.90879036545888192491505548004,8.72525534016550191498500708076,8.54642567134114021917033142352,
                    8.37274404880111292436779845457,8.20445261148876834688371188766,8.04165170455697499815922010929,
                    7.88434190866316785353946175068,7.7324542743095007366547093643,7.58587216528177807896777055853,
                    7.4444470852030770967519120583,7.30801015907464187572296356643,7.17638045780300668252017193833,
                    7.04937101684743951405978165042,6.92679316336853605477048823354,6.80845959839143708785036112463,
                    6.69418656049358850889055256637,6.58379531108591527945685828764,6.47711311865215415617449822103,
                    6.37397387353015691312246755023,6.2742184311944464184003004608,6.17769475716866197293459230185,
                    6.0842579282692297885265605758,5.99377003114556436583452822478,5.90609998880264849276387250775,
                    5.82112333807269458171262936007,5.73872197518916285147148482252,5.65878388222784285986420185307,
                    5.58120284386084073153805442854,5.50587816135651117818293383542
                  },1),
                  // polAQqPSs_reg as^3 LM^1 NF^0 [above 0.625] y=1-x H[0, y]^1
                  ome_x<double>({
                    -2.57660563285735887062071407371,0,9.74775743317467517909579358012,9.74775743317467517909579358012,
                    7.3655742824498002537788068147,4.98339113172492532846182004928,3.01206659688843641540352098757,
                    1.45160067794033351460390962955,0.226756209916267752179777295637,-0.737703972148109745752084693775,
                    -1.50248778116174114744981549084,-2.11377387797816191554648472027,-2.60612991400894410109093513389,
                    -3.00543077383713963758862526515,-3.33117320103409844832952167979,-3.59818680717966136700304082241,
                    -3.81786917125877430703149166465,-3.99907273660757011505347035997,-4.14874370690599620482356525215,
                    -4.27238563703809772862963772548,-4.37439891928677242095394390322,-4.45833188029719434351945409564,
                    -4.52706840048302306102872575613,-4.58296951601283577178040610824,-4.62798133198732335533323516738,
                    -4.6637180285225751883091792325,-4.69152627378772800954805650236,-4.71253562731651608283742329632,
                    -4.72769829225508017627673522853,-4.73782070065893489879445877733,-4.74358878563556127236396511862,
                    -4.74558833568879621590345887896,-4.74432149022046695154897604087,-4.74022018617044376315891000918,
                    -4.73365717998111213090061077057,-4.72495512932308342524681619365,-4.71439411310572357837709612554,
                    -4.70221788744409679663984473076,-4.68863911310579647655147603474,-4.673843741874402424251703822,
                    -4.65799471182495358810096517557,-4.64123507217883759011117721622,-4.62369063530083325579185796313,
                    -4.60547223509930798822415026551,-4.58667765651737848847018422103,-4.56739328914044625623239454753,
                    -4.54769554856778541281427152326,-4.52765210162061545674002729924,-4.50732292531297372802711579957,
                    -4.48676122450407549470909258651
                  },1)
                },0)
              )
            }
          )
        },0)
      },0)
    },3);


  const rpd_distribution<ome_as_view<double>, ome_as_plus_view<double>, ome_as_const_view<double>> polAQqPSs{
    polAQqPSs_reg.get_view(),
    std::nullopt,
    std::nullopt
  };
}


/* C interface */

double ome_polAQqPSs_reg(double as, double LM, double NF, double x)
{
  return(ome::polAQqPSs_reg(as, LM, NF, x));
}

double ome_polAQqPSs_reg_trunc_as(int trunc_order, double as, double LM, double NF, double x)
{
  auto trunc = ome::polAQqPSs_reg.truncate(trunc_order);
  return(trunc(as, LM, NF, x));
}

double ome_polAQqPSs_reg_coeff_as(int order_as, double LM, double NF, double x)
{
  auto& coeff = ome::polAQqPSs_reg[order_as];
  return(coeff(LM, NF, x));
}

double ome_polAQqPSs_reg_coeff_as_LM(int order_as, int order_LM, double NF, double x)
{
  auto& coeff = ome::polAQqPSs_reg[order_as][order_LM];
  return(coeff(NF, x));
}

double ome_polAQqPSs_reg_coeff_as_LM_NF(int order_as, int order_LM, int order_NF, double x)
{
  auto& coeff = ome::polAQqPSs_reg[order_as][order_LM][order_NF];
  return(coeff(x));
}

int ome_polAQqPSs_reg_min_power()
{
  return(ome::polAQqPSs_reg.min_power());
}

int ome_polAQqPSs_reg_max_power()
{
  return(ome::polAQqPSs_reg.max_power());
}

int ome_polAQqPSs_reg_coeff_as_min_power(int order_as)
{
  return(ome::polAQqPSs_reg[order_as].min_power());
}

int ome_polAQqPSs_reg_coeff_as_max_power(int order_as)
{
  return(ome::polAQqPSs_reg[order_as].max_power());
}

int ome_polAQqPSs_reg_coeff_as_LM_min_power(int order_as, int order_LM)
{
  return(ome::polAQqPSs_reg[order_as][order_LM].min_power());
}

int ome_polAQqPSs_reg_coeff_as_LM_max_power(int order_as, int order_LM)
{
  return(ome::polAQqPSs_reg[order_as][order_LM].max_power());
}