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
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
/******************************************************************************
 * This file is part of libome                                                *
 * Copyright (C) 2025 Arnd Behring, Kay Schoenwald                            *
 * SPDX-License-Identifier: GPL-3.0-or-later                                  *
 ******************************************************************************/

#include <ome/AqqQPS.h>

namespace ome
{

  /**************** AqqQPS, regular part ****************/

  const ome_as<double> AqqQPS_reg = 
    // AqqQPS_reg
    ome_as<double>({
      // AqqQPS_reg as^3
      ome_logm<double>({
        // AqqQPS_reg as^3 LM^0
        ome_nf<double>({
          // AqqQPS_reg as^3 LM^0 NF^1
          ome_piecewisex<double>(
            {0.375,0.625},
            {
              // AqqQPS_reg as^3 LM^0 NF^1 [below 0.375]
              make_ome_genps(
                std::function<double(double)>(f_id<double>),
                // AqqQPS_reg as^3 LM^0 NF^1 [below 0.375] y=x
                ome_logx<double>({
                  // AqqQPS_reg as^3 LM^0 NF^1 [below 0.375] y=x H[0, y]^0
                  ome_x<double>({
                    -6.81002777386535765764427952013,-156.636400933957211405970567604,152.50333970370028390392853293,
                    28.6589300650415336115710511218,-13.6076817558299039780521262003,-1.68161865569272976680384087791,
                    -0.548100228623685413808870598994,-0.264284172708864066888758246783,-0.15666854250448534723091106491,
                    -0.105478132412693715168849843531,-0.0773701051403982141892303670778,-0.0603063351231008600312060150499,
                    -0.0491392909021734775445744951021,-0.0413893511853800383418573275514,-0.0357508825046212537577675228151,
                    -0.031486908004132197026263392401,-0.0281573662054417210909328852694,-0.025486914153827663058515893477,
                    -0.0232962985837697168922694072391,-0.0214647569764599480591203538973,-0.0199084592718385373341309346286,
                    -0.0185676535894720028178559392755,-0.017398735829094519690521585312,-0.0163692076226323362623426597493,
                    -0.0154543836116975135817803281096,-0.0146351887508185057149686377645,-0.0138966523632676279804346497425,
                    -0.013226857950456672066978136331,-0.0126161974300722391513172874548,-0.012056832659230397471372643446,
                    -0.0115423006067637962563451744459,-0.011067219707120125422140803232,-0.010627068565179413816315492139,
                    -0.0102180171259637972155876282192,-0.00983679638889046166932029131545,
                    -0.00948059678720775645506470014621,-0.0091469881303593025368970403817,
                    -0.00883385594150834618935026101694,-0.00853935038717039126429909039013,
                    -0.00826184497019644806970254469869,-0.0079999028607604835607638272473,
                    -0.0077522492532508749500382440217,-0.00751774851522427398999104721539,
                    -0.00729538517600883312973029434361,-0.00708424801382031598788780307934,
                    -0.00688351666022585106175356774753,-0.00669245026290184036640859878002,
                    -0.00651037784156772207718566354452,-0.00633669004477136348942297467506,
                    -0.00617083207201025719558071032547,-0.00601229757030392534277055391481,
                    -0.00586062334962236368506943773472
                  },-1),
                  // AqqQPS_reg as^3 LM^0 NF^1 [below 0.375] y=x H[0, y]^1
                  ome_x<double>({
                    -112.397030680432078385634770251,-78.4217220384567697436594616087,28.971193415637860082304526749
                  },0),
                  // AqqQPS_reg as^3 LM^0 NF^1 [below 0.375] y=x H[0, y]^2
                  ome_x<double>({
                    -25.7591852777966190428317330699,-25.7591852777966190428317330699
                  },0),
                  // AqqQPS_reg as^3 LM^0 NF^1 [below 0.375] y=x H[0, y]^3
                  ome_x<double>({
                    -1.90946502057613168724279835391,-1.90946502057613168724279835391
                  },0),
                  // AqqQPS_reg as^3 LM^0 NF^1 [below 0.375] y=x H[0, y]^4
                  ome_x<double>({
                    -0.0987654320987654320987654320988,-0.0987654320987654320987654320988
                  },0)
                },0)
              ),
              // AqqQPS_reg as^3 LM^0 NF^1 [0.375,0.625]
              make_ome_genps(
                std::function<double(double)>(f_half<double>),
                // AqqQPS_reg as^3 LM^0 NF^1 [0.375,0.625] y=1/2-x
                ome_logx<double>({
                  // AqqQPS_reg as^3 LM^0 NF^1 [0.375,0.625] y=1/2-x H[0, y]^0
                  ome_x<double>({
                    -6.24747032520919242268318732135,-30.1571537525676886652829781079,-45.6612008457820215516947336498,
                    -84.2079603967264070903611482826,-212.193017438341298128118019261,-436.08552129620284125779924057,
                    -929.950482797630643338745686716,-1891.22892029519161788703545051,-3879.93852163887496955354017672,
                    -7790.98465262981338382047626487,-15765.9128821363632882596612542,-31499.430642571152258995688923,
                    -63373.4146863193263139235883275,-126366.171316536659573168876495,-253525.951435625378627893447069,
                    -505158.789486239679579183472835,-1.01200665412541815194699171591e6,-2.01607097250764022874115027814e6,
                    -4.03558736903394042803968165899e6,-8.03991605887276762761289441217e6,-1.60859387433404169247674339948e7,
                    -3.20523647465500742312771275997e7,-6.4110902067915332972137866639e7,-1.2777126508864710206307098135e8,
                    -2.55523232666335412314744229675e8,-5.09359643221406920645232203693e8,-1.01853613434393815149073986254e9,
                    -2.03077594793434456456662595118e9,-4.06056858226684256135502672701e9,-8.09765654394243035006335809866e9,
                    -1.61908136325771007178839639231e10,-3.22940347930770961653971198208e10,
                    -6.45689225514018826118578809969e10,-1.28810757115162602093754647215e11,
                    -2.57543199798831866726606573243e11,-5.13863254359696212595273250005e11,
                    -1.02741373413402544475191612125e12,-2.05024601872840890179380522343e12,
                    -4.09926173216459884639762360289e12,-8.18133305316715609518720740528e12,
                    -1.63578752358571039998547545495e13,-3.26511337771206053736327639252e13,
                    -6.52837388413096721024887877223e13,-1.3032415870349918648919748961e14,
                    -2.60576993218614401636637554231e14,-5.20236148723401775852566096879e14,
                    -1.04019862824244749343232321166e15,-2.07692914344391873309092768174e15,
                    -4.15281053300562882448389144145e15,-8.29249505769969148681281261791e15,
                    -1.65809846147617869068630018786e16
                  },0)
                },0)
              ),
              // AqqQPS_reg as^3 LM^0 NF^1 [above 0.625]
              make_ome_genps(
                std::function<double(double)>(f_omx<double>),
                // AqqQPS_reg as^3 LM^0 NF^1 [above 0.625] y=1-x
                ome_logx<double>({
                  // AqqQPS_reg as^3 LM^0 NF^1 [above 0.625] y=1-x H[0, y]^0
                  ome_x<double>({
                    -26.1774796781356437576365018212,0,-7.29682124192165198808917671829,-5.25361136537844211154596684175,
                    -5.50442996095964395422164173098,-5.97777804899626417824162389046,-6.39606169065206526645598066234,
                    -6.72593142862501999998186202244,-6.97877745898467849087568223825,-7.17152893345470565538844477226,
                    -7.31871708296252968116859505914,-7.43150177136883700876030306935,-7.51818801889422330228131633815,
                    -7.58491971148981556734660000442,-7.63625980751154092558874797888,-7.6756240678822271075333431121,
                    -7.70559366216104331805357424774,-7.72813821978998293236390140185,-7.74477515715515817685441733963,
                    -7.75668419375006939671196078316,-7.76479036657390678354564565346,-7.7698247841161272704412244592,
                    -7.77236952664085964388780165309,-7.77289115289110285158521033224,-7.77176594023205494244613584919,
                    -7.76929906935003566113542340397,-7.76573933135994523389488301711,-7.76129049383857622961415566057,
                    -7.75612015202814502970280279238,-7.75036667134285636496167256874,-7.74414466973995924854150557166,
                    -7.73754937470518091845747247302,-7.73066010668092383526744591295,-7.72354307984104087175773117249,
                    -7.71625366599039841920720081395,-7.70883823368414492366439359559,-7.70133564933235907341546032744,
                    -7.69377850787331173648993549725,-7.68619414597271398243752016924,-7.67860547948246002060874780483,
                    -7.67103169822595339852033546122,-7.66348884444589920506360917244,-7.65599029599285124267946649815,
                    -7.64854717120410033836457359647,-7.64116866916359936459184150706,-7.63386235644863447689033719085,
                    -7.626634409408858867204633286,-7.61948981937412275203444853116,-7.61243256686160062121468639416,
                    -7.60546576978226482859530192706
                  },1),
                  // AqqQPS_reg as^3 LM^0 NF^1 [above 0.625] y=1-x H[0, y]^1
                  ome_x<double>({
                    -20.8065843621399176954732510288,0,-13.6625514403292181069958847737,-12.8477366255144032921810699588,
                    -13.2360493827160493827160493827,-13.76,-14.2198725839542166072778317676,
                    -14.5946198514679240302823069263,-14.8961552702166066853505615018,-15.139858728188730148361737623,
                    -15.3387391484831104694966983072,-15.5028384605358772231929004076,-15.6397248040740097907368749853,
                    -15.75509096293763803706038923,-15.8532469758126124099950391237,-15.9374880981776483394207234153,
                    -16.01036134482461893563882317,-16.0738572149198705648512582673,-16.1295480128851682429917611449,
                    -16.1786883923356923040592479673,-16.2222891392285057145051277507,-16.2611718770704141383404664074,
                    -16.2960100525011786458362978142,-16.3273599580882881749090055985,-16.3556844471719975195852397368,
                    -16.3813712340671803189415905233,-16.4047471429332454881422977204,-16.4260892966114416079833038538,
                    -16.445633973196888114522068017,-16.4635836696610035155688119509,-16.4801127758073743961957415617,
                    -16.4953721627419478001802172294,-16.5094929171929131199921665185,-16.5225893990068683840256315302,
                    -16.5347617587721951660356580045,-16.5460980220964332059992396617,-16.5566758239645656821414436,
                    -16.5665638589387314829965525899,-16.5758230993550987419115804381,-16.5845078231272032402881854102,
                    -16.5926664845376882078753783924,-16.6003424549433122142637834324,-16.6075746552211038727855513851,
                    -16.6143980977379148344982039615,-16.6208443523975078626307008491,-16.6269419487304757262371946668,
                    -16.6327167239060519710621578523,-16.6381921248558520093577526019,-16.6433894713260459765528402432,
                    -16.6483281855527034233483834012
                  },1),
                  // AqqQPS_reg as^3 LM^0 NF^1 [above 0.625] y=1-x H[0, y]^2
                  ome_x<double>({
                    -4.93827160493827160493827160494,0,-1.48148148148148148148148148148,-1.03703703703703703703703703704,
                    -1.08477366255144032921810699588,-1.17201646090534979423868312757,-1.24740068867052994037121021248,
                    -1.30634080792810951541110271269,-1.35147298974459468286628780456,-1.38599777908419883728525703834,
                    -1.4125299167723410147652571895,-1.43303420609817916215222612529,-1.44895733157841419949682057944,
                    -1.46136437613849091260568672046,-1.47104529411407718286025164332,-1.47859195674010488825303640118,
                    -1.48445269363185549267825315499,-1.48897080234599991958272961306,-1.49241188797331763392713267687,
                    -1.49498344851412763711570584273,-1.49684905288423888846514036941,-1.49813871680749213261420696229,
                    -1.49895657860178436847643738017,-1.49938663710128585668560554811,-1.49949708391137624921145957325,
                    -1.49934360536726639536947489266,-1.4989719217125069805247827055,-1.49841975611399750615945988446,
                    -1.49771837359141315958391736431,-1.49689379271381785578862257696,-1.49596774628042394687012102064,
                    -1.49495844796107746577595946556,-1.49388120784417812103361297656,-1.49274892952246712680657134188,
                    -1.49157251369492566400961143106,-1.49036118754185456144006578931,-1.48912277481999374902215365165,
                    -1.48786391835362890270140378029,-1.48659026409818111817130256537,-1.48530661403019907146687726473,
                    -1.48401705362951153636062862592,-1.48272505856047677524014267784,-1.48143358425173235888125501995,
                    -1.48014514135923017471426411056,-1.47886185953169401356410565861,-1.47758554144767511779769268723,
                    -1.47631770873373947311904965666,-1.47505964108455949582920935675,-1.47381240967282104072263007829,
                    -1.47257690574828836788376340328
                  },1),
                  // AqqQPS_reg as^3 LM^0 NF^1 [above 0.625] y=1-x H[0, y]^3
                  ome_x<double>({
                    -0.987654320987654320987654320988,0,-0.987654320987654320987654320988,-0.987654320987654320987654320988,
                    -1.02057613168724279835390946502,-1.05349794238683127572016460905,-1.08171663727219282774838330394,
                    -1.10523221634332745443856554968,-1.12482853223593964334705075446,-1.14128943758573388203017832647,
                    -1.1552562663673774784885895997,-1.16722783389450056116722783389,-1.17758784425451092117758784425,
                    -1.18663229774340885451996563108,-1.19459141681363903586125808348,-1.2016460905349794238683127572,
                    -1.20793996610990075042362624062,-1.21358831598483014605018962317,-1.21868457151108223232979568262,
                    -1.22330517652155079055663850985,-1.22751322751322751322751322751,-1.23136123136123136123136123136,
                    -1.23489321556954407195953089673,-1.23814635891930577920916085167,-1.24115226337448559670781893004,
                    -1.24393795504906616017727128838,-1.24652667862544405754282297492,-1.24893853288915017310079038474,
                    -1.25119098299174927527417948874,-1.25329927628778203490847169008,-1.25527678215850258861011549184,
                    -1.25713527147218903491304924997,-1.25888514777403666292555181444,-1.26053563962060694086837877688,
                    -1.26209496144136667012484005948,-1.26357044875563394081912600431,-1.2649686723760797834871908946,
                    -1.26629553530138325459962886863,-1.26755635527565352126755635528,-1.26875593542260208926875593542,
                    -1.26989862491217504767640268995,-1.27098837125937396940106967207,-1.27202876556881724840381171131,
                    -1.27302308180861152437379827561,-1.27397431101134804838508542212,-1.27488519114928132641498180951,
                    -1.27575823330782730515488250096,-1.27659574468085106382978723404,-1.27739984882842025699168556311,
                    -1.27817250356932896615436297976
                  },1)
                },0)
              )
            }
          )
        },1),
        // AqqQPS_reg as^3 LM^1
        ome_nf<double>({
          // AqqQPS_reg as^3 LM^1 NF^1
          ome_piecewisex<double>(
            {0.375,0.625},
            {
              // AqqQPS_reg as^3 LM^1 NF^1 [below 0.375]
              make_ome_genps(
                std::function<double(double)>(f_id<double>),
                // AqqQPS_reg as^3 LM^1 NF^1 [below 0.375] y=x
                ome_logx<double>({
                  // AqqQPS_reg as^3 LM^1 NF^1 [below 0.375] y=x H[0, y]^0
                  ome_x<double>({
                    -17.9094650205761316872427983539,-100.071054701891026980680842666,126.385291532789921844210790321,
                    1.50587691365561197379606808211,-8.69135802469135802469135802469,-1.35802469135802469135802469136,
                    -0.426469135802469135802469135802,-0.170666666666666666666666666667,-0.0729424468199978404060036713098,
                    -0.0285240374809535807268233572088,-0.00622568734855624920292762738383,
                    0.00561099135584732292551222592375,0.0120455296082272921370972590236,0.0155148700113499623753679462281,
                    0.017285660691257943009040913985,0.018055162994358922565839783746,0.0182245098782106747686141836965,
                    0.0180324862771952719042666132613,0.0176250140976911474935110892121,0.0170930286548630088361329655318,
                    0.016493969417740892716136650116,0.0158643908317849354848517853587,0.0152275761794473669385642065254,
                    0.0145982473232131976302400743019,0.0139855389371624278548950860108,0.0133949101479764590781198198897,
                    0.0128293916725293059933102603368,0.0122904096258848012712322706284,0.0117783352266546671657238165876,
                    0.0112928544846556764788676659765,0.0108332181919159731379953441197,0.0103984114740283623834599959703,
                    0.00998726879412211642127346916631,0.00959855169162187922908139726563,0.00923100091372240516417089344353,
                    0.00888337087731452705188678714441,0.0085544519102240902166057347532,0.00824308403831518382949050373484,
                    0.00794816493728367370178653300687,0.00766865387840606399956914617137,0.00740357295029859187177445377881,
                    0.00715200645700936825897089765092,0.00691309912496186428956380427415,0.00668605356249255362497802775423,
                    0.00647012728214545725400024053125,0.00626462950109237759128051144639,0.00606891786765725384009943691172,
                    0.00588239521398625249921286074196,0.00570450640083413467446934633592,0.00553473529628206720505974985881,
                    0.00537260191315552296291220941136,0.00521765971796946921377227746854
                  },-1),
                  // AqqQPS_reg as^3 LM^1 NF^1 [below 0.375] y=x H[0, y]^1
                  ome_x<double>({
                    -86.6044943828290969730397811355,-48.6785684569031710471138552096,30.024691358024691358024691358
                  },0),
                  // AqqQPS_reg as^3 LM^1 NF^1 [below 0.375] y=x H[0, y]^2
                  ome_x<double>({
                    -17.1851851851851851851851851852,-17.1851851851851851851851851852
                  },0),
                  // AqqQPS_reg as^3 LM^1 NF^1 [below 0.375] y=x H[0, y]^3
                  ome_x<double>({
                    -1.18518518518518518518518518519,-1.18518518518518518518518518519
                  },0)
                },0)
              ),
              // AqqQPS_reg as^3 LM^1 NF^1 [0.375,0.625]
              make_ome_genps(
                std::function<double(double)>(f_half<double>),
                // AqqQPS_reg as^3 LM^1 NF^1 [0.375,0.625] y=1/2-x
                ome_logx<double>({
                  // AqqQPS_reg as^3 LM^1 NF^1 [0.375,0.625] y=1/2-x H[0, y]^0
                  ome_x<double>({
                    -13.6043162587452571624619020615,-56.6957332301047229907588894319,-119.277730193033204490515366122,
                    -242.763729245109902501199934696,-519.145878944429553956056368318,-1063.52753134994254314054582182,
                    -2176.05459865756976271790866566,-4422.47401093137722994606773717,-8919.18141294381018557793295193,
                    -17996.9970447643342868287073975,-36112.8136974449867600728487554,-72613.9195054758016417483323964,
                    -145407.63410137281039230715752,-291841.320048398726722570099811,-583865.082551273178480580317092,
                    -1.17060982604637946725255070825e6,-2.34092296886064944686637063946e6,-4.69031832727519882025091238387e6,
                    -9.37746119965265788158284047741e6,-1.87808035358184297410877094022e7,-3.75451961028521537443836051339e7,
                    -7.51718969244932450868049814057e7,-1.5027217286835756033325885585e8,-3.00807539625839736718424846356e8,
                    -6.01323579145880392813536658181e8,-1.2035150636292967057139254537e9,-2.40588443694290955413749762291e9,
                    -4.814682069541849889218840164e9,-9.624946819757841679965508565e9,-1.92598213643922152396727277499e10,
                    -3.85027985049014543539781218922e10,-7.70398744512618249986728293958e10,
                    -1.54015931282743112404918182381e11,-3.08151565520632174972633891901e11,
                    -6.1606223900242162282541094367e11,-1.2325466849932188431047574181e12,
                    -2.46418588083949948278900123336e12,-4.92987406113016832997638225036e12,
                    -9.85633245560455272811722837219e12,-1.97180521311825033487645112606e13,
                    -3.94232502974506063916531199055e13,-7.88659533595275611243218635602e13,
                    -1.57683519242709726920420529976e14,-3.15437717514694380708166517447e14,
                    -6.30693171379755703685341766627e14,-1.26164458081133539568886814001e15,
                    -2.52260204793719865132949380188e15,-5.04615237096391642669872030302e15,
                    -1.00897118951553837471333594368e16,-2.01829218503586643094724894681e16,
                    -4.03560492293980821007469679166e16
                  },0)
                },0)
              ),
              // AqqQPS_reg as^3 LM^1 NF^1 [above 0.625]
              make_ome_genps(
                std::function<double(double)>(f_omx<double>),
                // AqqQPS_reg as^3 LM^1 NF^1 [above 0.625] y=1-x
                ome_logx<double>({
                  // AqqQPS_reg as^3 LM^1 NF^1 [above 0.625] y=1-x H[0, y]^0
                  ome_x<double>({
                    -25.6790123456790123456790123457,0,-16.,-14.3703703703703703703703703704,-14.657382716049382716049382716,
                    -15.2156707818930041152263374486,-15.718747915391906321611537031,-16.1245195503245389866705059449,
                    -16.4443667746019303926417389086,-16.6966035167610711408477428466,-16.8970985921704069997975867639,
                    -17.0580836454837650050966476404,-17.1886932994810492431579796257,-17.2957157636464654233210463305,
                    -17.3842217221793694703500946641,-17.4580338500463498921830713496,-17.5200647951047503154260634517,
                    -17.5725582095464397381889384643,-17.617260974456479534661652454,-17.6555471271233420337112296208,
                    -17.6885078695598235419366497825,-17.7170176141414078244802029583,-17.74178295499840174777068994,
                    -17.7633793550457987516511223038,-17.7822789051002990946905467936,-17.7988715285940225936237383402,
                    -17.813481326642630421449735504,-17.8263792855159973402007448495,-17.8377932362911800617384417869,
                    -17.8479157206885378727842444391,-17.8569102481901020829730850855,-17.8649163074156073651347247781,
                    -17.872053405630010263439113689,-17.8784243446791877990849938072,-17.8841178929815728892025368252,
                    -17.889210976792601933253632621,-17.8937704865090811011369692272,-17.8978547729344155038429743463,
                    -17.9015148924833683545461958861,-17.9047956480313505557671575597,-17.9077364626035275511501334464,
                    -17.9103721156858300517894847467,-17.9127333661273366353760076561,-17.9148474810204443488177382318,
                    -17.916738686312374116589530153,-17.918428552007161814949770285,-17.9199363224999662566039853582,
                    -17.9212792007215262136290634071,-17.9224725932644975498732647459,-17.9235303224412285187296451697
                  },1),
                  // AqqQPS_reg as^3 LM^1 NF^1 [above 0.625] y=1-x H[0, y]^1
                  ome_x<double>({
                    -11.8518518518518518518518518519,0,-2.37037037037037037037037037037,-0.592592592592592592592592592593,
                    -0.564938271604938271604938271605,-0.695308641975308641975308641975,-0.811892164273116654069035021416,
                    -0.896346686822877299067775258251,-0.95339996080736821477562218303,-0.990037233000195963158926121889,
                    -1.01198147905218612289319360026,-1.0234368699015163661628308093,-1.02740513680684620855561026501,
                    -1.02602073005003407933810864214,-1.02080842144334207826271318335,-1.01286581731026175470619915064,
                    -1.00298963286275858363516956366,-0.991762773231439129170770847049,-0.979614698818797817584774657539,
                    -0.966863640801322984076048367324,-0.953746426664014751881477519101,-0.940439775666880863026306849769,
                    -0.92707566225920302837472686572,-0.913752510261295846965792986187,-0.900543425647172225895248284982,
                    -0.887502304157902626827250012204,-0.874668398819246107946554691302,-0.862069760960833167889281856749,
                    -0.849725850043129793008819207836,-0.837649525157163008759018993229,-0.825848573030461209389957540317,
                    -0.814326886129606416161141073148,-0.80308537486798071320994563702,-0.792122676523188675621919577009,
                    -0.781435707852375296947949889506,-0.771020096910059375600824845269,-0.760870521065280955469272460866,
                    -0.75098097186705509188899268664,-0.741344962639222968317749072937,-0.731955691081911792759744566264,
                    -0.722806166416492744614877647134,-0.713889308515474776999518557973,-0.70519802484789828349086110594,
                    -0.69672526982621172376778270352,-0.688464090174478437252600467444,-0.680407659184426364366307756464,
                    -0.672549302135980967151546287958,-0.664882514695219424176871095248,-0.65740097573681563420565752977,
                    -0.650098555748369302004856882156
                  },1),
                  // AqqQPS_reg as^3 LM^1 NF^1 [above 0.625] y=1-x H[0, y]^2
                  ome_x<double>({
                    -3.55555555555555555555555555556,0,-3.55555555555555555555555555556,-3.55555555555555555555555555556,
                    -3.67407407407407407407407407407,-3.79259259259259259259259259259,-3.89417989417989417989417989418,
                    -3.97883597883597883597883597884,-4.04938271604938271604938271605,-4.10864197530864197530864197531,
                    -4.15892255892255892255892255892,-4.20202020202020202020202020202,-4.23931623931623931623931623932,
                    -4.27187627187627187627187627188,-4.30052910052910052910052910053,-4.32592592592592592592592592593,
                    -4.34858387799564270152505446623,-4.36891793754538852578068264343,-4.38726445743989603638726445744,
                    -4.40389863547758284600389863548,-4.41904761904761904761904761905,-4.4329004329004329004329004329,
                    -4.44561557605035865905431122822,-4.45732689210950080515297906602,-4.46814814814814814814814814815,
                    -4.47817663817663817663817663818,-4.48749604305159860715416270972,-4.49617871840094062316284538507,
                    -4.50428753877029739098704615946,-4.51187739463601532567049808429,-4.51899641577060931899641577061,
                    -4.52568697729988052568697729988,-4.53198653198653198653198653199,-4.53792830263418498712616359675,
                    -4.54354186118892001244942421413,-4.54885361552028218694885361552,-4.55388722055388722055388722055,
                    -4.55866392708497971655866392708,-4.56320287899235267656320287899,-4.56752136752136752136752136752,
                    -4.57163504968383017163504968383,-4.57555813653374628984385081946,-4.5793035560477420942537221607,
                    -4.58288309451100148774567379219,-4.58630751964085297418630751964,-4.58958668813741277509393451422,
                    -4.59272963990817829855757700346,-4.59574468085106382978723404255,-4.59863945578231292517006802721,
                    -4.60142101284958427815570672714
                  },1)
                },0)
              )
            }
          )
        },1),
        // AqqQPS_reg as^3 LM^2
        ome_nf<double>({
          // AqqQPS_reg as^3 LM^2 NF^1
          ome_piecewisex<double>(
            {0.375,0.625},
            {
              // AqqQPS_reg as^3 LM^2 NF^1 [below 0.375]
              make_ome_genps(
                std::function<double(double)>(f_id<double>),
                // AqqQPS_reg as^3 LM^2 NF^1 [below 0.375] y=x
                ome_logx<double>({
                  // AqqQPS_reg as^3 LM^2 NF^1 [below 0.375] y=x H[0, y]^0
                  ome_x<double>({
                    -24.7343459568466472519519893332,26.2286170061163157110109736298,1.58024691358024691358024691358,
                    -1.58024691358024691358024691358,-0.483950617283950617283950617284,-0.239012345679012345679012345679,
                    -0.144479717813051146384479717813,-0.0975560594608213655832703451751,-0.0706307214243722180230116738053,
                    -0.0536547129139721732314324906917,-0.0422197281456540715799975059234,-0.0341298506955072611638268203925,
                    -0.028185506973385761264549143337,-0.023683818555613427408299203171,-0.0201896055375908855762335615815,
                    -0.0174211678973583735488497393259,-0.015189334993256561884012864405,-0.0133630939667079613254161504834,
                    -0.0118492937314308311967781672416,-0.0105801841044660856488326780845,
                    -0.00950550515339681236880375076743,-0.00858731725899645699144446011614,
                    -0.00779653525748010972930980459684,-0.00711055210682867210334701885369,
                    -0.00651157659349215744930930816249,-0.00598544944052190429002023204922,
                    -0.00552078635725359372083018806666,-0.00510834855880756482212639224352,
                    -0.00474057414194047817271478809317,-0.00441122491088203360693278843126,
                    -0.00411511719759709224376223468446,-0.00384791455969706594654266499925,
                    -0.00360596659157186385767724650833,-0.00338618246947267705130967738063,
                    -0.00318593092001920774071345529875,-0.00300296047645968006268989407343,
                    -0.0028353354466021755159632532804,-0.00268138414706034957865736012304,
                    -0.00253965678670161546389574972174,-0.00240889099472805701941293957772,
                    -0.00228798344594401340393901534088,-0.00217596637981329633124199850355,
                    -0.00207198807093533048328452371951,-0.00197529650811049112168026934398,
                    -0.00188522569279844574707754914364,-0.00180118408686530075682809628263,
                    -0.00172264483242718043500404915031,-0.00164913743952883163891879359498,
                    -0.00158024069497647847837688570171,-0.00151557659135766366500605484953,
                    -0.00145480511176503859291259965816
                  },0),
                  // AqqQPS_reg as^3 LM^2 NF^1 [below 0.375] y=x H[0, y]^1
                  ome_x<double>({
                    -15.4074074074074074074074074074,-8.2962962962962962962962962963,4.74074074074074074074074074074
                  },0),
                  // AqqQPS_reg as^3 LM^2 NF^1 [below 0.375] y=x H[0, y]^2
                  ome_x<double>({
                    -3.55555555555555555555555555556,-3.55555555555555555555555555556
                  },0)
                },0)
              ),
              // AqqQPS_reg as^3 LM^2 NF^1 [0.375,0.625]
              make_ome_genps(
                std::function<double(double)>(f_half<double>),
                // AqqQPS_reg as^3 LM^2 NF^1 [0.375,0.625] y=1/2-x
                ome_logx<double>({
                  // AqqQPS_reg as^3 LM^2 NF^1 [0.375,0.625] y=1/2-x H[0, y]^0
                  ome_x<double>({
                    -1.29273848016846738976737193701,-5.06410027248028099941434463459,-1.99375861722151856236232834667,
                    -1.90512131666432113380035374816,-14.6208965262911361239904078756,-23.7832837257667068626487808024,
                    -62.1343590168656212028550647373,-113.95932105392000300643267393,-249.058886575562193128743000821,
                    -464.518295986722683996799711401,-960.684743606294329746961335297,-1808.48445212029717888767869252,
                    -3656.09964994659490849474491446,-6930.98006178378904898844287067,-13860.2225630570221346975831217,
                    -26422.8740216179537709754452176,-52539.8911806159619248493154819,-100621.01678777346109311308941,
                    -199457.370717335837287316979024,-383444.563481207082288406436541,-758781.510366652305513550604693,
                    -1.46339407969936787974403208246e6,-2.89314230240124698833024045117e6,-5.59501139433162716955742198063e6,
                    -1.10562126169219386451824286164e7,-2.14318696844006109973214473757e7,-4.23434299025583751450404689445e7,
                    -8.22487511637368070438213892341e7,-1.62499772541552820782139640192e8,-3.16210796270183805216059906081e8,
                    -6.2480692061883533874448441503e8,-1.21775552853674249622194610964e9,-2.40660648073526828447531677293e9,
                    -4.69714599795366161220800547615e9,-9.28481734629161296587013382083e9,
                    -1.81448379162869871723426632088e10,-3.58754708932373884475132672624e10,
                    -7.01897295941348511461650767177e10,-1.38812677513317699834613544794e11,
                    -2.71865736684512640930001137274e11,-5.37803412676503547383017975306e11,
                    -1.0542843303877438538820592568e12,-2.0861261591055806080767082762e12,
                    -4.09306194832584327598264766372e12,-8.10109283448508798745673562288e12,
                    -1.59072087452531711312037695136e13,-3.14919462243769141436374899198e13,
                    -6.18821293577181519498688283485e13,-1.22540071752584363300771518214e14,
                    -2.40954550391423948722395485303e14,-4.772567970846171959483969683e14
                  },0)
                },0)
              ),
              // AqqQPS_reg as^3 LM^2 NF^1 [above 0.625]
              make_ome_genps(
                std::function<double(double)>(f_omx<double>),
                // AqqQPS_reg as^3 LM^2 NF^1 [above 0.625] y=1-x
                ome_logx<double>({
                  // AqqQPS_reg as^3 LM^2 NF^1 [above 0.625] y=1-x H[0, y]^0
                  ome_x<double>({
                    -5.92592592592592592592592592593,0,-1.18518518518518518518518518519,-0.296296296296296296296296296296,
                    -0.282469135802469135802469135802,-0.347654320987654320987654320988,-0.405946082136558327034517510708,
                    -0.448173343411438649533887629126,-0.476699980403684107387811091515,-0.495018616500097981579463060945,
                    -0.505990739526093061446596800132,-0.511718434950758183081415404648,-0.513702568403423104277805132506,
                    -0.513010365025017039669054321069,-0.510404210721671039131356591674,-0.506432908655130877353099575322,
                    -0.501494816431379291817584781829,-0.495881386615719564585385423525,-0.48980734940939890879238732877,
                    -0.483431820400661492038024183662,-0.47687321333200737594073875955,-0.470219887833440431513153424885,
                    -0.46353783112960151418736343286,-0.456876255130647923482896493094,-0.450271712823586112947624142491,
                    -0.443751152078951313413625006102,-0.437334199409623053973277345651,-0.431034880480416583944640928375,
                    -0.424862925021564896504409603918,-0.418824762578581504379509496615,-0.412924286515230604694978770159,
                    -0.407163443064803208080570536574,-0.40154268743399035660497281851,-0.396061338261594337810959788504,
                    -0.390717853926187648473974944753,-0.385510048455029687800412422635,-0.380435260532640477734636230433,
                    -0.37549048593352754594449634332,-0.370672481319611484158874536468,-0.365977845540955896379872283132,
                    -0.361403083208246372307438823567,-0.356944654257737388499759278986,-0.35259901242394914174543055297,
                    -0.34836263491310586188389135176,-0.344232045087239218626300233722,-0.340203829592213182183153878232,
                    -0.336274651067990483575773143979,-0.332441257347609712088435547624,-0.328700487868407817102828764885,
                    -0.325049277874184651002428441078
                  },1),
                  // AqqQPS_reg as^3 LM^2 NF^1 [above 0.625] y=1-x H[0, y]^1
                  ome_x<double>({
                    -3.55555555555555555555555555556,0,-3.55555555555555555555555555556,-3.55555555555555555555555555556,
                    -3.67407407407407407407407407407,-3.79259259259259259259259259259,-3.89417989417989417989417989418,
                    -3.97883597883597883597883597884,-4.04938271604938271604938271605,-4.10864197530864197530864197531,
                    -4.15892255892255892255892255892,-4.20202020202020202020202020202,-4.23931623931623931623931623932,
                    -4.27187627187627187627187627188,-4.30052910052910052910052910053,-4.32592592592592592592592592593,
                    -4.34858387799564270152505446623,-4.36891793754538852578068264343,-4.38726445743989603638726445744,
                    -4.40389863547758284600389863548,-4.41904761904761904761904761905,-4.4329004329004329004329004329,
                    -4.44561557605035865905431122822,-4.45732689210950080515297906602,-4.46814814814814814814814814815,
                    -4.47817663817663817663817663818,-4.48749604305159860715416270972,-4.49617871840094062316284538507,
                    -4.50428753877029739098704615946,-4.51187739463601532567049808429,-4.51899641577060931899641577061,
                    -4.52568697729988052568697729988,-4.53198653198653198653198653199,-4.53792830263418498712616359675,
                    -4.54354186118892001244942421413,-4.54885361552028218694885361552,-4.55388722055388722055388722055,
                    -4.55866392708497971655866392708,-4.56320287899235267656320287899,-4.56752136752136752136752136752,
                    -4.57163504968383017163504968383,-4.57555813653374628984385081946,-4.5793035560477420942537221607,
                    -4.58288309451100148774567379219,-4.58630751964085297418630751964,-4.58958668813741277509393451422,
                    -4.59272963990817829855757700346,-4.59574468085106382978723404255,-4.59863945578231292517006802721,
                    -4.60142101284958427815570672714
                  },1)
                },0)
              )
            }
          )
        },1),
        // AqqQPS_reg as^3 LM^3
        ome_nf<double>({
          // AqqQPS_reg as^3 LM^3 NF^1
          ome_piecewisex<double>(
            {0.375,0.625},
            {
              // AqqQPS_reg as^3 LM^3 NF^1 [below 0.375]
              make_ome_genps(
                std::function<double(double)>(f_id<double>),
                // AqqQPS_reg as^3 LM^3 NF^1 [below 0.375] y=x
                ome_logx<double>({
                  // AqqQPS_reg as^3 LM^3 NF^1 [below 0.375] y=x H[0, y]^0
                  ome_x<double>({
                    -1.58024691358024691358024691358,-1.18518518518518518518518518519,1.18518518518518518518518518519,
                    1.58024691358024691358024691358
                  },-1),
                  // AqqQPS_reg as^3 LM^3 NF^1 [below 0.375] y=x H[0, y]^1
                  ome_x<double>({
                    -2.37037037037037037037037037037,-2.37037037037037037037037037037
                  },0)
                },0)
              ),
              // AqqQPS_reg as^3 LM^3 NF^1 [0.375,0.625]
              make_ome_genps(
                std::function<double(double)>(f_half<double>),
                // AqqQPS_reg as^3 LM^3 NF^1 [0.375,0.625] y=1/2-x
                ome_logx<double>({
                  // AqqQPS_reg as^3 LM^3 NF^1 [0.375,0.625] y=1/2-x H[0, y]^0
                  ome_x<double>({
                    -0.893501382700441368985643815062,-3.61832418108036419022356255951,-8.69135802469135802469135802469,
                    -20.5432098765432098765432098765,-42.6666666666666666666666666667,-87.8617283950617283950617283951,
                    -179.516049382716049382716049383,-364.811287477954144620811287478,-738.652557319223985890652557319,
                    -1491.75308641975308641975308642,-3007.10452674897119341563786008,-6053.43748597081930415263748597,
                    -12173.0729517396184062850729517,-24459.3048433048433048433048433,-49114.2129968796635463302129969,
                    -98569.8426807760141093474426808,-197740.720987654320987654320988,-396547.532316630355846042120552,
                    -794998.797385620915032679738562,-1.59341763396144682694390296729e6,-3.19301271371020142949967511371e6,
                    -6.39723827019400352733686067019e6,-1.28149201577681577681577681578e7,-2.56672657020446005953252330064e7,
                    -5.14033005517981749865807836822e7,-1.02933398313086419753086419753e8,-2.06101327129040835707502374169e8,
                    -4.12637725335865780310224754669e8,-8.26084734670585929845189104448e8,-1.65367864446731131788603052971e9,
                    -3.31017828551656023839931885909e9,-6.62564130537060931899641577061e9,
                    -1.32612032839060135404221425727e10,-2.65410661411627384960718294052e10,
                    -5.31172927725020136000528157391e10,-1.06300952995586098142960888059e11,
                    -2.12727381952428924162257495591e11,-4.25692356388416861305750194639e11,
                    -8.51835255799062501097588816887e11,-1.70452604823813745189183785675e12,
                    -3.41067880433763190883190883191e12,-6.82445446582991050888286660644e12,
                    -1.3654811587965858132232115972e13,-2.73208864437786564948115335712e13,
                    -5.46632882889785704069114921828e13,-1.09367718223601691582491582492e14,
                    -2.18814184793783894936482376096e14,-4.37779242223866523954728703418e14,
                    -8.75847799872453631731021801944e14,-1.75225087542627574905517762661e15,
                    -3.50556836300919757174099269337e15
                  },0)
                },0)
              ),
              // AqqQPS_reg as^3 LM^3 NF^1 [above 0.625]
              make_ome_genps(
                std::function<double(double)>(f_omx<double>),
                // AqqQPS_reg as^3 LM^3 NF^1 [above 0.625] y=1-x
                ome_logx<double>({
                  // AqqQPS_reg as^3 LM^3 NF^1 [above 0.625] y=1-x H[0, y]^0
                  ome_x<double>({
                    -1.18518518518518518518518518519,0,-1.18518518518518518518518518519,-1.18518518518518518518518518519,
                    -1.22469135802469135802469135802,-1.26419753086419753086419753086,-1.29805996472663139329805996473,
                    -1.32627865961199294532627865961,-1.34979423868312757201646090535,-1.36954732510288065843621399177,
                    -1.38630751964085297418630751964,-1.40067340067340067340067340067,-1.41310541310541310541310541311,
                    -1.42395875729209062542395875729,-1.43350970017636684303350970018,-1.44197530864197530864197530864,
                    -1.44952795933188090050835148874,-1.45630597918179617526022754781,-1.46242148581329867879575481915,
                    -1.46796621182586094866796621183,-1.47301587301587301587301587302,-1.47763347763347763347763347763,
                    -1.48187185868345288635143707607,-1.48577563070316693505099302201,-1.48938271604938271604938271605,
                    -1.49272554605887939221272554606,-1.49583201435053286905138756991,-1.49872623946698020772094846169,
                    -1.50142917959009913032901538649,-1.5039591315453384418901660281,-1.5063321385902031063321385902,
                    -1.50856232576662684189565909996,-1.51066217732884399551066217733,-1.51264276754472832904205453225,
                    -1.51451395372964000414980807138,-1.51628453850676072898295120517,-1.51796240685129574018462907352,
                    -1.51955464236165990551955464236,-1.52106762633078422552106762633,-1.52250712250712250712250712251,
                    -1.52387834989461005721168322794,-1.52518604551124876328128360649,-1.52643451868258069808457405357,
                    -1.52762769817033382924855793073,-1.52876917321361765806210250655,-1.52986222937913759169797817141,
                    -1.53090987996939276618585900115,-1.53191489361702127659574468085,-1.53287981859410430839002267574,
                    -1.53380700428319475938523557571
                  },1)
                },0)
              )
            }
          )
        },1)
      },0)
    },3);


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


/* C interface */

double ome_AqqQPS_reg(double as, double LM, double NF, double x)
{
  return(ome::AqqQPS_reg(as, LM, NF, x));
}

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

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

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

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

int ome_AqqQPS_reg_min_power()
{
  return(ome::AqqQPS_reg.min_power());
}

int ome_AqqQPS_reg_max_power()
{
  return(ome::AqqQPS_reg.max_power());
}

int ome_AqqQPS_reg_coeff_as_min_power(int order_as)
{
  return(ome::AqqQPS_reg[order_as].min_power());
}

int ome_AqqQPS_reg_coeff_as_max_power(int order_as)
{
  return(ome::AqqQPS_reg[order_as].max_power());
}

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

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