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
/******************************************************************************
 * This file is part of libome                                                *
 * Copyright (C) 2025 Arnd Behring, Kay Schoenwald                            *
 * SPDX-License-Identifier: GPL-3.0-or-later                                  *
 ******************************************************************************/

#include <ome/polAqqQPS.h>

namespace ome
{

  /**************** polAqqQPS, regular part ****************/

  const ome_as<double> polAqqQPS_reg = 
    // polAqqQPS_reg
    ome_as<double>({
      // polAqqQPS_reg as^3
      ome_logm<double>({
        // polAqqQPS_reg as^3 LM^0
        ome_nf<double>({
          // polAqqQPS_reg as^3 LM^0 NF^1
          ome_piecewisex<double>(
            {0.375,0.625},
            {
              // polAqqQPS_reg as^3 LM^0 NF^1 [below 0.375]
              make_ome_genps(
                std::function<double(double)>(f_id<double>),
                // polAqqQPS_reg as^3 LM^0 NF^1 [below 0.375] y=x
                ome_logx<double>({
                  // polAqqQPS_reg as^3 LM^0 NF^1 [below 0.375] y=x H[0, y]^0
                  ome_x<double>({
                    -59.5325405721619346516871267249,63.4842715028133421413259356386,0,-1.53635116598079561042524005487,
                    -0.556241426611796982167352537723,-0.254488888888888888888888888889,-0.141557933241883859167809785094,
                    -0.0913093100401886350128080682736,-0.0657213622410415413330865225909,-0.0511979810552817716359859325871,
                    -0.0421802496554516063737219048909,-0.0361435935686874830375957348159,-0.031840229030605399126854884307,
                    -0.0286086000989507641863735376962,-0.0260763735925775512401501635872,-0.0240228183779660102111481252203,
                    -0.0223109171583065615987426687015,-0.0208520351207802549523850297365,-0.0195866564679758292688084927258,
                    -0.0184734418103870414236049638316,-0.0174827804301213098284462492088,-0.0165928634135440785202394725687,
                    -0.0157872189391397893380559593705,-0.0150531218818744193845939914761,-0.0143805409799185356071791412692,
                    -0.0137614250866298754146275063398,-0.0131892084442784113856195304692,-0.0126584605867284773071855783453,
                    -0.0121646337395533743509238049993,-0.0117038772318162445690553740528,-0.0112728988140198004308449495295,
                    -0.0108688593783282582723856828838,-0.0104892918536710762646346991321,-0.0101320378670737266919444954721,
                    -0.00979519765108774877602063000187,-0.00947708996223374342397424311147,
                    -0.00917621966271754993547028174922,-0.00889125123903264013163256125646,
                    -0.0086209869719847957575829431486,-0.00836434878955695174261601873939,
                    -0.0081203630645413798092775387275,-0.0078881477884937476037639040743,
                    -0.00766690167977260847275882710562,-0.00745589487832471323315991753721,
                    -0.00725446095194871245999533045823,-0.00706198999403261528243863425234,
                    -0.00687792263552144946566746963196,-0.0067017448272466606216819148161,
                    -0.00653298327501322009043577497412,-0.00637120143067117027071061078038,
                    -0.00621599595904242483873373067237
                  },0),
                  // polAqqQPS_reg as^3 LM^0 NF^1 [below 0.375] y=x H[0, y]^1
                  ome_x<double>({
                    -34.8789560506894011656814088682,-17.4962400013066851162986928189
                  },0),
                  // polAqqQPS_reg as^3 LM^0 NF^1 [below 0.375] y=x H[0, y]^2
                  ome_x<double>({
                    -13.3147408333521745983872886255,-13.3147408333521745983872886255
                  },0),
                  // polAqqQPS_reg as^3 LM^0 NF^1 [below 0.375] y=x H[0, y]^3
                  ome_x<double>({
                    -0.724279835390946502057613168724,-0.724279835390946502057613168724
                  },0),
                  // polAqqQPS_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)
              ),
              // polAqqQPS_reg as^3 LM^0 NF^1 [0.375,0.625]
              make_ome_genps(
                std::function<double(double)>(f_half<double>),
                // polAqqQPS_reg as^3 LM^0 NF^1 [0.375,0.625] y=1/2-x
                ome_logx<double>({
                  // polAqqQPS_reg as^3 LM^0 NF^1 [0.375,0.625] y=1/2-x H[0, y]^0
                  ome_x<double>({
                    -7.05659108738822702828902660646,-33.2622642791470939681773999605,-41.5526902869412416172381730543,
                    -40.9704648401949741829765888366,-92.7105653405587608463675428558,-173.005427739858918660651728072,
                    -345.366174332448675237225277427,-647.542527482790440942263164179,-1265.59643105200929744699663379,
                    -2381.47223487242545088320859568,-4640.95525984546136593536722836,-8777.00159880700697275726926217,
                    -17122.3878069211431452232422031,-32541.4198979754133120998888882,-63604.8458076181740217280865481,
                    -121411.071873061860468621640128,-237778.816027209370491894529366,-455599.494077962832305293441421,
                    -893898.708623769309941838708157,-1.71835952453680234565612291775e6,-3.3769002724815304120939846772e6,
                    -6.50981066060945317559381375162e6,-1.28110315059213915364827287137e7,-2.47570879927409891149469911678e7,
                    -4.87808507543196642985005365754e7,-9.4470920296441530386862822691e7,-1.86344058137751119135699439276e8,
                    -3.61566042649437398692442526726e8,-7.13865184846359149840589477245e8,-1.38745648410596912200047468834e9,
                    -2.74164547966028730405321082307e9,-5.33663707188627061223129954345e9,-1.0553156381126279825512546431e10,
                    -2.05695934994792122206321606929e10,-4.0703205355854750656151783787e10,
                    -7.94332188769476435370683492147e10,-1.57276429813410467919420191736e11,
                    -3.07268799363907505973612474626e11,-6.0871362297543958036882113527e11,
                    -1.19043757481155789432169306003e12,-2.35945766429782464389898892428e12,
                    -4.61856941501669096208088870779e12,-9.15808851777181905455603735495e12,
                    -1.79419326079919127170488728716e13,-3.55911143065900756976873782205e13,
                    -6.97824647049572529680888509568e13,-1.38477403449595981709667689257e14,
                    -2.71705513426159145693098453875e14,-5.39359423442424618028501718957e14,
                    -1.05898521056595353998284732953e15,-2.10283586012505200368065956145e15
                  },0)
                },0)
              ),
              // polAqqQPS_reg as^3 LM^0 NF^1 [above 0.625]
              make_ome_genps(
                std::function<double(double)>(f_omx<double>),
                // polAqqQPS_reg as^3 LM^0 NF^1 [above 0.625] y=1-x
                ome_logx<double>({
                  // polAqqQPS_reg as^3 LM^0 NF^1 [above 0.625] y=1-x H[0, y]^0
                  ome_x<double>({
                    -21.7001134229916108358258022327,0,-2.1328840030357181987576543998,-2.87979758328263177900456798005,
                    -3.14510177557165255172139513266,-3.22211515853282695955482036483,-3.21401911956858461593436208195,
                    -3.16517763125208176748565466474,-3.09684916834240082011979362655,-3.0199017870861934056222989778,
                    -2.94010966458262614646764836212,-2.86059512939835153488001135652,-2.7830389852454657911717053618,
                    -2.70831398316383666531539123277,-2.63683072332199064358016663339,-2.56873291897716236480231407793,
                    -2.50401051395720679462683793303,-2.44256649753728952604150209876,-2.38425689821574623080317645034,
                    -2.32891488910021777627554681118,-2.27636530965628876624307798955,-2.22643332520916034797696125332,
                    -2.17894946461777431274811868035,-2.13375240758526846508837668633,-2.09069037276068660564028237483,
                    -2.04962164067799808663999766328,-2.01041454932560729112489053458,-1.9729471770747412483416379945,
                    -1.93710684966675155480705724659,-1.90278955803966228045634262938,-1.8698993416179401164584161094,
                    -1.83834767088093128290422900006,-1.80805284953357976329005061274,-1.77893944786504568335564411646,
                    -1.75093777325016227990501151058,-1.72398338015772297331982168337,-1.69801661978064031225870310762,
                    -1.67298222803698089716006379744,-1.64882894990405637172008311917,-1.62550919763842664346471126285,
                    -1.60297874026853987582740926472,-1.58119642173430534180128340716,-1.56012390512962855313357596198,
                    -1.53972544064037934634753382779,-1.51996765493546765179558871191,-1.50081935994581855765485897838,
                    -1.48225137914433900843510431838,-1.46423638961283324105325737742,-1.44674877834537794510235179409,
                    -1.42976451138985447702780321474
                  },1),
                  // polAqqQPS_reg as^3 LM^0 NF^1 [above 0.625] y=1-x H[0, y]^1
                  ome_x<double>({
                    -17.6460905349794238683127572016,0,4.11522633744855967078189300412,4.23868312757201646090534979424,
                    3.88987654320987654320987654321,3.51868312757201646090534979424,3.19546965170547936987846284898,
                    2.92438577547421084836050822445,2.69757764132935600699661056314,2.50638335163359658754524519761,
                    2.34355095364986483968512041449,2.20340220489670740131091601544,2.08156436461220629252660532555,
                    1.97466776022767853484958927339,1.88009645188978965138138122708,1.79579931987167447180684971701,
                    1.72015075090854561721046631904,1.65184850206697761085590329998,1.58983857713306201967416557479,
                    1.53325956057432635972578334761,1.48140098544410613580328594759,1.43367188486192485161582884419,
                    1.38957679496664574039177734672,1.34869726150947122363939340877,1.31067745109608379014704869687,
                    1.27521285351780488026737716973,1.24204133403591943660077768216,1.2109359885775909867065293305,
                    1.18169939430019951176028856982,1.1541589491479417809500725158,1.1281630680580021160904625593,
                    1.10357805813412898506662418161,1.08028553581276886128619420345,1.05818027961706396026837585842,
                    1.0371684352365745443706717499,1.017166007325709515003007271,0.998097585982392467126668114698,
                    0.979895266370165577673166656483,0.962497728129904587531407985793,0.945849447644732024013604460431,
                    0.929900021285569300815997799464,0.914603581784117727657293822565,0.899918293088333156135458841523,
                    0.885805911630132039900716752185,0.872231404011924551486297318726,0.859162612802137942579319612501,
                    0.846569963501102172553826313433,0.83442620686053624902980503357,0.822706191661729705515367985595,
                    0.811386663818179131879153331464
                  },1),
                  // polAqqQPS_reg as^3 LM^0 NF^1 [above 0.625] y=1-x H[0, y]^2
                  ome_x<double>({
                    -4.34567901234567901234567901235,0,-0.55967078189300411522633744856,-0.707818930041152263374485596708,
                    -0.755555555555555555555555555556,-0.763786008230452674897119341564,-0.754514151339548164944990341816,
                    -0.737263794406651549508692365835,-0.716552354823959762231367169639,-0.694639754392840812593899013652,
                    -0.672687043596134505225414316323,-0.651290846577041863237149432436,-0.63074673559004043334527665012,
                    -0.611185748182085178422174759171,-0.592647971272309896648520987145,-0.575123408827112530816234519938,
                    -0.558575182133428961571983486632,-0.542952889007825143499456797761,-0.528200342406422909825666229346,
                    -0.514260035042176153468315762596,-0.501075668806761243736033652,-0.488593529484527031871328441631,
                    -0.47676316993494574994699759469,-0.465537680547015292753205866914,-0.454873716582694910868285481289,
                    -0.444731386310602894261529340275,-0.435074063740574934518662625306,-0.425868165043887917531352737832,
                    -0.417082912368467900878760830292,-0.408690099146139613780878653505,-0.400663864967396669190760780409,
                    -0.392980484334368319353551394402,-0.385618171265729356204919832452,-0.378556900297758163535516567556,
                    -0.371778243573858157321189709958,-0.365265223230203975279675707355,-0.359002178032730295092033054863,
                    -0.352974643113476469566514505048,-0.347169241636222983698548209576,-0.341573587256236624989810904625,
                    -0.336176196303559359459942240144,-0.330966408698845883798953133674,-0.325934316695995401240976020879,
                    -0.321070700631042676500926103943,-0.316366970938614206014013870793,-0.311815115773867801478299073146,
                    -0.30740765364833234742001317543,-0.303137590552168743477515490003,-0.298998381093172738007795786291,
                    -0.294983893234640933601408486002
                  },1),
                  // polAqqQPS_reg as^3 LM^0 NF^1 [above 0.625] y=1-x H[0, y]^3
                  ome_x<double>({
                    -0.987654320987654320987654320988,0,0.329218106995884773662551440329,0.329218106995884773662551440329,
                    0.296296296296296296296296296296,0.263374485596707818930041152263,0.235155790711346266901822457378,
                    0.21164021164021164021164021164,0.192043895747599451303155006859,0.175582990397805212620027434842,
                    0.161616161616161616161616161616,0.149644594089038533482977927422,0.139284583729028173472617917062,
                    0.13024013024013024013024013024,0.122281011169900058788947677837,0.115226337448559670781893004115,
                    0.108932461873638344226579520697,0.103284111998708948600016138142,0.0981878564724568623204100786947,
                    0.093567251461988304093567251462,0.0893592004703115814226925338036,0.0855111966223077334188445299556,
                    0.0819792124139950226906748645879,0.0787260690642333154410449096439,0.0757201646090534979423868312757,
                    0.0729344729344729344729344729345,0.0703457493580950371073827863951,0.0679338950943889215494153765759,
                    0.065681444991789819376026272578,0.063573151695757059741734071236,0.061595645825036506040090269481,
                    0.0597371565113500597371565113501,0.0579872802095024317246539468762,0.0563367883629321537818269844414,
                    0.0547774665421724245253657018363,0.0533019792279051538310797570057,0.0519037556074593111630148667186,
                    0.0505768926821558400505768926822,0.0493160727078855733826494060412,0.0481164925609370053814498258943,
                    0.046973803071364046973803071364,0.0458840567241651252491360892445,0.0448436624147218462463940500116,
                    0.0438493461749275702764074857098,0.0428981169721910462651203391944,0.0419872368342577682352239518101,
                    0.0411141946757117894953232603556,0.0402766833026880308204185272743,0.0394725791551188376585201982027,
                    0.0386999244142101284958427815571
                  },1)
                },0)
              )
            }
          )
        },1),
        // polAqqQPS_reg as^3 LM^1
        ome_nf<double>({
          // polAqqQPS_reg as^3 LM^1 NF^1
          ome_piecewisex<double>(
            {0.375,0.625},
            {
              // polAqqQPS_reg as^3 LM^1 NF^1 [below 0.375]
              make_ome_genps(
                std::function<double(double)>(f_id<double>),
                // polAqqQPS_reg as^3 LM^1 NF^1 [below 0.375] y=x
                ome_logx<double>({
                  // polAqqQPS_reg as^3 LM^1 NF^1 [below 0.375] y=x H[0, y]^0
                  ome_x<double>({
                    -92.8739677264693374150484689379,94.8663291254955620271271146667,0,-1.58024691358024691358024691358,
                    -0.666666666666666666666666666667,-0.304,-0.146962962962962962962962962963,
                    -0.0714105748119353561530432278732,-0.0321185617103984450923226433431,-0.0105547934766041761926535589087,
                    0.00169172817732488514381518496745,0.00876276340739150656506028406855,0.0128344826844979890587481649618,
                    0.0151113908291203930038030410592,0.0162888809187565376431455407424,0.0167824390832705269591135048429,
                    0.0168473457269753566049862346159,0.0166440287611160804728889402205,0.0162751234668437621215126766452,
                    0.0158071849070488927886945690594,0.0152837730608113874410624923047,0.0147335348194358465133441790771,
                    0.0141753039879087456303060538085,0.0136213804048545646804999471537,0.0130796730567319433100822128743,
                    0.0125551207959821650912122188352,0.0120506457921673935042303526279,0.0115678001157896127138196591697,
                    0.0111072080476156902184974085961,0.0106688707614879885309225242626,0.01025237729184291598286950209,
                    0.0098570510885713952341358718907,0.00948205194054384479319337536504,0.00912644676170819037756519348396,
                    0.00878925853162926979761641470364,0.00846949984293081877859813292,0.00816619557000704865604319554156,
                    0.00787839783822007598010661495876,0.00760519554523216688583023150367,0.0073457200367551636531560002273,
                    0.00709914808122951632081343482857,0.006864702963224505899829610372,0.00664165428373121664538435983011,
                    0.00642931688950661654294030203009,0.0062270492341453214336446968444,0.00603425138727095241536669691784,
                    0.00585036284576501104749212847309,0.00567486025563743556380480658752,0.00550725512024905055889797825836,
                    0.00534709154672420027717819645428,0.00519394406509405527299664353784
                  },0),
                  // polAqqQPS_reg as^3 LM^1 NF^1 [below 0.375] y=x H[0, y]^1
                  ome_x<double>({
                    -45.123012901347615491558299654,-35.6415314198661340100768181725
                  },0),
                  // polAqqQPS_reg as^3 LM^1 NF^1 [below 0.375] y=x H[0, y]^2
                  ome_x<double>({
                    -6.51851851851851851851851851852,-6.51851851851851851851851851852
                  },0),
                  // polAqqQPS_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)
              ),
              // polAqqQPS_reg as^3 LM^1 NF^1 [0.375,0.625]
              make_ome_genps(
                std::function<double(double)>(f_half<double>),
                // polAqqQPS_reg as^3 LM^1 NF^1 [0.375,0.625] y=1/2-x
                ome_logx<double>({
                  // polAqqQPS_reg as^3 LM^1 NF^1 [0.375,0.625] y=1/2-x H[0, y]^0
                  ome_x<double>({
                    -6.16890434317122277326061202602,-11.2804247355083824291869880459,19.0036763607171694527572332612,
                    67.9434067789018328349771832819,106.381447589086571110358538338,188.619979606668452764829798141,
                    332.422865131945710749699295052,595.189749614252817066657878129,1102.35544947548553496737114122,
                    2011.32862112551847100372570535,3813.7722638577582675591964819,7060.31431374575415426276008432,
                    13563.0740332452307827379987856,25381.9969656896081975552021331,49155.0614301793687021519793387,
                    92749.9446030902300910383258428,180596.033638747567769664467088,342967.379215362642946953779278,
                    670377.524904193751716010403553,1.27970043070064158562382560473e6,2.50852446246386511041883752648e6,
                    4.80888650460101837973864337399e6,9.44740573619334099098343686099e6,1.8174803043668458237721954838e7,
                    3.57682171819145240651749052925e7,6.90159365625386161320480816916e7,1.36017074411378546822619217321e8,
                    2.63120668550789375812073493067e8,5.19169531600688028965870140544e8,1.00654178093956048419576811902e9,
                    1.98799493843586834693887314667e9,3.8616994831334430121094430516e9,7.63357821853734341133314579985e9,
                    1.48536364892207595056906007547e10,2.93831749659942536714589197065e10,5.72614325387497162916594458839e10,
                    1.13345452587584992067703896573e11,2.21185653621110270478084092214e11,4.38068346825230464744353528898e11,
                    8.5590401661120768362005988591e11,1.69599957935278102409034136351e12,3.31733018715247136803108830045e12,
                    6.57631032115222651643431256746e12,1.28760122217925529134470554309e13,2.55357481506180547578691996994e13,
                    5.00432897936403752561400499711e13,9.92819237080854418921922503212e13,1.94729814976084914916969940779e14,
                    3.86455707089676434033102954053e14,7.58573741840740569503091609867e14,1.50589859409278307464806260906e15
                  },0)
                },0)
              ),
              // polAqqQPS_reg as^3 LM^1 NF^1 [above 0.625]
              make_ome_genps(
                std::function<double(double)>(f_omx<double>),
                // polAqqQPS_reg as^3 LM^1 NF^1 [above 0.625] y=1-x
                ome_logx<double>({
                  // polAqqQPS_reg as^3 LM^1 NF^1 [above 0.625] y=1-x H[0, y]^0
                  ome_x<double>({
                    -22.1234567901234567901234567901,0,4.74074074074074074074074074074,4.98765432098765432098765432099,
                    4.60977777777777777777777777778,4.18712757201646090534979423868,3.81538830699828432254736109611,
                    3.50285930245113918583306338408,3.24131578374376728286193306769,3.02091689606798366351570349219,
                    2.83328218638096638883730579913,2.67181913411598429162234604828,2.53144818383059723865167234713,
                    2.40825932787441364334556612364,2.29922257918922982254712253109,2.20196698392273804515883424629,
                    2.11461729896988508946693467467,2.03567426470337826830385123156,1.96392664699924440644536396473,
                    1.89838617389513551972831312869,1.83823897231725879698139294615,1.78280896069032696597491773414,
                    1.73152997422693467957245248142,1.68392432752439419376248176724,1.63958616841367301032345370374,
                    1.59816843262249871944690267026,1.55937253042943596079087916245,1.52294012526503117271765662211,
                    1.48864652835738522192983533631,1.4562953523413216439987594126,1.42571415354238927756986548164,
                    1.39675085660877618030532703796,1.36927080271140980255127483809,1.343154298175348236042468191,
                    1.31829456734131328735138899485,1.29459603397046589722128637493,1.2719728712457548749865350554,
                    1.25034777258660523897752684188,1.2296509049573007276506374621,1.20981901376046103944258171045,
                    1.19079465424687537161567434193,1.17252552900215417701400373684,1.15496391476109126453084832846,
                    1.13806616475869903211820208816,1.1217922752102926961649207361,1.10610550644298250701625424835,
                    1.09097205077122548516221824751,1.07636074049258534859685886724,1.06224279043354603257372601727,
                    1.04859157034391715274885327979
                  },1),
                  // polAqqQPS_reg as^3 LM^1 NF^1 [above 0.625] y=1-x H[0, y]^1
                  ome_x<double>({
                    -11.8518518518518518518518518519,0,-1.58024691358024691358024691358,-2.17283950617283950617283950617,
                    -2.38222222222222222222222222222,-2.43358024691358024691358024691,-2.4147140337616528092718568909,
                    -2.36371882086167800453514739229,-2.29849108367626886145404663923,-2.22789731530472271213011953753,
                    -2.15646333464515282697100878919,-2.0865120663100461080259060057,-2.01920346193850467354740859014,
                    -1.95506699242962979226715490452,-1.89428556158714888873619032349,-1.8368517079628190739301850413,
                    -1.78265557331301275937954138646,-1.73153522542219197351838643649,-1.68330566188368589107277934609,
                    -1.63777548832135763861362688151,-1.59475635890201716532248745134,-1.55406812262856115803993519673,
                    -1.51554141014524076948493174404,-1.47901869871589009866149395725,-1.4443544830814180659381897772,
                    -1.41141493473719987279116264278,-1.38007728348739003534974135375,-1.35022906393495095682188560417,
                    -1.32176731314461843728162695446,-1.29459777061115558918838103179,-1.2686341097722456337846896844,
                    -1.24379721667520577896480495208,-1.22001452297992452407848768836,-1.19721939534539769390936923701,
                    -1.17535058019862019221245299715,-1.15435170115669630197631331226,-1.13417080547667647797590607861,
                    -1.11475995552907968958610500364,-1.09607486122877068067247897153,-1.07807454948147194670586342466,
                    -1.06072106693301927740157303546,-1.043979212589118688041803584,-1.02781629717310953855653099483,
                    -1.0122019263881396035251198252,-0.99710780553654005254418991924,-0.982507563216697546395943892381,
                    -0.968376592063383958589895933729,-0.954691904720458971463905277133,-0.941432003435523170805797979961,
                    -0.92857676184562301830619223111
                  },1),
                  // polAqqQPS_reg as^3 LM^1 NF^1 [above 0.625] y=1-x H[0, y]^2
                  ome_x<double>({
                    -3.55555555555555555555555555556,0,1.18518518518518518518518518519,1.18518518518518518518518518519,
                    1.06666666666666666666666666667,0.948148148148148148148148148148,0.846560846560846560846560846561,
                    0.761904761904761904761904761905,0.691358024691358024691358024691,0.632098765432098765432098765432,
                    0.581818181818181818181818181818,0.538720538720538720538720538721,0.501424501424501424501424501425,
                    0.468864468864468864468864468864,0.440211640211640211640211640212,0.414814814814814814814814814815,
                    0.39215686274509803921568627451,0.371822803195352214960058097313,0.353476283300844704353476283301,
                    0.336842105263157894736842105263,0.321693121693121693121693121693,0.30784030784030784030784030784,
                    0.295125164690382081686429512516,0.283413848631239935587761674718,0.272592592592592592592592592593,
                    0.262564102564102564102564102564,0.253244697689142133586578031022,0.244562022339800117577895355673,
                    0.236453201970443349753694581281,0.22886334610472541507024265645,0.221744324970131421744324970131,
                    0.21505376344086021505376344086,0.208754208754208754208754208754,0.202812438106555753614577143989,
                    0.197198879551820728291316526611,0.19188712522045855379188712522,0.186853520186853520186853520187,
                    0.182076813655761024182076813656,0.177537861748388064177537861748,0.173219373219373219373219373219,
                    0.169105691056910569105691056911,0.16518260420699445089688992128,0.161437184692998646487018580042,
                    0.157857646229739252995066948555,0.1544332210998877665544332211,0.151154052603327965646806226516,
                    0.14801110083256244218316373728,0.144996059889676910953506698188,0.14210128495842781557067271353,
                    0.139319727891156462585034013605
                  },1)
                },0)
              )
            }
          )
        },1),
        // polAqqQPS_reg as^3 LM^2
        ome_nf<double>({
          // polAqqQPS_reg as^3 LM^2 NF^1
          ome_piecewisex<double>(
            {0.375,0.625},
            {
              // polAqqQPS_reg as^3 LM^2 NF^1 [below 0.375]
              make_ome_genps(
                std::function<double(double)>(f_id<double>),
                // polAqqQPS_reg as^3 LM^2 NF^1 [below 0.375] y=x
                ome_logx<double>({
                  // polAqqQPS_reg as^3 LM^2 NF^1 [below 0.375] y=x H[0, y]^0
                  ome_x<double>({
                    -12.8824941049947954001001374813,14.3767651542644638591591217779,0,-0.395061728395061728395061728395,
                    -0.246913580246913580246913580247,-0.16,-0.110617283950617283950617283951,
                    -0.0806248425296044343663391282439,-0.0612244897959183673469387755102,-0.0480109739368998628257887517147,
                    -0.0386282578875171467764060356653,-0.0317355371900826446280991735537,-0.0265279053157841036628915416794,
                    -0.022499817371612243407115201987,-0.0193213380026566839753652940466,-0.0167699672461577223481985386747,
                    -0.0146913580246913580246913580247,-0.0129757785467128027681660899654,-0.0115435183998557060200018036747,
                    -0.010335563839205985507411587231,-0.00930747922437673130193905817175,
                    -0.00842529604434366339128243890149,-0.00766269164537562805961074359343,
                    -0.00699901576340827071193113468419,-0.0064178860650190202805199654601,
                    -0.00590617283950617283950617283951,-0.00545325443786982248520710059172,
                    -0.00505046405647861804873517440786,-0.00469067370889828267841201409691,
                    -0.0043679778689121308452037176345,-0.00407745041910717693515949560341,
                    -0.00381495612851839005151526830334,-0.00357700312174817898022892819979,
                    -0.00336062646668707274767880828487,-0.00316329560326624392892611409965,
                    -0.00298284019490149000776781300756,-0.0028173903306178438453570728703,
                    -0.00266532799065331597864130396663,-0.00252524741556709813054800701727,
                    -0.0023959225607069914193999711437,-0.00227628022499817371612243407115,
                    -0.00216537775133848899464604402142,-0.00206238443115585406172075104967,
                    -0.0019665659264927852838950214623,-0.00187727116288009153931765662923,
                    -0.00179392125520071648017775963904,-0.00171600011409575226700480498702,
                    -0.00164304644772502248491948644529,-0.00157464692699338843898976689078,
                    -0.00151043032481322082876990554347,-0.0014500624739691795085381091212
                  },0),
                  // polAqqQPS_reg as^3 LM^2 NF^1 [below 0.375] y=x H[0, y]^1
                  ome_x<double>({
                    -8.2962962962962962962962962963,-1.18518518518518518518518518519
                  },0),
                  // polAqqQPS_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)
              ),
              // polAqqQPS_reg as^3 LM^2 NF^1 [0.375,0.625]
              make_ome_genps(
                std::function<double(double)>(f_half<double>),
                // polAqqQPS_reg as^3 LM^2 NF^1 [0.375,0.625] y=1/2-x
                ome_logx<double>({
                  // polAqqQPS_reg as^3 LM^2 NF^1 [0.375,0.625] y=1/2-x H[0, y]^0
                  ome_x<double>({
                    -2.16778988762269883836599604738,-9.99314688979544764415910638718,-12.2284636050007036598598938756,
                    -14.9754457285199258382383062696,-36.0208046092616047921255721778,-62.7905072991150516063265168142,
                    -128.771028385784532912432758983,-232.062289421387456055217692052,-458.174876220550009279223089974,
                    -841.814355229667158155490636326,-1644.48180036378821633594812342,-3062.07093376098641110044463689,
                    -5964.6786738340339789808828638,-11215.4508264713841026776314863,-21842.3541616222814321451504221,
                    -41377.1128529907732748381554526,-80645.2619650547226256964290736,-153666.122751297730082731375106,
                    -299836.384387303765244767058041,-574022.630419048377182016987114,-1.12140530688041156846516416848e6,
                    -2.15521078964263256115949659361e6,-4.21544487014732421070902902133e6,-8.12790175109655071317105449874e6,
                    -1.59156858873248643446187406443e7,-3.07719964629696010288979215266e7,-6.03200919510923666042048132577e7,
                    -1.169013940178460477441486006e8,-2.29377206253208194508575277593e8,-4.45451533360574457296728528988e8,
                    -8.74825405053803835024048261829e8,-1.7019787387896529278168042739e9,-3.34529088174670444037710000705e9,
                    -6.51866047708007108776378946006e9,-1.28223648340148220932542310024e10,
                    -2.50212194117679469204758803486e10,-4.92518060004291243147725431231e10,
                    -9.62308555368216940389567474967e10,-1.89543300332005050161931603525e11,
                    -3.70764333219627827909918901656e11,-7.30720482162662906198154148843e11,
                    -1.43084076572363488022867112894e12,-2.82153106085925131737078374329e12,
                    -5.53012418554679002939269609706e12,-1.09106711046632092424115573685e13,
                    -2.14030802862459808955452669198e13,-4.22474442666209983578228513941e13,
                    -8.29409751137945150360936602765e13,-1.63789816990575338008527996748e14,
                    -3.21789788329013206440528493371e14,-6.35727436489857490492750663954e14
                  },0)
                },0)
              ),
              // polAqqQPS_reg as^3 LM^2 NF^1 [above 0.625]
              make_ome_genps(
                std::function<double(double)>(f_omx<double>),
                // polAqqQPS_reg as^3 LM^2 NF^1 [above 0.625] y=1-x
                ome_logx<double>({
                  // polAqqQPS_reg as^3 LM^2 NF^1 [above 0.625] y=1-x H[0, y]^0
                  ome_x<double>({
                    -5.92592592592592592592592592593,0,-0.79012345679012345679012345679,-1.08641975308641975308641975309,
                    -1.19111111111111111111111111111,-1.21679012345679012345679012346,-1.20735701688082640463592844545,
                    -1.18185941043083900226757369615,-1.14924554183813443072702331962,-1.11394865765236135606505976876,
                    -1.0782316673225764134855043946,-1.04325603315502305401295300285,-1.00960173096925233677370429507,
                    -0.977533496214814896133577452259,-0.947142780793574444368095161746,-0.918425853981409536965092520648,
                    -0.891327786656506379689770693231,-0.865767612711095986759193218247,-0.841652830941842945536389673047,
                    -0.818887744160678819306813440755,-0.797378179451008582661243725669,-0.777034061314280579019967598365,
                    -0.757770705072620384742465872021,-0.739509349357945049330746978625,-0.7221772415407090329690948886,
                    -0.705707467368599936395581321392,-0.690038641743695017674870676874,-0.675114531967475478410942802084,
                    -0.660883656572309218640813477231,-0.647298885305577794594190515893,-0.6343170548861228168923448422,
                    -0.62189860833760288948240247604,-0.610007261489962262039243844179,-0.598609697672698846954684618504,
                    -0.587675290099310096106226498573,-0.577175850578348150988156656131,-0.567085402738338238987953039305,
                    -0.557379977764539844793052501818,-0.548037430614385340336239485763,-0.539037274740735973352931712332,
                    -0.530360533466509638700786517728,-0.521989606294559344020901791999,-0.513908148586554769278265497414,
                    -0.506100963194069801762559912599,-0.49855390276827002627209495962,-0.49125378160834877319797194619,
                    -0.484188296031691979294947966864,-0.477345952360229485731952638567,-0.47071600171776158540289898998,
                    -0.464288380922811509153096115555
                  },1),
                  // polAqqQPS_reg as^3 LM^2 NF^1 [above 0.625] y=1-x H[0, y]^1
                  ome_x<double>({
                    -3.55555555555555555555555555556,0,1.18518518518518518518518518519,1.18518518518518518518518518519,
                    1.06666666666666666666666666667,0.948148148148148148148148148148,0.846560846560846560846560846561,
                    0.761904761904761904761904761905,0.691358024691358024691358024691,0.632098765432098765432098765432,
                    0.581818181818181818181818181818,0.538720538720538720538720538721,0.501424501424501424501424501425,
                    0.468864468864468864468864468864,0.440211640211640211640211640212,0.414814814814814814814814814815,
                    0.39215686274509803921568627451,0.371822803195352214960058097313,0.353476283300844704353476283301,
                    0.336842105263157894736842105263,0.321693121693121693121693121693,0.30784030784030784030784030784,
                    0.295125164690382081686429512516,0.283413848631239935587761674718,0.272592592592592592592592592593,
                    0.262564102564102564102564102564,0.253244697689142133586578031022,0.244562022339800117577895355673,
                    0.236453201970443349753694581281,0.22886334610472541507024265645,0.221744324970131421744324970131,
                    0.21505376344086021505376344086,0.208754208754208754208754208754,0.202812438106555753614577143989,
                    0.197198879551820728291316526611,0.19188712522045855379188712522,0.186853520186853520186853520187,
                    0.182076813655761024182076813656,0.177537861748388064177537861748,0.173219373219373219373219373219,
                    0.169105691056910569105691056911,0.16518260420699445089688992128,0.161437184692998646487018580042,
                    0.157857646229739252995066948555,0.1544332210998877665544332211,0.151154052603327965646806226516,
                    0.14801110083256244218316373728,0.144996059889676910953506698188,0.14210128495842781557067271353,
                    0.139319727891156462585034013605
                  },1)
                },0)
              )
            }
          )
        },1),
        // polAqqQPS_reg as^3 LM^3
        ome_nf<double>({
          // polAqqQPS_reg as^3 LM^3 NF^1
          ome_piecewisex<double>(
            {0.375,0.625},
            {
              // polAqqQPS_reg as^3 LM^3 NF^1 [below 0.375]
              make_ome_genps(
                std::function<double(double)>(f_id<double>),
                // polAqqQPS_reg as^3 LM^3 NF^1 [below 0.375] y=x
                ome_logx<double>({
                  // polAqqQPS_reg as^3 LM^3 NF^1 [below 0.375] y=x H[0, y]^0
                  ome_x<double>({
                    -5.92592592592592592592592592593,5.92592592592592592592592592593
                  },0),
                  // polAqqQPS_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)
              ),
              // polAqqQPS_reg as^3 LM^3 NF^1 [0.375,0.625]
              make_ome_genps(
                std::function<double(double)>(f_half<double>),
                // polAqqQPS_reg as^3 LM^3 NF^1 [0.375,0.625] y=1/2-x
                ome_logx<double>({
                  // polAqqQPS_reg as^3 LM^3 NF^1 [0.375,0.625] y=1/2-x H[0, y]^0
                  ome_x<double>({
                    -0.498439654305379640590582086667,-0.457830353919870363063068732345,2.37037037037037037037037037037,
                    4.74074074074074074074074074074,7.9012345679012345679012345679,13.2740740740740740740740740741,
                    22.7555555555555555555555555556,39.7319223985890652557319223986,70.4338624338624338624338624339,
                    126.419753086419753086419753086,229.24115226337448559670781893,419.253872053872053872053872054,
                    772.30976430976430976430976431,1431.46058879392212725546058879,2667.31786731786731786731786732,
                    4993.21904761904761904761904762,9385.40246913580246913580246914,17704.7145969498910675381263617,
                    33505.6964415395787944807552651,63591.3536928741607104180203595,121005.261598440545808966861598,
                    230797.680423280423280423280423,441151.743466410133076799743466,844878.100424535207143902796077,
                    1.62098705314009661835748792271e6,3.11517689679012345679012345679e6,5.99582329071225071225071225071e6,
                    1.15565755036403925292814181703e7,2.23038670084264158338232412306e7,4.30985588907133734719941616493e7,
                    8.33761211994891443167305236271e7,1.61467508061489446435682994823e8,3.13014342958183990442054958184e8,
                    6.07369112565656565656565656566e8,1.17957773495477652340397438437e9,2.29278801932748210395269218799e9,
                    4.460100077398236331569664903e9,8.68260767123745968190412634857e9,1.69146723202461408777198250882e10,
                    3.29738080004798320587794272005e10,6.43209081396026590693257359924e10,1.25544959124558626919602529359e11,
                    2.45187261943080139372822299652e11,4.79111256039220048398342971986e11,9.3670711065718267950826090361e11,
                    1.83227257566981459034792368126e12,3.58579680475911740919663624978e12,7.02072097321950073662932127317e12,
                    1.37521265217184176516942474389e13,2.69489773620683497102544721592e13,5.28313425674906257898715041572e13
                  },0)
                },0)
              ),
              // polAqqQPS_reg as^3 LM^3 NF^1 [above 0.625]
              make_ome_genps(
                std::function<double(double)>(f_omx<double>),
                // polAqqQPS_reg as^3 LM^3 NF^1 [above 0.625] y=1-x
                ome_logx<double>({
                  // polAqqQPS_reg as^3 LM^3 NF^1 [above 0.625] y=1-x H[0, y]^0
                  ome_x<double>({
                    -1.18518518518518518518518518519,0,0.395061728395061728395061728395,0.395061728395061728395061728395,
                    0.355555555555555555555555555556,0.316049382716049382716049382716,0.282186948853615520282186948854,
                    0.253968253968253968253968253968,0.23045267489711934156378600823,0.210699588477366255144032921811,
                    0.193939393939393939393939393939,0.179573512906846240179573512907,0.167141500474833808167141500475,
                    0.156288156288156288156288156288,0.146737213403880070546737213404,0.138271604938271604938271604938,
                    0.130718954248366013071895424837,0.123940934398450738320019365771,0.117825427766948234784492094434,
                    0.112280701754385964912280701754,0.107231040564373897707231040564,0.102613435946769280102613435947,
                    0.0983750548967940272288098375055,0.0944712828770799785292538915727,0.0908641975308641975308641975309,
                    0.0875213675213675213675213675214,0.0844148992297140445288593436742,0.081520674113266705859298451891,
                    0.0788177339901477832512315270936,0.0762877820349084716900808854832,0.0739147749900438072481083233771,
                    0.0716845878136200716845878136201,0.0695847362514029180695847362514,0.0676041460355185845381923813296,
                    0.0657329598506069094304388422035,0.0639623750734861845972957084068,0.0622845067289511733956178400623,
                    0.0606922712185870080606922712186,0.0591792872494626880591792872495,0.0577397910731244064577397910731,
                    0.0563685636856368563685636856369,0.0550608680689981502989633070934,0.0538123948976662154956728600139,
                    0.0526192154099130843316889828518,0.0514777403666292555181444070333,0.0503846842011093218822687421721,
                    0.0493370336108541473943879124268,0.0483320199632256369845022327292,0.0473670949861426051902242378433,
                    0.0464399092970521541950113378685
                  },1)
                },0)
              )
            }
          )
        },1)
      },0)
    },3);


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


/* C interface */

double ome_polAqqQPS_reg(double as, double LM, double NF, double x)
{
  return(ome::polAqqQPS_reg(as, LM, NF, x));
}

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

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

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

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

int ome_polAqqQPS_reg_min_power()
{
  return(ome::polAqqQPS_reg.min_power());
}

int ome_polAqqQPS_reg_max_power()
{
  return(ome::polAqqQPS_reg.max_power());
}

int ome_polAqqQPS_reg_coeff_as_min_power(int order_as)
{
  return(ome::polAqqQPS_reg[order_as].min_power());
}

int ome_polAqqQPS_reg_coeff_as_max_power(int order_as)
{
  return(ome::polAqqQPS_reg[order_as].max_power());
}

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

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