-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathgflifttables.h
68 lines (66 loc) · 8.51 KB
/
gflifttables.h
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
// This file was automatically generated, changes may be overwritten
#pragma once
#include <cstdint>
// Only to keep everything looking nice if you somehow would include the file directly; it's circular otherwise
#include "arith.h"
namespace gflifttables {
template <int k, int k2> extern const GF2k<k2> lift_v[k];
template <> inline const GF2k<3> lift_v<3, 3>[3] = {GF2k<3>{1u},GF2k<3>{2u},GF2k<3>{4u}};
template <> inline const GF2k<6> lift_v<3, 6>[3] = {GF2k<6>{1u},GF2k<6>{14u},GF2k<6>{23u}};
template <> inline const GF2k<9> lift_v<3, 9>[3] = {GF2k<9>{1u},GF2k<9>{252u},GF2k<9>{302u}};
template <> inline const GF2k<12> lift_v<3, 12>[3] = {GF2k<12>{1u},GF2k<12>{1186u},GF2k<12>{3360u}};
template <> inline const GF2k<15> lift_v<3, 15>[3] = {GF2k<15>{1u},GF2k<15>{892u},GF2k<15>{5454u}};
template <> inline const GF2k<18> lift_v<3, 18>[3] = {GF2k<18>{1u},GF2k<18>{584u},GF2k<18>{4169u}};
template <> inline const GF2k<21> lift_v<3, 21>[3] = {GF2k<21>{1u},GF2k<21>{640053u},GF2k<21>{1713553u}};
template <> inline const GF2k<24> lift_v<3, 24>[3] = {GF2k<24>{1u},GF2k<24>{58028u},GF2k<24>{279372u}};
template <> inline const GF2k<27> lift_v<3, 27>[3] = {GF2k<27>{1u},GF2k<27>{55789875u},GF2k<27>{124514917u}};
template <> inline const GF2k<30> lift_v<3, 30>[3] = {GF2k<30>{1u},GF2k<30>{193456770u},GF2k<30>{393953531u}};
template <> inline const GF2k<33> lift_v<3, 33>[3] = {GF2k<33>{1u},GF2k<33>{229197301u},GF2k<33>{7292942129u}};
template <> inline const GF2k<36> lift_v<3, 36>[3] = {GF2k<36>{1u},GF2k<36>{1075871752u},GF2k<36>{9680486400u}};
template <> inline const GF2k<39> lift_v<3, 39>[3] = {GF2k<39>{1u},GF2k<39>{109785540569u},GF2k<39>{475644515179u}};
template <> inline const GF2k<42> lift_v<3, 42>[3] = {GF2k<42>{1u},GF2k<42>{2113664u},GF2k<42>{268451969u}};
template <> inline const GF2k<45> lift_v<3, 45>[3] = {GF2k<45>{1u},GF2k<45>{9345331225676u},GF2k<45>{19925763682451u}};
template <> inline const GF2k<48> lift_v<3, 48>[3] = {GF2k<48>{1u},GF2k<48>{20828204694946u},GF2k<48>{115364373335337u}};
template <> inline const GF2k<51> lift_v<3, 51>[3] = {GF2k<51>{1u},GF2k<51>{666398760064440u},GF2k<51>{1140050092017314u}};
template <> inline const GF2k<54> lift_v<3, 54>[3] = {GF2k<54>{1u},GF2k<54>{134480384u},GF2k<54>{68719739393u}};
template <> inline const GF2k<57> lift_v<3, 57>[3] = {GF2k<57>{1u},GF2k<57>{28763109479159609u},GF2k<57>{67464042781836617u}};
template <> inline const GF2k<60> lift_v<3, 60>[3] = {GF2k<60>{1u},GF2k<60>{284601221813889291u},GF2k<60>{342169897221099385u}};
template <> inline const GF2k<63> lift_v<3, 63>[3] = {GF2k<63>{1u},GF2k<63>{1708692982156050u},GF2k<63>{77692853498478820u}};
template <> inline const GF2k<4> lift_v<4, 4>[4] = {GF2k<4>{1u},GF2k<4>{2u},GF2k<4>{4u},GF2k<4>{8u}};
template <> inline const GF2k<8> lift_v<4, 8>[4] = {GF2k<8>{1u},GF2k<8>{92u},GF2k<8>{224u},GF2k<8>{80u}};
template <> inline const GF2k<12> lift_v<4, 12>[4] = {GF2k<12>{1u},GF2k<12>{8u},GF2k<12>{64u},GF2k<12>{512u}};
template <> inline const GF2k<16> lift_v<4, 16>[4] = {GF2k<16>{1u},GF2k<16>{34988u},GF2k<16>{36766u},GF2k<16>{10267u}};
template <> inline const GF2k<20> lift_v<4, 20>[4] = {GF2k<20>{1u},GF2k<20>{265666u},GF2k<20>{544809u},GF2k<20>{786370u}};
template <> inline const GF2k<24> lift_v<4, 24>[4] = {GF2k<24>{1u},GF2k<24>{12026308u},GF2k<24>{12030346u},GF2k<24>{4610159u}};
template <> inline const GF2k<28> lift_v<4, 28>[4] = {GF2k<28>{1u},GF2k<28>{2101550u},GF2k<28>{16893012u},GF2k<28>{154477173u}};
template <> inline const GF2k<32> lift_v<4, 32>[4] = {GF2k<32>{1u},GF2k<32>{582585766u},GF2k<32>{1984208835u},GF2k<32>{3438024028u}};
template <> inline const GF2k<36> lift_v<4, 36>[4] = {GF2k<36>{1u},GF2k<36>{512u},GF2k<36>{262144u},GF2k<36>{134217728u}};
template <> inline const GF2k<40> lift_v<4, 40>[4] = {GF2k<40>{1u},GF2k<40>{12281077660u},GF2k<40>{21352255824u},GF2k<40>{456777936950u}};
template <> inline const GF2k<44> lift_v<4, 44>[4] = {GF2k<44>{1u},GF2k<44>{2299308857370u},GF2k<44>{14372742338421u},GF2k<44>{8316841249363u}};
template <> inline const GF2k<48> lift_v<4, 48>[4] = {GF2k<48>{1u},GF2k<48>{50199389506336u},GF2k<48>{261287389237200u},GF2k<48>{166787530149570u}};
template <> inline const GF2k<52> lift_v<4, 52>[4] = {GF2k<52>{1u},GF2k<52>{1143492982458578u},GF2k<52>{2252355210859485u},GF2k<52>{1787139638258273u}};
template <> inline const GF2k<56> lift_v<4, 56>[4] = {GF2k<56>{1u},GF2k<56>{1101660173524u},GF2k<56>{1101928625232u},GF2k<56>{18478443242363304u}};
template <> inline const GF2k<60> lift_v<4, 60>[4] = {GF2k<60>{1u},GF2k<60>{147600653606208750u},GF2k<60>{329992043186115748u},GF2k<60>{696230753922817833u}};
template <> inline const GF2k<64> lift_v<4, 64>[4] = {GF2k<64>{1u},GF2k<64>{11637837820279650196u},GF2k<64>{13279093613986655126u},GF2k<64>{18174738647891815069u}};
template <> inline const GF2k<5> lift_v<5, 5>[5] = {GF2k<5>{1u},GF2k<5>{2u},GF2k<5>{4u},GF2k<5>{8u},GF2k<5>{16u}};
template <> inline const GF2k<10> lift_v<5, 10>[5] = {GF2k<10>{1u},GF2k<10>{314u},GF2k<10>{781u},GF2k<10>{91u},GF2k<10>{771u}};
template <> inline const GF2k<15> lift_v<5, 15>[5] = {GF2k<15>{1u},GF2k<15>{316u},GF2k<15>{1366u},GF2k<15>{5717u},GF2k<15>{4466u}};
template <> inline const GF2k<20> lift_v<5, 20>[5] = {GF2k<20>{1u},GF2k<20>{110030u},GF2k<20>{124473u},GF2k<20>{835724u},GF2k<20>{309768u}};
template <> inline const GF2k<25> lift_v<5, 25>[5] = {GF2k<25>{1u},GF2k<25>{2844714u},GF2k<25>{5452446u},GF2k<25>{26166257u},GF2k<25>{21551046u}};
template <> inline const GF2k<30> lift_v<5, 30>[5] = {GF2k<30>{1u},GF2k<30>{259815775u},GF2k<30>{381546133u},GF2k<30>{216698684u},GF2k<30>{413630174u}};
template <> inline const GF2k<35> lift_v<5, 35>[5] = {GF2k<35>{1u},GF2k<35>{1799179732u},GF2k<35>{4714099474u},GF2k<35>{11120212836u},GF2k<35>{24520761612u}};
template <> inline const GF2k<40> lift_v<5, 40>[5] = {GF2k<40>{1u},GF2k<40>{198277733978u},GF2k<40>{1087528416980u},GF2k<40>{85865933326u},GF2k<40>{363676235672u}};
template <> inline const GF2k<45> lift_v<5, 45>[5] = {GF2k<45>{1u},GF2k<45>{3697319101031u},GF2k<45>{25999378971341u},GF2k<45>{14379717506183u},GF2k<45>{21270692522885u}};
template <> inline const GF2k<50> lift_v<5, 50>[5] = {GF2k<50>{1u},GF2k<50>{45930257730945u},GF2k<50>{98762573987729u},GF2k<50>{61278281086952u},GF2k<50>{130376517943093u}};
template <> inline const GF2k<55> lift_v<5, 55>[5] = {GF2k<55>{1u},GF2k<55>{3778895367378224u},GF2k<55>{18496435401869704u},GF2k<55>{7795734696538831u},GF2k<55>{13513887704516042u}};
template <> inline const GF2k<60> lift_v<5, 60>[5] = {GF2k<60>{1u},GF2k<60>{59122829275001189u},GF2k<60>{296728025217554386u},GF2k<60>{61979349145084367u},GF2k<60>{162528248152547636u}};
template <> inline const GF2k<7> lift_v<7, 7>[7] = {GF2k<7>{1u},GF2k<7>{2u},GF2k<7>{4u},GF2k<7>{8u},GF2k<7>{16u},GF2k<7>{32u},GF2k<7>{64u}};
template <> inline const GF2k<14> lift_v<7, 14>[7] = {GF2k<14>{1u},GF2k<14>{3374u},GF2k<14>{11664u},GF2k<14>{7662u},GF2k<14>{14829u},GF2k<14>{6169u},GF2k<14>{14835u}};
template <> inline const GF2k<21> lift_v<7, 21>[7] = {GF2k<21>{1u},GF2k<21>{421748u},GF2k<21>{1521466u},GF2k<21>{13028u},GF2k<21>{2035145u},GF2k<21>{1480560u},GF2k<21>{283800u}};
template <> inline const GF2k<28> lift_v<7, 28>[7] = {GF2k<28>{1u},GF2k<28>{31996395u},GF2k<28>{92182597u},GF2k<28>{124925069u},GF2k<28>{41152477u},GF2k<28>{2896236u},GF2k<28>{115585169u}};
template <> inline const GF2k<35> lift_v<7, 35>[7] = {GF2k<35>{1u},GF2k<35>{4772327628u},GF2k<35>{25593796720u},GF2k<35>{31295962647u},GF2k<35>{28209487109u},GF2k<35>{27803893911u},GF2k<35>{18245003664u}};
template <> inline const GF2k<42> lift_v<7, 42>[7] = {GF2k<42>{1u},GF2k<42>{73052195346u},GF2k<42>{139049861632u},GF2k<42>{4286944492666u},GF2k<42>{623886008320u},GF2k<42>{4214629675072u},GF2k<42>{3877295434298u}};
template <> inline const GF2k<49> lift_v<7, 49>[7] = {GF2k<49>{1u},GF2k<49>{43069259504092u},GF2k<49>{355484078107096u},GF2k<49>{399439743886766u},GF2k<49>{149630372017474u},GF2k<49>{464307573440778u},GF2k<49>{228113453807710u}};
template <> inline const GF2k<56> lift_v<7, 56>[7] = {GF2k<56>{1u},GF2k<56>{8139737186855894u},GF2k<56>{66568246088254421u},GF2k<56>{46597121866059461u},GF2k<56>{34076059177578674u},GF2k<56>{68977857179910555u},GF2k<56>{8431497507285534u}};
template <> inline const GF2k<63> lift_v<7, 63>[7] = {GF2k<63>{1u},GF2k<63>{154282463566601516u},GF2k<63>{1179183826353455670u},GF2k<63>{318754744908378368u},GF2k<63>{1590935821716978450u},GF2k<63>{1591216188575676518u},GF2k<63>{1454729359729811456u}};
} // namespace gflifttables