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

#include <ome/AQqPSs.h>

namespace ome
{

  /**************** AQqPSs, regular part ****************/

  const ome_as<double> AQqPSs_reg = 
    // AQqPSs_reg
    ome_as<double>({
      // AQqPSs_reg as^3
      ome_logm<double>({
        // AQqPSs_reg as^3 LM^0
        ome_nf<double>({
          // AQqPSs_reg as^3 LM^0 NF^0
          ome_piecewisex<double>(
            {0.375,0.625},
            {
              // AQqPSs_reg as^3 LM^0 NF^0 [below 0.375]
              make_ome_genps(
                std::function<double(double)>(f_id<double>),
                // AQqPSs_reg as^3 LM^0 NF^0 [below 0.375] y=x
                ome_logx<double>({
                  // AQqPSs_reg as^3 LM^0 NF^0 [below 0.375] y=x H[0, y]^0
                  ome_x<double>({
                    -37.3738538084050983366591558905,434.894933419320327272135871876,-222.733612195843766759282206015,
                    -212.471864791525525481778961625,80.1711590727908279321526747023,-74.3298486458718291356086735222,
                    69.6139412042074343043880224362,-72.4435124768245135252600003545,73.3720901148834080164292604723,
                    -75.5141678179329378862033436516,76.5688625262598813265607241199,-78.0132542379987277750382243344,
                    78.8179276378055620476019392699,-79.8211017525362029651522036274,80.4142964701235189901443213935,
                    -81.1396566230977916609716800116,81.5826426303883645581860453408,-82.1262952487248039484652204795,
                    82.4642863484362413230009581911,-82.8842012189488226605421020891,83.1477115350185707039852529308,
                    -83.4802788747661304481230380129,83.6898040859773588759148901982,-83.9587752789086766203885292588,
                    84.1283032478794216929588854025,-84.3497304536769757543185469505,84.4890120215906758446651008281,
                    -84.6740798635032448437004781213,84.7900608873294376125114778952,-84.9467722692772974928835567337,
                    85.0445028566946190351761392534,-85.1787185262907473054032218495,85.2619402651222808506224187877,
                    -85.3780405568878394322167755741,85.4495734813675678530301399064,-85.5508917028846359835632877337,
                    85.6128945507852790133133760751,-85.7020081157443413421558603722,85.7561568344227549808223070541,
                    -85.8350873322019895395515514577,85.8826997887908901506326597924,-85.9530533098313566124536550862,
                    85.9951779206745145396606603707,-86.0582453061512066867192038773,86.0957250275204183310852517767,
                    -86.152554691304460564530160486,86.1860738993539162860386784111,-86.2375255328783791019054395315,
                    86.2676448331944205335841454366,-86.3144295622579603363366105438,86.3416119598717612627912938894
                  },0),
                  // AQqPSs_reg as^3 LM^0 NF^0 [below 0.375] y=x H[0, y]^1
                  ome_x<double>({
                    -46.5414047324800573532905128257,270.714508152101350519974308148,229.430955657847467009247512145,
                    23.192540960984684286808541417,-3.62196462625293574857621948903,12.9220472425289934570520848091,
                    -3.96596155664999727839666099442,4.6248324428433877351160870481,-2.17459208715949402338099643599,
                    2.18406640647815334984223508376,-1.29799122930435935651424903522,1.19984392694984057203967408433,
                    -0.836551283651878371805036780488,0.72302109342777941125463698656,-0.570911325902310952439397145792,
                    0.463156175249793432564769061957,-0.40673910571924025611492078225,0.309476448792694253204733864057,
                    -0.299525947821128039850452235762,0.212984281088557480204339537049,-0.226396721085964011536971808812,
                    0.149569725643753790486779643991,-0.174737413282531906984945201867,0.106375402168957801329808424301,
                    -0.137180662741442572493531267148,0.0760991016022036653528423730361,-0.10921443198631920478420136474,
                    0.0543780440315188694413814891284,-0.0879635695114335042606287330595,0.0384946982701854538408862510594,
                    -0.0715333632255574297993848224526,0.0266962339146096588076738526594,-0.0586387132752750254796860731137,
                    0.0178180540675522465208586237009,-0.0483859662816731691680734770085,0.0110664264526070525585317941517,
                    -0.0401399689743762949523046665993,0.00588828395513789334271501431248,-0.0334405250538399880832422742854,
                    0.00189071620816628589790579775332,-0.0279484566762159944662185958696,
                    -0.00121021895729866057519456001228,-0.0234099333317116802320347578064,
                    -0.00362285254299151627798301921985,-0.0196323699833441929716993270415,
                    -0.00550212234220584687350712642794,-0.016467825250613919563668670574,-0.0069646642791859861102292710887,
                    -0.0138013648803290911323512484612,-0.00809924545047589424785687718888,-0.0115427755112534693633678789291
                  },0),
                  // AQqPSs_reg as^3 LM^0 NF^0 [below 0.375] y=x H[0, y]^2
                  ome_x<double>({
                    16.5137975009857747215689895963,48.6852747753842639251546091347,20.708766821270273296796983703,
                    -25.294924554183813443072702332,-22.3074074074074074074074074074,-34.0613168724279835390946502058,
                    -15.3341373421796702219982643263,-32.522138637936068019212388071,-14.1302701481010458922611437939,
                    -31.8423233117359121670311166686,-13.7390560693965108480634107271,-31.5064704247522327310104067578,
                    -13.5703902417915116776300485969,-31.3216378476213607843611268486,-13.4846783778346585367267845826,
                    -31.2119121689181964004143588228,-13.4361277257545042981657714697,-31.1432117022406278193603162465,
                    -13.4064151360019673949388704476,-31.0985431479779058449646855314,-13.3871448888986154207679506371,
                    -31.0687238180558049147360693911,-13.3740693574632569241756259271,-31.0484702725481478198034468477,
                    -13.3648700772888563569037600229,-31.0345865818525482044451339258,-13.3582031101894645532717599906,
                    -31.025059246053039666162919141,-13.3532503624027696197284299427,-31.0185763189730044568188022372,
                    -13.3494932017043967014969939514,-31.0142585358958299874606861245,-13.3465913805834717823830835073,
                    -31.0115023844591241036069663109,-13.3443150409874712528132634859,-31.0098850990329714699864583005,
                    -13.3425049100394455557962262213,-31.0091053014451087685944498108,-13.3410481498861821411348776229,
                    -31.0089448816557425794340769621,-13.3398632413914468784126394519,-31.0092439215981494592502991378,
                    -13.3388902595086765408668196443,-31.0098838442645055379186075069,-13.338084463402789591406797012,
                    -31.0107758735297792056762091008,-13.3374119788299528784905916464,-31.0118529959163219034355063913,
                    -13.3368468326257931473151996417,-31.0130642756784227276339363654,-13.3363688797111085256435255624
                  },0),
                  // AQqPSs_reg as^3 LM^0 NF^0 [below 0.375] y=x H[0, y]^3
                  ome_x<double>({
                    1.18083298604045636715877876562,-8.69571022383608684271776444426,7.9012345679012345679012345679,
                    -2.63374485596707818930041152263,0.941015089163237311385459533608,-0.398353909465020576131687242798,
                    0.326082696453066823437193807564,-0.162593432434702275972117241959,0.167105250879501320418428002202,
                    -0.0894245215232869553857208178196,0.101980019675492926521733106095,-0.0568830844925121019397113673208,
                    0.0688277927335166392405449644507,-0.039473030926022379013832005285,0.0496205884891273576662262050947,
                    -0.0290352798289306225814162322099,0.0374851586725225069451648972346,-0.0222718232778466022090269174724,
                    0.0293240097393995317496025350929,-0.0176336401741101427480544634742,0.0235702243841500364875078462165,
                    -0.0143121954316607616524074335269,0.0193606490948440464303023643844,-0.0118509201780477868389116980895,
                    0.0161875234409015827485336692086,-0.00997574906753650715003372008203,0.0137361078418375031227199634924,
                    -0.00851391426467927470354398707253,0.0118027927002138700914043793261,
                    -0.00735204151813672267822131405209,0.0102510883298959165858246289604,
                    -0.00641319093282844324423777499876,0.00898670077790014584248985143115,
                    -0.00564363744912112841884946230106,0.00794278151471771641170357281876,
                    -0.00500493412743280010448315678905,0.00707086428288489359831476925228,
                    -0.00446897357843391596442893353839,0.00633511292831739779148868755558,
                    -0.00401481832454676169902156596287,0.00570856589603686656303606224792,
                    -0.00362661063302216055206999750592,0.00517062246111214206707764619872,
                    -0.00329216084685081853613378223996,0.00470532248622022024577110925239,
                    -0.00300197347810883459471349380439,0.00430014569656184305284419176035,
                    -0.00274856239921471939819798932496,0.00394515853063830506842098691449,
                    -0.00252596098559610610834342474922,0.00363239811755726057954885994038
                  },0),
                  // AQqPSs_reg as^3 LM^0 NF^0 [below 0.375] y=x H[0, y]^4
                  ome_x<double>({
                    -0.740740740740740740740740740741,0,-1.97530864197530864197530864198
                  },0),
                  // AQqPSs_reg as^3 LM^0 NF^0 [below 0.375] y=x H[0, y]^5
                  ome_x<double>({
                    0.296296296296296296296296296296
                  },0)
                },0)
              ),
              // AQqPSs_reg as^3 LM^0 NF^0 [0.375,0.625]
              make_ome_genps(
                std::function<double(double)>(f_half<double>),
                // AQqPSs_reg as^3 LM^0 NF^0 [0.375,0.625] y=1/2-x
                ome_logx<double>({
                  // AQqPSs_reg as^3 LM^0 NF^0 [0.375,0.625] y=1/2-x H[0, y]^0
                  ome_x<double>({
                    17.0603933982517223797585376066,84.8313815090502430947946504197,206.184945879690408868139142336,
                    316.084211554163519181209907913,371.032387886285415740033190499,422.564308763965218368234394482,
                    372.317094124659613511203213655,152.02254907198158512803314778,-685.957920563201832949164570826,
                    -2729.52806126760050655345435591,-7873.28147910548560492313487852,-19216.9394719582190267021010004,
                    -44844.1580220554678403593589184,-99144.3763489122836416219582883,-216230.763256782871798645742578,
                    -459300.779177804160666727110153,-970620.65909511698164215686955,-2.0195366156095506856415859607e6,
                    -4.19363328786474114323348744647e6,-8.61994693232629717831300669913e6,-1.77070919499799916436696091137e7,
                    -3.61140181835060223287552893575e7,-7.36569193655319962709230110213e7,-1.49432621777646615110358556243e8,
                    -3.03267058591181343406955215191e8,-6.129586935579154573340964435e8,-1.23952063279570300176968111068e9,
                    -2.49844879068380407780122439623e9,-5.0388991064320709990673046912e9,-1.01358382324596369426294245027e10,
                    -2.04006614447502289957970600254e10,-4.09717074551245411617389652845e10,
                    -8.23351948317032622543775330508e10,-1.65155052921266757119410624382e11,
                    -3.31478111517799069469322089995e11,-6.64261812616718698407591410356e11,
                    -1.33190144634209843967631432218e12,-2.66697418388428856140213633781e12,
                    -5.34323151522989346958899053867e12,-1.06924607568202412145810783994e13,
                    -2.14081525443435233216146426183e13,-4.28183772717336218918370648057e13,
                    -8.5683724439432047056333643735e13,-1.71303591207349934793306866727e14,
                    -3.42642461452326662300556687433e14,-6.84791231243802971473541188214e14,
                    -1.36921494363844133029998723647e15,-2.73566637247708921391023364933e15,
                    -5.46816228671352831735852342112e15,-1.09226554586122007401883979073e16,
                    -2.18269319111759350566665547354e16
                  },0)
                },0)
              ),
              // AQqPSs_reg as^3 LM^0 NF^0 [above 0.625]
              make_ome_genps(
                std::function<double(double)>(f_omx<double>),
                // AQqPSs_reg as^3 LM^0 NF^0 [above 0.625] y=1-x
                ome_logx<double>({
                  // AQqPSs_reg as^3 LM^0 NF^0 [above 0.625] y=1-x H[0, y]^0
                  ome_x<double>({
                    -4.10060691256658018426401878254,4.72527827364089521934487118755,19.2387144749278989506091039629,
                    35.5731849784710967454944658813,29.2386683466204051651598352928,22.6742854865129925454744232805,
                    17.4729556469479731397159757626,13.448133919258083284819112407,10.2946050835631693735317144242,
                    7.77543101358742958175029552645,5.72364492543676306973536253852,4.02303718058193384895321243618,
                    2.59187883858634514325625308712,1.37165274251740221490662244655,0.319608947897627775045800429109,
                    -0.596120376867466832004732298781,-1.39975185769730734822413366175,-2.11001809240804926366211671936,
                    -2.74164602667208599766212640136,-3.30638369001029428731754763533,-3.8137262417789805207198603947,
                    -4.27143848487551196524538460839,-4.68593725325752466153448323492,-5.0625756882080154018014387789,
                    -5.4058576892854763752603086512,-5.71960188998016495144214482218,-6.00706860512176802989722363436,
                    -6.27105923829182425405519284654,-6.51399494229512014369168024988,-6.73797946357213748420316652018,
                    -6.94484979636691465841946988147,-7.13621734529387573283090758081,-7.31350162768437161402111315127,
                    -7.47795806099224351417370814876,-7.63070102233345436154181226742,-7.77272310042753578271428000106,
                    -7.90491125946977998469786650489,-8.02806048200403372702579188277,-8.14288534104935478205785602605,
                    -8.25002986148400884326714639365,-8.35007596042216509111789206041,-8.44355070120750626959358724767,
                    -8.53093255212640182191758067662,-8.6126568063506211614239286695,-8.68912029195508879894346070483,
                    -8.76068547860380924262494843093,-8.82768406949951808035108752808,-8.89042015256029039765440450566,
                    -8.94917297283099497627502049917,-9.00419937832326750086139294897
                  },1),
                  // AQqPSs_reg as^3 LM^0 NF^0 [above 0.625] y=1-x H[0, y]^1
                  ome_x<double>({
                    -8.5569300149075048518181135189,-8.88888888888888888888888888889,-32.8654091923105330900216077575,
                    -44.4560626581380415319566216669,-44.6745643324068333292286522092,-42.8720220954927866989231030971,
                    -40.8156482552652683909755901323,-38.9096630743568305428666378254,-37.2281123130366004656560358444,
                    -35.758455228238009934797890459,-34.4690370762302573198242831921,-33.3283766349964167785016538895,
                    -32.3099413348852808256366221575,-31.3925193109088006610385194836,-30.5594122490123519858153931959,
                    -29.7974709009601065243030306594,-29.0962631499934005103891627666,-28.4474245618379821247338115678,
                    -27.8441702179027662028578983934,-27.2809323213579839032518550875,-26.7530912094930820756586243729,
                    -26.2567744474743696349663543851,-25.788705338999612792248068848,-25.3460874354488359263044791674,
                    -24.9265154744370652844102643943,-24.5279059175248063910555868707,-24.1484421825249733266813015246,
                    -23.7865310174330734341858865696,-23.440767415550371406350965255,-23.109906147739303279107970651,
                    -22.7928384725600015871068823359,-22.4885729361578509414380242836,-22.1962194308002838189951190977,
                    -21.9149758711172389326654576956,-21.6441169892369323232975116742,-21.382984857302891102932235337,
                    -21.1309808276092731150688434441,-20.8875586434302567726504347873,-20.6522185223220233880696343335,
                    -20.4245020517172703602220414695,-20.2039877665643627277467190322,-19.9902873024777482561166898135,
                    -19.7830420367773563138506691789,-19.5819201449683946351845907172,-19.3866140124590403399163919422,
                    -19.1968379512516550865372276366,-19.0123261794508078351203471607,-18.8328310280788881485010033779,
                    -18.6581213451664579965966523064,-18.4879810716166251005565849494
                  },1),
                  // AQqPSs_reg as^3 LM^0 NF^0 [above 0.625] y=1-x H[0, y]^2
                  ome_x<double>({
                    0.429434272142893145103452345618,0,4.87387871658733758954789679006,4.87387871658733758954789679006,
                    4.67831664911555748450813532504,4.48275458164377737946837386002,4.3033721628466842618034871957,
                    4.14016939272427813151347533209,3.99131516711603486237931723228,3.85497838186143032818199185936,
                    3.72957861568515306843430548008,3.61378613019710428838089166484,3.50648256906155640084893716664,
                    3.40672165716631156809890779998,3.31369673413689689406766780078,3.22671512219579626700399266715,
                    3.14517803976374309577256312286,3.06856477220009818310252784537,2.99642006977010817057823157436,
                    2.92834400161761118169121419151,2.86398369873170052865253223043,2.80302656862497463590283703851,
                    2.74519467158410942445375425926,2.6902400248054060524472382242,2.63794065571583654504816427928,
                    2.58809726586340356772706531162,2.54053039644147035996119719436,2.49507800884519966403843791152,
                    2.45159341072104670970562183969,2.40994347118753702732001840358,2.37000707926940557924459495456,
                    2.33167380779986167610307332741,2.29484275161325933272648229329,2.25942151414372534187771403983,
                    2.22532532084070468951163965461,2.19247624131890442642245830721,2.16080250503784061941028864991,
                    2.13023789767915232868677512862,2.10072122735508865508595216654,2.0721958514156774913473603573,
                    2.0446092559859187583243668713,2.01791268150660768417477366141,1.99206078851226381423221647076,
                    1.96701135868879921339483056278,1.94272502693773879934595766185,1.91916504075399816919842717784,
                    1.8962970437176183411049325732,1.8740888803205782668989257153,1.85251041970950283213463997747,
                    1.83153339623339227254517655262
                  },1)
                },0)
              )
            }
          )
        },0),
        // AQqPSs_reg as^3 LM^1
        ome_nf<double>({
          // AQqPSs_reg as^3 LM^1 NF^0
          ome_piecewisex<double>(
            {0.375,0.625},
            {
              // AQqPSs_reg as^3 LM^1 NF^0 [below 0.375]
              make_ome_genps(
                std::function<double(double)>(f_id<double>),
                // AQqPSs_reg as^3 LM^1 NF^0 [below 0.375] y=x
                ome_logx<double>({
                  // AQqPSs_reg as^3 LM^1 NF^0 [below 0.375] y=x H[0, y]^0
                  ome_x<double>({
                    -315.120491307722829475362066816,264.219616433129554658007484085,3.472753779577885511498040663,
                    72.9004947532748324036259726744,-35.4230022278993365646911490203,17.6061880984570388899103034951,
                    -11.4597069470149844641299675678,7.48894405929665886237170553315,-5.63839575670997248082968315992,
                    4.14972660042214354812608000873,-3.36080910523830314929868266993,2.63960636561468382949767157798,
                    -2.23399504622968053265755380911,1.82787004636942817866502084173,-1.59348387687072853804659456544,
                    1.34099263162567250901148024514,-1.19427025813862940844272193306,1.02588874675228223873556528235,
                    -0.928530368680830527375525441805,0.810204831543008560349751412813,-0.742670842250610278265376947598,
                    0.65607618297187820214941768073,-0.607566181011648683231467745438,0.542106148339806390031805822328,
                    -0.506266170001151917844949573921,0.455455309209921426677113919673,-0.428355687189300443925794840665,
                    0.388037267664789705507246725058,-0.367145944071600283466683957867,0.334552093884494118325307244634,
                    -0.318180673600017968001426515128,0.291408095627378167757226418605,-0.278397521398628499876994913643,
                    0.256100986898272035487191228104,-0.245635442110916987872285411832,0.226841317262209075447729283252,
                    -0.218333969093135358735831451437,0.20232281039389591742846542294,-0.195343418636631411254391072059,
                    0.181573816102892746209243582485,-0.175801588124596456121496996437,0.163859453246183636007504677592,
                    -0.159051586294777938641215100029,0.148615590731680159960201650013,-0.144585823840133472243478733395,
                    0.135403352640663998173793417317,-0.132007057973206442591497205501,0.123877164776010957537977160298,
                    -0.121000802764697307855059740769,0.113761923801633792692320213415,-0.111315466431637488529244705032
                  },0),
                  // AQqPSs_reg as^3 LM^1 NF^0 [below 0.375] y=x H[0, y]^1
                  ome_x<double>({
                    -178.030923036190863584662309996,-167.150280903413670473348768887,-80.3262588484902761165615038664,
                    9.95884773662551440329218106996,2.94567901234567901234567901235,-3.76312757201646090534979423868,
                    2.68930880994373057865121357185,-2.29886381360304262798593864354,1.74873090525647844871830762483,
                    -1.50491432055218063448516123413,1.21104817616602128386640171152,-1.06295828399287230018788023073,
                    0.888829604499120168635838151508,-0.793427651259278321674614840139,0.681666946775383312391277970672,
                    -0.616730229821688627433147463382,0.540574520331939639531957504898,-0.494347649490200871896700298547,
                    0.440016239453576554352285699468,-0.405897720739241485889506754791,0.365708944491878205016687043334,
                    -0.339774983031698796154498690697,0.309167322919435625295222771517,-0.288968971455330001872750579441,
                    0.265091531197494350476529953,-0.249035888035089685356081887117,0.230030297278297094969998824537,
                    -0.217044354005331964305041014191,0.201655846425957636770201098876,-0.190994860197160408457391680655,
                    0.178350569103800543639555012059,-0.169484136503966800184029167754,0.158961113136810983648344229154,
                    -0.151502916760783910903905660129,0.142646587730713968186565910852,-0.136309667005197761853264187676,
                    0.128781807978487724023820204994,-0.123349269286827100309312015879,0.116893864341916436069154248639,
                    -0.11219921840868021703347004302,0.106619494137933962797565021241,-0.102533160890909512395784311459,
                    0.097675793782294632371502662998,-0.0940956547661856991753749762656,0.0898396955014882638476689732088,
                    -0.0866843607933133355295058249995,0.0829333279106826389637853436502,-0.08013725949160520798121491813,
                    0.0768134044206254036073488007248,-0.074323331913878234887058102471,0.0713634180959286305618478388808
                  },0),
                  // AQqPSs_reg as^3 LM^1 NF^0 [below 0.375] y=x H[0, y]^2
                  ome_x<double>({
                    -6.89181925118993615678154814907,43.8649084492860383059310711106,-30.1234567901234567901234567901,
                    -8.88888888888888888888888888889,3.71604938271604938271604938272,-1.43950617283950617283950617284,
                    1.19647266313932980599647266314,-0.598639455782312925170068027211,0.599752246577643403040228437054,
                    -0.331716637272192827748383303939,0.362538969946377353784761192169,-0.211787912798013808114818215828,
                    0.243468091952940437788922637407,-0.147274378043608812839582070351,0.175013156698138383120068101753,
                    -0.108471422757137042851328565614,0.131965193484801327938582840544,-0.0832754852122403064348469961696,
                    0.103104244156605933790147688986,-0.0659723689072085863858898095677,0.0827999172720625475319227242896,
                    -0.0535689874035738697392832731179,0.0679676403372996634807287922289,-0.0443709649185962412748229326106,
                    0.0567999889676008138516015012549,-0.0373593459680416202155332590115,0.04817986866989715992564995414,
                    -0.0318908976078966582290418947589,0.0413862129080357708548022562091,-0.0275430597169016410408303405428,
                    0.0359364879125021300874419921126,-0.0240288226796533517262642814331,0.0314977916814111749942481818999,
                    -0.0211476376815129618303673849646,0.0278343786784596263468026076813,-0.0187559066671495956935622998126,
                    0.0247754846572151271808912643024,-0.0167486007536584429266585106636,0.0221949408809398993488900570497,
                    -0.0150474525074993858288126346937,0.0199978834799940096013299660316,-0.013593163910435375832956638033,
                    0.0181118678822479294565532322813,-0.012340140519418140054966063186,0.0164807943022757473375060823368,
                    -0.011252856687996764188407619687,0.0150606713993331918822868486283,-0.0103032986055590590379769359538,
                    0.0138166084679243252255782400204,-0.00946913454434700014999003895474,0.0127206450229373684470008713992
                  },0),
                  // AQqPSs_reg as^3 LM^1 NF^0 [below 0.375] y=x H[0, y]^3
                  ome_x<double>({
                    2.96296296296296296296296296296,0,7.9012345679012345679012345679
                  },0),
                  // AQqPSs_reg as^3 LM^1 NF^0 [below 0.375] y=x H[0, y]^4
                  ome_x<double>({
                    -1.48148148148148148148148148148
                  },0)
                },0)
              ),
              // AQqPSs_reg as^3 LM^1 NF^0 [0.375,0.625]
              make_ome_genps(
                std::function<double(double)>(f_half<double>),
                // AQqPSs_reg as^3 LM^1 NF^0 [0.375,0.625] y=1/2-x
                ome_logx<double>({
                  // AQqPSs_reg as^3 LM^1 NF^0 [0.375,0.625] y=1/2-x H[0, y]^0
                  ome_x<double>({
                    20.6769262221107110237137247717,84.775802586010311830658669499,146.43550309564784765718492181,
                    141.838202684213021125610564129,40.6969793236656282156157676702,-131.553528111585753006518637943,
                    -565.765066993032539556745092888,-1502.18169468480799425494686784,-3564.69037500981684177149482912,
                    -7874.63127542515449879152578429,-16917.7729655874664350024187514,-35427.2119185100202880885019914,
                    -73399.7385637599495333715929518,-150219.971772620267546858711823,-305937.064315583930383957266964,
                    -618815.730402226982389598599307,-1.2486047678795142098917571228e6,-2.50874382245066473675264758764e6,
                    -5.03428546463725004071710380079e6,-1.0074232141358265068054021399e7,-2.0146942801387897457378849354e7,
                    -4.0213315408565380281197087134e7,-8.02429135220119973078086700971e7,-1.59897288023705605152754190951e8,
                    -3.18596306005500788104207732362e8,-6.34151288300533015931244736223e8,-1.26230240133213305412607424671e9,
                    -2.51068912762912915670559696182e9,-4.99427942202908190066732262672e9,-9.92858335838177183303104170745e9,
                    -1.97410926231068655191587619144e10,-3.92323805378810563787046641737e10,
                    -7.79827660654407885747223537345e10,-1.54946995161405925894556861099e11,
                    -3.07931503971595126715176846684e11,-6.11767977981520198944603885819e11,
                    -1.21564972930803122207680146809e12,-2.4149927976793603712258380637e12,
                    -4.79858127707400602247699441589e12,-9.5326653660413755715100554471e12,
                    -1.89410755701258379805064465312e13,-3.76282772576660255039334774365e13,
                    -7.47672003014629550933756013889e13,-1.48538592105887213234035246531e14,
                    -2.95156475886021497198851089907e14,-5.86416880307295742507654428172e14,
                    -1.16531372016122757491350695983e15,-2.31541245010682807657703359125e15,
                    -4.60143579640244164932370267127e15,-9.14353364524256432768829448403e15,
                    -1.81723646426718939490923735583e16
                  },0)
                },0)
              ),
              // AQqPSs_reg as^3 LM^1 NF^0 [above 0.625]
              make_ome_genps(
                std::function<double(double)>(f_omx<double>),
                // AQqPSs_reg as^3 LM^1 NF^0 [above 0.625] y=1-x
                ome_logx<double>({
                  // AQqPSs_reg as^3 LM^1 NF^0 [above 0.625] y=1-x H[0, y]^0
                  ome_x<double>({
                    17.1982417826193716392644044439,-1.28830281642867943531035703685,36.435962570859986372143061975,
                    22.0290435571694201760510977776,13.7907793310335099622732837315,8.53319723839231954387835724102,
                    4.86480136628331957889529625233,2.16108602626231586111987993068,0.0944863096152934617848238808214,
                    -1.52702801569852520784838400058,-2.82482337162948830271916084512,-3.87982274193610260856084397166,
                    -4.74821473881466266610636808958,-5.47029085128097208656481625228,-6.07571726325384100412459323346,
                    -6.58682662135043276904308727988,-7.02075118848864046845145929502,-7.39084902563127938227887427645,
                    -7.70768346020792798912494372,-7.97971170957075422903033871806,-8.21377911548615248728329042372,
                    -8.41548040689230060552840961548,-8.58942809975381035457585084802,-8.73945482853448905659419010268,
                    -8.86876787986204427617623414442,-8.98006862031771590997485690908,-9.07564578517338875000832905749,
                    -9.15744906133042121707402764122,-9.22714764526313904028249969413,-9.28617722570692529379747431405,
                    -9.33577796364231243348072829361,-9.37702540885136364777944025611,-9.41085582958539174381310835926,
                    -9.4380870899679233354903531924,-9.45943595449646069349315543322,-9.47553250660652079631432977763,
                    -9.48693222194524272210694494507,-9.49412612480450145617963422583,-9.49754936945932731696003555623,
                    -9.49758852066562404206179004385,-9.4945877546750713960148343502,-9.48885416040135504206515696718,
                    -9.48066228726096220091454863119,-9.47025805978511364139257997386,-9.45786215789309149724322747925,
                    -9.44367294461242448650934634217,-9.42786900916736561424239649629,-9.41061138206754749202029842809,
                    -9.392045469594810919664748706,-9.37230274750172866244246755136
                  },1),
                  // AQqPSs_reg as^3 LM^1 NF^0 [above 0.625] y=1-x H[0, y]^1
                  ome_x<double>({
                    -2.57660563285735887062071407371,0,-29.2432722995240255372873807404,-29.2432722995240255372873807404,
                    -28.0698998946933449070488119502,-26.8965274898626642768102431601,-25.8202329770801055708209231742,
                    -24.8410163563456687890808519925,-23.9478910026962091742759033937,-23.1298702911685819690919511562,
                    -22.3774716941109184106058328805,-21.6827167811826257302853499891,-21.0388954143693384050936229998,
                    -20.4403299429978694085934467999,-19.8821804048213813644060068047,-19.3602907331747776020239560029,
                    -18.8710682385824585746353787371,-18.4113886332005890986151670722,-17.9785204186206490234693894462,
                    -17.5700640097056670901472851491,-17.1839021923902031719151933826,-16.8181594117498478154170222311,
                    -16.4711680295046565467225255556,-16.1414401488324363146834293452,-15.8276439342950192702889856757,
                    -15.5285835951804214063623918697,-15.2431823786488221597671831661,-14.9704680530711979842306274691,
                    -14.7095604643262802582337310381,-14.4596608271252221639201104215,-14.2200424756164334754675697273,
                    -13.9900428467991700566184399644,-13.7690565096795559963588937598,-13.556529084862352051266284239,
                    -13.3519519250442281370698379276,-13.1548574479134265585347498432,-12.9648150302270437164617318995,
                    -12.7814273860749139721206507717,-12.6043273641305319305157129992,-12.4331751084940649480841621438,
                    -12.2676555359155125499462012278,-12.1074760890396461050486419685,-11.9523647310735828853932988245,
                    -11.8020681521327952803689833767,-11.6563501616264327960757459711,-11.5149902445239890151905630671,
                    -11.3777822623057100466295954392,-11.2445332819234696013935542918,-11.1150625182570169928078398648,
                    -10.9892003774003536352710593157
                  },1)
                },0)
              )
            }
          )
        },0)
      },0)
    },3);


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


/* C interface */

double ome_AQqPSs_reg(double as, double LM, double NF, double x)
{
  return(ome::AQqPSs_reg(as, LM, NF, x));
}

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

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

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

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

int ome_AQqPSs_reg_min_power()
{
  return(ome::AQqPSs_reg.min_power());
}

int ome_AQqPSs_reg_max_power()
{
  return(ome::AQqPSs_reg.max_power());
}

int ome_AQqPSs_reg_coeff_as_min_power(int order_as)
{
  return(ome::AQqPSs_reg[order_as].min_power());
}

int ome_AQqPSs_reg_coeff_as_max_power(int order_as)
{
  return(ome::AQqPSs_reg[order_as].max_power());
}

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

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