-
Notifications
You must be signed in to change notification settings - Fork 2
/
gmimc2.h
139 lines (139 loc) · 6.96 KB
/
gmimc2.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
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
const F CONST[137] = {
(EXP2(64) * 0x42ea125ull + 0x29556cce756e23d9ull) ,
(EXP2(64) * 0x736e7beull + 0x74f5ac62fa94a3daull) ,
(EXP2(64) * 0x31ed1b1ull + 0xee0add0680d2878cull) ,
(EXP2(64) * 0x4558c21ull + 0xd794ade2f0a8cbc9ull) ,
(EXP2(64) * 0x4508366ull + 0x5433954c99171e4aull) ,
(EXP2(64) * 0x18a0aa7ull + 0x49c55468381430c1ull) ,
(EXP2(64) * 0x4481741ull + 0x25f009a17bc594d5ull) ,
(EXP2(64) * 0x5b35556ull + 0xde31ede0e32f08feull) ,
(EXP2(64) * 0x9780dbull + 0x5f4b8654dd09084dull) ,
(EXP2(64) * 0x7267a2bull + 0x33ca770676839d57ull) ,
(EXP2(64) * 0x2e94ebbull + 0xd57b326d4d51b803ull) ,
(EXP2(64) * 0x6156048ull + 0xca69f1f9922c8840ull) ,
(EXP2(64) * 0x1cf8adbull + 0x3562831240194354ull) ,
(EXP2(64) * 0x519a027ull + 0x1bdc3f567fd01977ull) ,
(EXP2(64) * 0x1a496faull + 0x25a27de20a3164e8ull) ,
(EXP2(64) * 0x5e83bd3ull + 0x5167099cddad23d7ull) ,
(EXP2(64) * 0x79ec30eull + 0x79b7b34915867ecbull) ,
(EXP2(64) * 0x41bf5dull + 0xbc6027546be74240ull) ,
(EXP2(64) * 0x5fd71cdull + 0x1d205b03146d036cull) ,
(EXP2(64) * 0x59f6bfeull + 0x9361ad363924a6fdull) ,
(EXP2(64) * 0x2140cc9ull + 0xebf8cbf4f60e31e2ull) ,
(EXP2(64) * 0x70edbd5ull + 0xcaa9b02e87390bf1ull) ,
(EXP2(64) * 0x7fce548ull + 0xa2368c8467519e68ull) ,
(EXP2(64) * 0x7b3a60dull + 0x1f064d87a3e685f3ull) ,
(EXP2(64) * 0xe0928cull + 0x3efebd2346b79c5cull) ,
(EXP2(64) * 0x571aed6ull + 0xd7c2763d330baa7cull) ,
(EXP2(64) * 0x565d965ull + 0x79114ea568b2aa38ull) ,
(EXP2(64) * 0x169ea51ull + 0xb76be471f264d14eull) ,
(EXP2(64) * 0x7c9462full + 0xebedc4336dc1e448ull) ,
(EXP2(64) * 0x1146226ull + 0x265893c1ab92ca35ull) ,
(EXP2(64) * 0x4503c17ull + 0x19c26f445e9cd653ull) ,
(EXP2(64) * 0x77d14ebull + 0xa9f4cc06ed86ed58ull) ,
(EXP2(64) * 0x2c06c8cull + 0xaae9a4b31355197ull) ,
(EXP2(64) * 0x258b00bull + 0x10f7801d7daec7adull) ,
(EXP2(64) * 0x697ee80ull + 0x5cc23114c2aa52c4ull) ,
(EXP2(64) * 0x346d13dull + 0x4790d506eecbed42ull) ,
(EXP2(64) * 0xbde9dull + 0xdc3ebb4b7756f115ull) ,
(EXP2(64) * 0x37c137ull + 0xe9b315bd795574edull) ,
(EXP2(64) * 0x195ac5full + 0xa63d14145be2153dull) ,
(EXP2(64) * 0x57a8a2dull + 0xc250f6b216a92449ull) ,
(EXP2(64) * 0x1726560ull + 0xdd5422213424d6cdull) ,
(EXP2(64) * 0x36e66aull + 0x4fc14da1dd8c3a22ull) ,
(EXP2(64) * 0x234d701ull + 0x6ddb82103f1948f8ull) ,
(EXP2(64) * 0x72e6c77ull + 0x485c95e4c2f438d7ull) ,
(EXP2(64) * 0x4610606ull + 0xafffbb3bf4b241c2ull) ,
(EXP2(64) * 0x7cb53f7ull + 0x24e56717214a8865ull) ,
(EXP2(64) * 0x31a4483ull + 0x7ff3ca52b2754fe9ull) ,
(EXP2(64) * 0x7b2fdaaull + 0x27afdc474e28d3dcull) ,
(EXP2(64) * 0x29cf7a4ull + 0x9c0952d5c894d6bbull) ,
(EXP2(64) * 0xedab20ull + 0x1c01fa5ab98b0751ull) ,
(EXP2(64) * 0x1c5e6e3ull + 0x23be085c49645f56ull) ,
(EXP2(64) * 0x52cc090ull + 0xff9400e0c3c3e3b3ull) ,
(EXP2(64) * 0x4e8de6ull + 0x88ab49729552f1f9ull) ,
(EXP2(64) * 0xcd525dull + 0xf6a5ce61a99ced67ull) ,
(EXP2(64) * 0x357724eull + 0x2d5375660bf635beull) ,
(EXP2(64) * 0x51e1525ull + 0xf30b6e210f26074dull) ,
(EXP2(64) * 0x636ed1cull + 0x4bd94628353aaa24ull) ,
(EXP2(64) * 0x3488570ull + 0x34ea402f2480aaa4ull) ,
(EXP2(64) * 0x6a39105ull + 0x4a49e5384c5efb7cull) ,
(EXP2(64) * 0x17d366dull + 0x8e843729c24b9e4ull) ,
(EXP2(64) * 0x47e93e4ull + 0x7164079212a373c3ull) ,
(EXP2(64) * 0x1bdc543ull + 0xf7b8c7340b5dd07eull) ,
(EXP2(64) * 0x7c7e162ull + 0xf13fd51ef2f3bf6dull) ,
(EXP2(64) * 0x5eef456ull + 0x2d656e0e7081b5a8ull) ,
(EXP2(64) * 0x79ed483ull + 0x15eaf690678db8bull) ,
(EXP2(64) * 0x13e73cdull + 0xe0680895b67b3ad8ull) ,
(EXP2(64) * 0x1693a20ull + 0xc250c6ab9ea397cdull) ,
(EXP2(64) * 0x7202f63ull + 0x3dc06b429b80f21eull) ,
(EXP2(64) * 0x1a43d42ull + 0x3a945aefe568cb7bull) ,
(EXP2(64) * 0x79342f0ull + 0xb7bb12c13d193742ull) ,
(EXP2(64) * 0x3b44467ull + 0x2bace7e40307ce32ull) ,
(EXP2(64) * 0x640ffb2ull + 0x208e3a69e575c7f0ull) ,
(EXP2(64) * 0x59905adull + 0xb181dd5510cdbb9dull) ,
(EXP2(64) * 0x392b0c4ull + 0x83bb544972e28af5ull) ,
(EXP2(64) * 0x66dfadbull + 0x104ee1c3c703df18ull) ,
(EXP2(64) * 0x201e608ull + 0xff542cdb37bc08b5ull) ,
(EXP2(64) * 0x1ec6a05ull + 0x7324d72abc1452feull) ,
(EXP2(64) * 0x22219full + 0x8df3131a5862e607ull) ,
(EXP2(64) * 0x7a94ce0ull + 0xe2e9e62fd470d3a0ull) ,
(EXP2(64) * 0x488a023ull + 0x6d8162ad9fe0847eull) ,
(EXP2(64) * 0x752395dull + 0x8e66df0613c882a0ull) ,
(EXP2(64) * 0xc0ad68ull + 0x3a5ac8c677df705eull) ,
(EXP2(64) * 0x59632ccull + 0xd551eed6ac172280ull) ,
(EXP2(64) * 0x97d9f0ull + 0x295e947d0803493eull) ,
(EXP2(64) * 0x48efeccull + 0xb02ef5588405cc85ull) ,
(EXP2(64) * 0xb6e042ull + 0x1e0f94c7622dff26ull) ,
(EXP2(64) * 0x45bf7e5ull + 0x7a2bed82dc80f1e0ull) ,
(EXP2(64) * 0x68c2fc5ull + 0x9244de0999e4b6d4ull) ,
(EXP2(64) * 0x3860ed0ull + 0xdcd5a05707a26efdull) ,
(EXP2(64) * 0x7b4cfbcull + 0xf380bd6dd8da03d9ull) ,
(EXP2(64) * 0x6f804b9ull + 0x71d48eb7090bce45ull) ,
(EXP2(64) * 0x9020d6ull + 0x735d2cd0068e7a1eull) ,
(EXP2(64) * 0x34cddd7ull + 0x515811607ea4e8aaull) ,
(EXP2(64) * 0x2f78dd7ull + 0x7c76d102f259932full) ,
(EXP2(64) * 0x1c4ef01ull + 0x72149848909bf1efull) ,
(EXP2(64) * 0x6202504ull + 0x284330625199ee7eull) ,
(EXP2(64) * 0xfa9fb7ull + 0x8397892cd838dc2full) ,
(EXP2(64) * 0x6c989bdull + 0xacd7a08ec5913cecull) ,
(EXP2(64) * 0x3335944ull + 0x3e0d8eb9ecc15ebcull) ,
(EXP2(64) * 0x41e28e2ull + 0x45424796c6a982b6ull) ,
(EXP2(64) * 0x6df5765ull + 0xfbe62c4c066eef9cull) ,
(EXP2(64) * 0x747353bull + 0xc3f30080b8cd69ffull) ,
(EXP2(64) * 0x4fc9a59ull + 0x8f90a856693be3b0ull) ,
(EXP2(64) * 0x1553d71ull + 0x5aad94731f899ea1ull) ,
(EXP2(64) * 0x1e98c01ull + 0x7ec148c53624e53bull) ,
(EXP2(64) * 0x69ce606ull + 0xa537a81fb13ad77full) ,
(EXP2(64) * 0x4370bbull + 0x2f597e6ff5325a5ull) ,
(EXP2(64) * 0x5118b4eull + 0x385ca1babffd2efaull) ,
(EXP2(64) * 0x1ee9df7ull + 0x7e67053c0b955007ull) ,
(EXP2(64) * 0x22f321eull + 0xff43bbbc94927657ull) ,
(EXP2(64) * 0x7c6cc63ull + 0x5a556bda63075464ull) ,
(EXP2(64) * 0x6801bc9ull + 0x7dbe84a3717f303bull) ,
(EXP2(64) * 0x2469be7ull + 0xbac36b1de54341c3ull) ,
(EXP2(64) * 0x441dd59ull + 0xae819836b30a0a3eull) ,
(EXP2(64) * 0x31ab177ull + 0x43d9f9b0a7178d24ull) ,
(EXP2(64) * 0x3a1301ull + 0x5f2774e5bc9fe214ull) ,
(EXP2(64) * 0x4eb4acbull + 0x996636ace4967ba4ull) ,
(EXP2(64) * 0x5be9588ull + 0xbb6d470d78d627feull) ,
(EXP2(64) * 0x5b29102ull + 0x7a12ecb0361e2b2dull) ,
(EXP2(64) * 0x53e9f4cull + 0xa8efafd555321dedull) ,
(EXP2(64) * 0x718f1b7ull + 0xfa29b31d052d591ull) ,
(EXP2(64) * 0x26040dfull + 0x825a6b17016423f3ull) ,
(EXP2(64) * 0x4aeeb97ull + 0x845104c33b9bc2a0ull) ,
(EXP2(64) * 0x2d7b6b3ull + 0x821ae156b5755241ull) ,
(EXP2(64) * 0x4a4eb8cull + 0x82819a3b5e0f3c28ull) ,
(EXP2(64) * 0x737db82ull + 0x91f15c35c90cb54full) ,
(EXP2(64) * 0x6e0dae1ull + 0xca6aac60aa387b78ull) ,
(EXP2(64) * 0x33427eaull + 0xcccee74a737d1758ull) ,
(EXP2(64) * 0x182f22ull + 0x177aa0bdc098284full) ,
(EXP2(64) * 0x40f3e45ull + 0x39d1d348fcd8038cull) ,
(EXP2(64) * 0x84912bull + 0x4c47482e6489bc2aull) ,
(EXP2(64) * 0x5e60299ull + 0xa9ff7899c6c16d74ull) ,
(EXP2(64) * 0x34bcf47ull + 0xf31ffce6d4f19981ull) ,
(EXP2(64) * 0x28010a2ull + 0xd320378c43ffbdafull) ,
(EXP2(64) * 0x6244bfeull + 0x86bd22bc6f83e907ull) ,
(EXP2(64) * 0x6dc68e7ull + 0x792163d55647bbddull) ,
(EXP2(64) * 0x477b077ull + 0xdc0387130cedfaa2ull) ,
};