/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-rocrand/checkouts/develop/library/include/rocrand/rocrand_mrg31k3p_precomputed.h Source File

/home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-rocrand/checkouts/develop/library/include/rocrand/rocrand_mrg31k3p_precomputed.h Source File#

API library: /home/docs/checkouts/readthedocs.org/user_builds/advanced-micro-devices-rocrand/checkouts/develop/library/include/rocrand/rocrand_mrg31k3p_precomputed.h Source File
rocrand_mrg31k3p_precomputed.h
1 // Copyright (c) 2022 Advanced Micro Devices, Inc. All rights reserved.
2 //
3 // Permission is hereby granted, free of charge, to any person obtaining a copy
4 // of this software and associated documentation files (the "Software"), to deal
5 // in the Software without restriction, including without limitation the rights
6 // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
7 // copies of the Software, and to permit persons to whom the Software is
8 // furnished to do so, subject to the following conditions:
9 //
10 // The above copyright notice and this permission notice shall be included in
11 // all copies or substantial portions of the Software.
12 //
13 // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
14 // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
15 // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
16 // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
17 // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
18 // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
19 // THE SOFTWARE.
20 
21 #ifndef ROCRAND_MRG31K3P_PRECOMPUTED_H_
22 #define ROCRAND_MRG31K3P_PRECOMPUTED_H_
23 
24 // Auto-generated file. Do not edit!
25 // Generated by tools/mrg31k3p_precomputed_generator
26 
27 #define MRG31K3P_DIM 64
28 #define MRG31K3P_N 576
29 
30 static const __device__ unsigned int d_mrg31k3p_A1[MRG31K3P_N] = {
31  // clang-format off
32  0, 4194304, 129, 1, 0, 0, 0, 1, 0,
33  4194304, 129, 0, 0, 4194304, 129, 1, 0, 0,
34  8192, 1082130432, 16641, 129, 8192, 541065216, 4194304, 129, 0,
35  1153433697, 2154945, 408969216, 3170304, 1153433697, 2148753, 16657, 3170304, 8388673,
36  2114723322, 1721212208, 372069324, 2050484945, 2114723322, 840597819, 2104058429, 2050484945, 1854761289,
37  2031391056, 1474597190, 220631129, 667596721, 2031391056, 1804643306, 629934405, 667596721, 667011916,
38  1626637155, 47085990, 25108805, 1565027687, 1626637155, 685757807, 621260874, 1565027687, 1315045259,
39  186789822, 229794953, 948835832, 1072773560, 186789822, 529689580, 686639683, 1072773560, 2051914008,
40  133777926, 1849297334, 1160315623, 391879376, 133777926, 976116713, 1472516881, 391879376, 1133340572,
41  315040025, 1357549030, 448994521, 1634902263, 315040025, 318362774, 468588410, 1634902263, 876161549,
42  1108588757, 1006700199, 1139321936, 624776875, 1108588757, 288253948, 85470327, 624776875, 609299647,
43  1800574616, 1663202423, 368689287, 2000517263, 1800574616, 1059509691, 1106925817, 2000517263, 754030956,
44  1086502913, 1682234256, 1789246123, 1245759969, 1086502913, 1809824555, 1329155292, 1245759969, 161160027,
45  1720262475, 565559801, 1398990386, 1325970531, 1720262475, 147733919, 866797547, 1325970531, 1806649895,
46  1476358256, 539279285, 975405418, 1139568166, 1476358256, 377670014, 1068345918, 1139568166, 1214224795,
47  400054507, 1914771670, 200204594, 1965916860, 400054507, 1122402837, 258408198, 1965916860, 1448125803,
48  2949404, 1576782032, 520268929, 1086098496, 2949404, 1306225290, 1408487222, 1086098496, 847447860,
49  381424493, 1433687186, 455906132, 1518425721, 381424493, 923210727, 1755108478, 1518425721, 1996997890,
50  928372573, 545485986, 280054605, 1250707970, 928372573, 534654589, 2085039616, 1250707970, 924300230,
51  1362662654, 1947668898, 168367491, 201071095, 1362662654, 1985024917, 2146224277, 201071095, 733519514,
52  1620396146, 958413413, 1981393580, 581363082, 1620396146, 1452205810, 2042210936, 581363082, 1113090973,
53  580884245, 1414992990, 1420238151, 909956241, 580884245, 805041652, 938481596, 909956241, 864263945,
54  1232863855, 1411246633, 1387550558, 1275940370, 1232863855, 1333257090, 1458638251, 1275940370, 1586530792,
55  265378350, 1344095500, 1646881501, 545475645, 265378350, 1087177574, 274782294, 545475645, 2051615169,
56  1364138796, 806636338, 1935176304, 414533208, 1364138796, 436727951, 619330410, 414533208, 1992074766,
57  1803497226, 1844275260, 2103387029, 382542847, 1803497226, 1847722410, 463796751, 382542847, 1739676813,
58  1913524296, 1430627077, 1356264156, 1658582521, 1913524296, 1456747786, 1393006903, 1658582521, 606375036,
59  120859840, 472996648, 1037593448, 1522934925, 120859840, 2026108949, 1880188197, 1522934925, 1035740173,
60  2111757135, 1248103941, 85606846, 932904582, 2111757135, 684245126, 71892866, 932904582, 492615376,
61  1190592709, 1401162145, 2104012173, 665549414, 1190592709, 972043236, 656774461, 665549414, 2007199226,
62  667839840, 1878445499, 142470751, 483872066, 667839840, 526934549, 20731924, 483872066, 583913268,
63  562420240, 633335206, 670353591, 1703206865, 562420240, 827140918, 589062547, 1703206865, 1018448863,
64  1408922715, 297418199, 2051604018, 1514148312, 1408922715, 462233038, 1585063407, 1514148312, 1477130056,
65  741306356, 684854080, 1857139347, 613694191, 741306356, 1828700450, 480296454, 613694191, 715202453,
66  1047704485, 1456393032, 1648359057, 262485378, 1047704485, 1984362669, 215148577, 262485378, 908872241,
67  1863657812, 1890266319, 666587201, 421346344, 1863657812, 1721671217, 779115651, 421346344, 1312682278,
68  523503690, 2020624237, 1690539270, 1061876039, 523503690, 647012853, 154840044, 1061876039, 607087348,
69  702121434, 460891510, 195545005, 384400534, 702121434, 1978478775, 1313815529, 384400534, 796024380,
70  2141457694, 989525486, 316892471, 69045171, 2141457694, 1312352040, 1658242117, 69045171, 1848811964,
71  312098455, 52959419, 1841143700, 80861072, 312098455, 522563535, 1502295285, 80861072, 1429043452,
72  483325749, 1255376843, 823834294, 1737690958, 483325749, 1998569027, 581496225, 1737690958, 880648894,
73  951315709, 320387170, 790882849, 988313318, 951315709, 1501250598, 461110923, 988313318, 367406846,
74  786673668, 1116857731, 566863927, 1535933019, 786673668, 732176198, 471796266, 1535933019, 609591423,
75  1820693727, 995258782, 742860132, 105641566, 1820693727, 600787875, 204423191, 105641566, 1723825471,
76  1631817342, 1581973938, 1881330950, 980119244, 1631817342, 724421627, 1071033915, 980119244, 1382261543,
77  131983533, 1244304830, 2005033071, 315191773, 131983533, 1390489861, 1492376236, 315191773, 1555132095,
78  649479311, 854605130, 321726041, 518555962, 649479311, 1684064517, 412586605, 518555962, 191494342,
79  1346575254, 2047163226, 2135287938, 116435580, 1346575254, 1526842117, 194954746, 116435580, 1371360307,
80  2025597527, 567446578, 1643108977, 46031599, 2025597527, 1712401664, 779043794, 46031599, 69530294,
81  489637171, 1625130585, 381262278, 452428843, 489637171, 1443891863, 876845283, 452428843, 1683301222,
82  651368970, 819199709, 2031524031, 1763700054, 651368970, 1528786662, 810914742, 1763700054, 960163648,
83  198884098, 215325655, 632733037, 537614029, 198884098, 1501926955, 744117887, 537614029, 1812237782,
84  1319538504, 262631980, 395918435, 569072577, 1319538504, 525761662, 986258115, 569072577, 499722939,
85  1873712945, 1328139957, 636168787, 1236821385, 1873712945, 1824846466, 1046270020, 1236821385, 1586456777,
86  2132644776, 1561739817, 2116746853, 1448064655, 2132644776, 959126094, 7435086, 1448064655, 731732719,
87  1170264917, 1887271366, 2055201704, 581935238, 1170264917, 1324098038, 1275448490, 581935238, 454742127,
88  2046293185, 133016457, 1987176594, 714585192, 2046293185, 1842896814, 1912062268, 714585192, 717158625,
89  2141188152, 371769702, 238274411, 168318689, 2141188152, 1575206202, 1610338266, 168318689, 149942865,
90  1171704025, 72174675, 1399149001, 843204119, 1171704025, 2121542447, 482566547, 843204119, 1627940648,
91  358961052, 449506273, 225035397, 1400105905, 358961052, 778121707, 2086926958, 1400105905, 2040995230,
92  1386279708, 1147668810, 1782545300, 130348301, 1386279708, 19146448, 283150143, 130348301, 47743705,
93  796733104, 729200619, 621776084, 420998971, 796733104, 1554656243, 78640239, 420998971, 331011766,
94  670353591, 1685250609, 1474479719, 827140918, 670353591, 383400860, 1018448863, 827140918, 806776465,
95  1646003433, 516429741, 823438334, 1571216288, 1646003433, 916014143, 672987287, 1571216288, 1011349101,
96  // clang-format on
97 };
98 
99 static const unsigned int h_mrg31k3p_A1[MRG31K3P_N] = {
100  // clang-format off
101  0, 4194304, 129, 1, 0, 0, 0, 1, 0,
102  4194304, 129, 0, 0, 4194304, 129, 1, 0, 0,
103  8192, 1082130432, 16641, 129, 8192, 541065216, 4194304, 129, 0,
104  1153433697, 2154945, 408969216, 3170304, 1153433697, 2148753, 16657, 3170304, 8388673,
105  2114723322, 1721212208, 372069324, 2050484945, 2114723322, 840597819, 2104058429, 2050484945, 1854761289,
106  2031391056, 1474597190, 220631129, 667596721, 2031391056, 1804643306, 629934405, 667596721, 667011916,
107  1626637155, 47085990, 25108805, 1565027687, 1626637155, 685757807, 621260874, 1565027687, 1315045259,
108  186789822, 229794953, 948835832, 1072773560, 186789822, 529689580, 686639683, 1072773560, 2051914008,
109  133777926, 1849297334, 1160315623, 391879376, 133777926, 976116713, 1472516881, 391879376, 1133340572,
110  315040025, 1357549030, 448994521, 1634902263, 315040025, 318362774, 468588410, 1634902263, 876161549,
111  1108588757, 1006700199, 1139321936, 624776875, 1108588757, 288253948, 85470327, 624776875, 609299647,
112  1800574616, 1663202423, 368689287, 2000517263, 1800574616, 1059509691, 1106925817, 2000517263, 754030956,
113  1086502913, 1682234256, 1789246123, 1245759969, 1086502913, 1809824555, 1329155292, 1245759969, 161160027,
114  1720262475, 565559801, 1398990386, 1325970531, 1720262475, 147733919, 866797547, 1325970531, 1806649895,
115  1476358256, 539279285, 975405418, 1139568166, 1476358256, 377670014, 1068345918, 1139568166, 1214224795,
116  400054507, 1914771670, 200204594, 1965916860, 400054507, 1122402837, 258408198, 1965916860, 1448125803,
117  2949404, 1576782032, 520268929, 1086098496, 2949404, 1306225290, 1408487222, 1086098496, 847447860,
118  381424493, 1433687186, 455906132, 1518425721, 381424493, 923210727, 1755108478, 1518425721, 1996997890,
119  928372573, 545485986, 280054605, 1250707970, 928372573, 534654589, 2085039616, 1250707970, 924300230,
120  1362662654, 1947668898, 168367491, 201071095, 1362662654, 1985024917, 2146224277, 201071095, 733519514,
121  1620396146, 958413413, 1981393580, 581363082, 1620396146, 1452205810, 2042210936, 581363082, 1113090973,
122  580884245, 1414992990, 1420238151, 909956241, 580884245, 805041652, 938481596, 909956241, 864263945,
123  1232863855, 1411246633, 1387550558, 1275940370, 1232863855, 1333257090, 1458638251, 1275940370, 1586530792,
124  265378350, 1344095500, 1646881501, 545475645, 265378350, 1087177574, 274782294, 545475645, 2051615169,
125  1364138796, 806636338, 1935176304, 414533208, 1364138796, 436727951, 619330410, 414533208, 1992074766,
126  1803497226, 1844275260, 2103387029, 382542847, 1803497226, 1847722410, 463796751, 382542847, 1739676813,
127  1913524296, 1430627077, 1356264156, 1658582521, 1913524296, 1456747786, 1393006903, 1658582521, 606375036,
128  120859840, 472996648, 1037593448, 1522934925, 120859840, 2026108949, 1880188197, 1522934925, 1035740173,
129  2111757135, 1248103941, 85606846, 932904582, 2111757135, 684245126, 71892866, 932904582, 492615376,
130  1190592709, 1401162145, 2104012173, 665549414, 1190592709, 972043236, 656774461, 665549414, 2007199226,
131  667839840, 1878445499, 142470751, 483872066, 667839840, 526934549, 20731924, 483872066, 583913268,
132  562420240, 633335206, 670353591, 1703206865, 562420240, 827140918, 589062547, 1703206865, 1018448863,
133  1408922715, 297418199, 2051604018, 1514148312, 1408922715, 462233038, 1585063407, 1514148312, 1477130056,
134  741306356, 684854080, 1857139347, 613694191, 741306356, 1828700450, 480296454, 613694191, 715202453,
135  1047704485, 1456393032, 1648359057, 262485378, 1047704485, 1984362669, 215148577, 262485378, 908872241,
136  1863657812, 1890266319, 666587201, 421346344, 1863657812, 1721671217, 779115651, 421346344, 1312682278,
137  523503690, 2020624237, 1690539270, 1061876039, 523503690, 647012853, 154840044, 1061876039, 607087348,
138  702121434, 460891510, 195545005, 384400534, 702121434, 1978478775, 1313815529, 384400534, 796024380,
139  2141457694, 989525486, 316892471, 69045171, 2141457694, 1312352040, 1658242117, 69045171, 1848811964,
140  312098455, 52959419, 1841143700, 80861072, 312098455, 522563535, 1502295285, 80861072, 1429043452,
141  483325749, 1255376843, 823834294, 1737690958, 483325749, 1998569027, 581496225, 1737690958, 880648894,
142  951315709, 320387170, 790882849, 988313318, 951315709, 1501250598, 461110923, 988313318, 367406846,
143  786673668, 1116857731, 566863927, 1535933019, 786673668, 732176198, 471796266, 1535933019, 609591423,
144  1820693727, 995258782, 742860132, 105641566, 1820693727, 600787875, 204423191, 105641566, 1723825471,
145  1631817342, 1581973938, 1881330950, 980119244, 1631817342, 724421627, 1071033915, 980119244, 1382261543,
146  131983533, 1244304830, 2005033071, 315191773, 131983533, 1390489861, 1492376236, 315191773, 1555132095,
147  649479311, 854605130, 321726041, 518555962, 649479311, 1684064517, 412586605, 518555962, 191494342,
148  1346575254, 2047163226, 2135287938, 116435580, 1346575254, 1526842117, 194954746, 116435580, 1371360307,
149  2025597527, 567446578, 1643108977, 46031599, 2025597527, 1712401664, 779043794, 46031599, 69530294,
150  489637171, 1625130585, 381262278, 452428843, 489637171, 1443891863, 876845283, 452428843, 1683301222,
151  651368970, 819199709, 2031524031, 1763700054, 651368970, 1528786662, 810914742, 1763700054, 960163648,
152  198884098, 215325655, 632733037, 537614029, 198884098, 1501926955, 744117887, 537614029, 1812237782,
153  1319538504, 262631980, 395918435, 569072577, 1319538504, 525761662, 986258115, 569072577, 499722939,
154  1873712945, 1328139957, 636168787, 1236821385, 1873712945, 1824846466, 1046270020, 1236821385, 1586456777,
155  2132644776, 1561739817, 2116746853, 1448064655, 2132644776, 959126094, 7435086, 1448064655, 731732719,
156  1170264917, 1887271366, 2055201704, 581935238, 1170264917, 1324098038, 1275448490, 581935238, 454742127,
157  2046293185, 133016457, 1987176594, 714585192, 2046293185, 1842896814, 1912062268, 714585192, 717158625,
158  2141188152, 371769702, 238274411, 168318689, 2141188152, 1575206202, 1610338266, 168318689, 149942865,
159  1171704025, 72174675, 1399149001, 843204119, 1171704025, 2121542447, 482566547, 843204119, 1627940648,
160  358961052, 449506273, 225035397, 1400105905, 358961052, 778121707, 2086926958, 1400105905, 2040995230,
161  1386279708, 1147668810, 1782545300, 130348301, 1386279708, 19146448, 283150143, 130348301, 47743705,
162  796733104, 729200619, 621776084, 420998971, 796733104, 1554656243, 78640239, 420998971, 331011766,
163  670353591, 1685250609, 1474479719, 827140918, 670353591, 383400860, 1018448863, 827140918, 806776465,
164  1646003433, 516429741, 823438334, 1571216288, 1646003433, 916014143, 672987287, 1571216288, 1011349101,
165  // clang-format on
166 };
167 
168 static const __device__ unsigned int d_mrg31k3p_A2[MRG31K3P_N] = {
169  // clang-format off
170  32768, 0, 32769, 1, 0, 0, 0, 1, 0,
171  1073741824, 32769, 1073774592, 32768, 0, 32769, 1, 0, 0,
172  647927940, 1418936320, 2066843192, 345227265, 1073774592, 1418936320, 1073741824, 32769, 1073774592,
173  1314440335, 617121792, 1628410894, 879507346, 565536787, 617121792, 1873224312, 2135609866, 565536787,
174  813564905, 1320864099, 1072638028, 53376886, 1941766342, 1320864099, 985989666, 1865965032, 1941766342,
175  969605357, 1637560648, 855544258, 1362726736, 1476787835, 1637560648, 5030508, 1877659175, 1476787835,
176  633780322, 1737004819, 586803631, 999008403, 1045985094, 1737004819, 868697656, 130701240, 1045985094,
177  115137691, 1307913292, 141093694, 2133573813, 2107617810, 1307913292, 1363330341, 41528283, 2107617810,
178  900827702, 379583115, 1676012592, 1008216312, 233031422, 379583115, 1067943171, 1696576368, 233031422,
179  1617670309, 153551074, 1398493661, 91002977, 310179625, 153551074, 390911161, 328363064, 310179625,
180  1357310439, 1323429466, 62109082, 1522538381, 670277159, 1323429466, 1745128153, 1944237068, 670277159,
181  1784622088, 295466624, 1221707205, 1225642127, 1788557010, 295466624, 1655905884, 438618808, 1788557010,
182  317985026, 330742340, 448778905, 1412650741, 1281856862, 330742340, 1144550175, 78995997, 1281856862,
183  481763475, 1204434680, 2141494556, 1422794534, 1910526032, 1204434680, 1554881186, 1773241040, 1910526032,
184  282271498, 1991744193, 1428470436, 1741920224, 595721286, 1991744193, 1005276946, 755452977, 595721286,
185  1993242805, 2087979925, 1317159425, 763765939, 1439849319, 2087979925, 1774051695, 449837709, 1439849319,
186  2006177490, 722230104, 1340090108, 100044798, 766132180, 722230104, 325198558, 1850475831, 766132180,
187  1367472795, 783478871, 1399986914, 844767696, 812253577, 783478871, 1524985129, 1586273954, 812253577,
188  219328683, 627687580, 108788941, 2050410997, 13488160, 627687580, 616819112, 2039542529, 13488160,
189  580750845, 2058508653, 1158102041, 1323088288, 745737092, 2058508653, 1508575166, 773154801, 745737092,
190  45080292, 1661978879, 1702151287, 2058520224, 401449229, 1661978879, 1555681549, 1952222894, 401449229,
191  2015651827, 140756174, 1500648674, 343440586, 858443739, 140756174, 592491377, 795175789, 858443739,
192  164383728, 2048795949, 664762374, 1068738274, 568359628, 2048795949, 1181628951, 201571276, 568359628,
193  908277196, 869088079, 94576347, 1912724980, 578963250, 869088079, 1535538612, 431712934, 578963250,
194  1398999701, 740552586, 2076371924, 1986051751, 1308679528, 740552586, 1584619174, 682655760, 1308679528,
195  1990327868, 1399459270, 582702598, 1997343440, 1257506131, 1399459270, 790833727, 1388717897, 1257506131,
196  1492699803, 1433982978, 1237001632, 630009911, 885708082, 1433982978, 1506983307, 703010240, 885708082,
197  285576484, 1260302795, 424966911, 367851702, 228461275, 1260302795, 380787265, 1635798751, 228461275,
198  1443969674, 898920571, 891253751, 1902853755, 308107099, 898920571, 831514667, 1835447851, 308107099,
199  994949952, 198447863, 587308601, 839827894, 1247469245, 198447863, 1451045649, 2092425680, 1247469245,
200  251618763, 124162616, 235520856, 2058409934, 2074507841, 124162616, 2068367606, 1855152345, 2074507841,
201  201761503, 1759261085, 593948768, 827049092, 434861827, 1759261085, 2082965909, 1150753916, 434861827,
202  1240385784, 372397750, 134631825, 1536826866, 495118246, 372397750, 1847920968, 864887505, 495118246,
203  322688568, 1536133357, 1895436234, 1827243, 576542156, 1536133357, 1130366221, 1743522686, 576542156,
204  1931434023, 910585211, 345731164, 604031503, 42271783, 910585211, 265568951, 2106477822, 42271783,
205  39627827, 479453126, 1969966590, 485858893, 702982709, 479453126, 912566629, 918972396, 702982709,
206  900429713, 1941084875, 1197421431, 760092417, 463100699, 1941084875, 1215571943, 34579485, 463100699,
207  1577284327, 1276676196, 699135781, 1252625923, 2130774469, 1276676196, 287075064, 263024791, 2130774469,
208  513765688, 82922892, 152229673, 69273404, 430809419, 82922892, 682204778, 668555290, 430809419,
209  190371932, 1635428571, 1297683401, 2052085612, 944774143, 1635428571, 1786947956, 56142418, 944774143,
210  566013561, 1889079356, 2145085793, 828472628, 1396862975, 1889079356, 523734705, 1610590556, 1396862975,
211  1792877373, 906764528, 542141157, 710332602, 1961068818, 906764528, 2119704107, 1923272181, 1961068818,
212  1969877446, 422474587, 969169389, 1414763689, 268009167, 422474587, 2034889164, 879715687, 268009167,
213  87718469, 121890570, 170625350, 1362967968, 1280061087, 121890570, 717593980, 1958671378, 1280061087,
214  1210786378, 876481504, 2049980045, 1546059986, 706866319, 876481504, 489036658, 1158615140, 706866319,
215  1189552724, 20989072, 269567383, 770156239, 1690141580, 20989072, 154790430, 903957597, 1690141580,
216  1690944505, 969736270, 1627452966, 1983744384, 2047235923, 969736270, 1691445540, 557991075, 2047235923,
217  1936363419, 1100132076, 1810066552, 1170284395, 1296581262, 1100132076, 1868127450, 1938279769, 1296581262,
218  1694349818, 635737758, 1382916034, 1192880368, 1504314152, 635737758, 781308084, 1338450694, 1504314152,
219  1878518942, 886920697, 1350207018, 8888207, 537200131, 886920697, 2000891525, 1122859035, 537200131,
220  729740288, 836854758, 1843209703, 1530260137, 416790722, 836854758, 507253722, 1200659101, 416790722,
221  2032396621, 1384287554, 2026197481, 700023620, 706222760, 1384287554, 682375558, 2145574203, 706222760,
222  302197641, 1990420817, 190519420, 908756877, 1020435098, 1990420817, 1966585721, 884921781, 1020435098,
223  68760530, 1870518584, 997715174, 1503562259, 574607615, 1870518584, 1183720578, 816764253, 574607615,
224  1708344133, 1606991363, 591550640, 882686839, 1999480332, 1606991363, 610230128, 2033388183, 1999480332,
225  841972544, 396108542, 491107052, 905292782, 1256158274, 396108542, 1473267489, 1982451729, 1256158274,
226  1372254995, 836608500, 1989549396, 1928707414, 1311413013, 836608500, 1112388734, 57025069, 1311413013,
227  112784681, 809236105, 1268891956, 1211160695, 55053420, 809236105, 1820803489, 75265500, 55053420,
228  712258206, 1554233137, 1242834134, 1241108644, 710532716, 1554233137, 602888782, 289764289, 710532716,
229  2033053696, 497096546, 352611996, 1831733625, 1364712746, 497096546, 641259069, 1975896148, 1364712746,
230  1108246666, 1838060851, 2084491956, 1878184093, 901938803, 1838060851, 44749841, 84873083, 901938803,
231  2041302020, 1214133801, 565311654, 988522410, 317050197, 1214133801, 1148771268, 923159877, 317050197,
232  1733455881, 598501892, 1843117501, 217561458, 107899838, 598501892, 984329288, 603388854, 107899838,
233  507758885, 224620200, 1151968532, 383536360, 1886789292, 224620200, 1916857550, 2075773710, 1886789292,
234  // clang-format on
235 };
236 
237 static const unsigned int h_mrg31k3p_A2[MRG31K3P_N] = {
238  // clang-format off
239  32768, 0, 32769, 1, 0, 0, 0, 1, 0,
240  1073741824, 32769, 1073774592, 32768, 0, 32769, 1, 0, 0,
241  647927940, 1418936320, 2066843192, 345227265, 1073774592, 1418936320, 1073741824, 32769, 1073774592,
242  1314440335, 617121792, 1628410894, 879507346, 565536787, 617121792, 1873224312, 2135609866, 565536787,
243  813564905, 1320864099, 1072638028, 53376886, 1941766342, 1320864099, 985989666, 1865965032, 1941766342,
244  969605357, 1637560648, 855544258, 1362726736, 1476787835, 1637560648, 5030508, 1877659175, 1476787835,
245  633780322, 1737004819, 586803631, 999008403, 1045985094, 1737004819, 868697656, 130701240, 1045985094,
246  115137691, 1307913292, 141093694, 2133573813, 2107617810, 1307913292, 1363330341, 41528283, 2107617810,
247  900827702, 379583115, 1676012592, 1008216312, 233031422, 379583115, 1067943171, 1696576368, 233031422,
248  1617670309, 153551074, 1398493661, 91002977, 310179625, 153551074, 390911161, 328363064, 310179625,
249  1357310439, 1323429466, 62109082, 1522538381, 670277159, 1323429466, 1745128153, 1944237068, 670277159,
250  1784622088, 295466624, 1221707205, 1225642127, 1788557010, 295466624, 1655905884, 438618808, 1788557010,
251  317985026, 330742340, 448778905, 1412650741, 1281856862, 330742340, 1144550175, 78995997, 1281856862,
252  481763475, 1204434680, 2141494556, 1422794534, 1910526032, 1204434680, 1554881186, 1773241040, 1910526032,
253  282271498, 1991744193, 1428470436, 1741920224, 595721286, 1991744193, 1005276946, 755452977, 595721286,
254  1993242805, 2087979925, 1317159425, 763765939, 1439849319, 2087979925, 1774051695, 449837709, 1439849319,
255  2006177490, 722230104, 1340090108, 100044798, 766132180, 722230104, 325198558, 1850475831, 766132180,
256  1367472795, 783478871, 1399986914, 844767696, 812253577, 783478871, 1524985129, 1586273954, 812253577,
257  219328683, 627687580, 108788941, 2050410997, 13488160, 627687580, 616819112, 2039542529, 13488160,
258  580750845, 2058508653, 1158102041, 1323088288, 745737092, 2058508653, 1508575166, 773154801, 745737092,
259  45080292, 1661978879, 1702151287, 2058520224, 401449229, 1661978879, 1555681549, 1952222894, 401449229,
260  2015651827, 140756174, 1500648674, 343440586, 858443739, 140756174, 592491377, 795175789, 858443739,
261  164383728, 2048795949, 664762374, 1068738274, 568359628, 2048795949, 1181628951, 201571276, 568359628,
262  908277196, 869088079, 94576347, 1912724980, 578963250, 869088079, 1535538612, 431712934, 578963250,
263  1398999701, 740552586, 2076371924, 1986051751, 1308679528, 740552586, 1584619174, 682655760, 1308679528,
264  1990327868, 1399459270, 582702598, 1997343440, 1257506131, 1399459270, 790833727, 1388717897, 1257506131,
265  1492699803, 1433982978, 1237001632, 630009911, 885708082, 1433982978, 1506983307, 703010240, 885708082,
266  285576484, 1260302795, 424966911, 367851702, 228461275, 1260302795, 380787265, 1635798751, 228461275,
267  1443969674, 898920571, 891253751, 1902853755, 308107099, 898920571, 831514667, 1835447851, 308107099,
268  994949952, 198447863, 587308601, 839827894, 1247469245, 198447863, 1451045649, 2092425680, 1247469245,
269  251618763, 124162616, 235520856, 2058409934, 2074507841, 124162616, 2068367606, 1855152345, 2074507841,
270  201761503, 1759261085, 593948768, 827049092, 434861827, 1759261085, 2082965909, 1150753916, 434861827,
271  1240385784, 372397750, 134631825, 1536826866, 495118246, 372397750, 1847920968, 864887505, 495118246,
272  322688568, 1536133357, 1895436234, 1827243, 576542156, 1536133357, 1130366221, 1743522686, 576542156,
273  1931434023, 910585211, 345731164, 604031503, 42271783, 910585211, 265568951, 2106477822, 42271783,
274  39627827, 479453126, 1969966590, 485858893, 702982709, 479453126, 912566629, 918972396, 702982709,
275  900429713, 1941084875, 1197421431, 760092417, 463100699, 1941084875, 1215571943, 34579485, 463100699,
276  1577284327, 1276676196, 699135781, 1252625923, 2130774469, 1276676196, 287075064, 263024791, 2130774469,
277  513765688, 82922892, 152229673, 69273404, 430809419, 82922892, 682204778, 668555290, 430809419,
278  190371932, 1635428571, 1297683401, 2052085612, 944774143, 1635428571, 1786947956, 56142418, 944774143,
279  566013561, 1889079356, 2145085793, 828472628, 1396862975, 1889079356, 523734705, 1610590556, 1396862975,
280  1792877373, 906764528, 542141157, 710332602, 1961068818, 906764528, 2119704107, 1923272181, 1961068818,
281  1969877446, 422474587, 969169389, 1414763689, 268009167, 422474587, 2034889164, 879715687, 268009167,
282  87718469, 121890570, 170625350, 1362967968, 1280061087, 121890570, 717593980, 1958671378, 1280061087,
283  1210786378, 876481504, 2049980045, 1546059986, 706866319, 876481504, 489036658, 1158615140, 706866319,
284  1189552724, 20989072, 269567383, 770156239, 1690141580, 20989072, 154790430, 903957597, 1690141580,
285  1690944505, 969736270, 1627452966, 1983744384, 2047235923, 969736270, 1691445540, 557991075, 2047235923,
286  1936363419, 1100132076, 1810066552, 1170284395, 1296581262, 1100132076, 1868127450, 1938279769, 1296581262,
287  1694349818, 635737758, 1382916034, 1192880368, 1504314152, 635737758, 781308084, 1338450694, 1504314152,
288  1878518942, 886920697, 1350207018, 8888207, 537200131, 886920697, 2000891525, 1122859035, 537200131,
289  729740288, 836854758, 1843209703, 1530260137, 416790722, 836854758, 507253722, 1200659101, 416790722,
290  2032396621, 1384287554, 2026197481, 700023620, 706222760, 1384287554, 682375558, 2145574203, 706222760,
291  302197641, 1990420817, 190519420, 908756877, 1020435098, 1990420817, 1966585721, 884921781, 1020435098,
292  68760530, 1870518584, 997715174, 1503562259, 574607615, 1870518584, 1183720578, 816764253, 574607615,
293  1708344133, 1606991363, 591550640, 882686839, 1999480332, 1606991363, 610230128, 2033388183, 1999480332,
294  841972544, 396108542, 491107052, 905292782, 1256158274, 396108542, 1473267489, 1982451729, 1256158274,
295  1372254995, 836608500, 1989549396, 1928707414, 1311413013, 836608500, 1112388734, 57025069, 1311413013,
296  112784681, 809236105, 1268891956, 1211160695, 55053420, 809236105, 1820803489, 75265500, 55053420,
297  712258206, 1554233137, 1242834134, 1241108644, 710532716, 1554233137, 602888782, 289764289, 710532716,
298  2033053696, 497096546, 352611996, 1831733625, 1364712746, 497096546, 641259069, 1975896148, 1364712746,
299  1108246666, 1838060851, 2084491956, 1878184093, 901938803, 1838060851, 44749841, 84873083, 901938803,
300  2041302020, 1214133801, 565311654, 988522410, 317050197, 1214133801, 1148771268, 923159877, 317050197,
301  1733455881, 598501892, 1843117501, 217561458, 107899838, 598501892, 984329288, 603388854, 107899838,
302  507758885, 224620200, 1151968532, 383536360, 1886789292, 224620200, 1916857550, 2075773710, 1886789292,
303  // clang-format on
304 };
305 
306 static const __device__ unsigned int d_mrg31k3p_A1P72[MRG31K3P_N] = {
307  // clang-format off
308  1516919229, 758510237, 499121365, 1884998244, 1516919229, 335398200, 601897748, 1884998244, 358115744,
309  1698053532, 465195060, 1970364842, 1530165711, 1698053532, 667727351, 920769984, 1530165711, 1964690609,
310  446522508, 1159864719, 227261603, 967297001, 446522508, 1254444459, 1957442102, 967297001, 216206963,
311  192962807, 1827843892, 640770341, 21614372, 192962807, 603064909, 687208484, 21614372, 40625659,
312  287996737, 615994322, 672698674, 188333479, 287996737, 988919539, 640258125, 188333479, 2111268472,
313  1785922250, 121913950, 2056399925, 1031417848, 1785922250, 153453894, 900136208, 1031417848, 643313484,
314  875905623, 237341159, 1461720509, 1626105692, 875905623, 922031027, 822858370, 1626105692, 329038958,
315  1070040588, 1514860938, 605256199, 1686055074, 1070040588, 832090614, 56391795, 1686055074, 587585488,
316  1452177032, 2006630243, 561389490, 154176297, 1452177032, 760620830, 771665648, 154176297, 444036913,
317  1426991517, 1767408547, 1269035208, 858842645, 1426991517, 1677650736, 1711015370, 858842645, 1650142106,
318  383872123, 1528246888, 1309365923, 2024456490, 383872123, 274390280, 2016433423, 2024456490, 1390761040,
319  1246317022, 1244715268, 620321426, 1469758778, 1246317022, 2072316837, 1364484436, 1469758778, 1965072301,
320  1376418744, 509646979, 796579342, 1337947838, 1376418744, 1857599687, 1679116003, 1337947838, 421032213,
321  857793380, 2054292320, 1064272952, 1872732104, 857793380, 138032017, 1033193939, 1872732104, 1044519103,
322  750036143, 1161334237, 1558612811, 977617553, 750036143, 551250748, 736748304, 977617553, 1755230141,
323  727953836, 37180940, 2114560913, 1531283510, 727953836, 1955181383, 681042847, 1531283510, 1133471162,
324  801465127, 1174582241, 1616880209, 2126723282, 801465127, 289624645, 834603155, 2126723282, 183272355,
325  1181399498, 1905769507, 36298092, 749403583, 1181399498, 29451941, 116758430, 749403583, 1592213246,
326  1221328335, 383784873, 333511784, 718413245, 1221328335, 663400090, 1736447282, 718413245, 2081963460,
327  2121598261, 1792927429, 1772029414, 896036145, 2121598261, 511914639, 453441652, 896036145, 1634173369,
328  1984745436, 915707657, 1654510134, 1561011545, 1984745436, 1613107574, 1277688874, 1561011545, 1806089182,
329  0, 2146689, 0, 0, 0, 2146689, 16641, 0, 1069547487,
330  0, 0, 1921239906, 1363313297, 0, 1536646846, 2142748478, 1363313297, 809509920,
331  66750221, 65330683, 1019085500, 1972264774, 66750221, 841619147, 2020830546, 1972264774, 792612182,
332  623416331, 2128674825, 829534783, 1787676628, 623416331, 162248998, 1482854989, 1787676628, 297558722,
333  820111461, 896364577, 1202338804, 1590800661, 820111461, 1878918984, 1412926708, 1590800661, 1941425310,
334  735019899, 2048655112, 2008269626, 1979932868, 735019899, 1222704472, 242538570, 1979932868, 424167695,
335  1454076251, 1934759817, 75338489, 216997100, 1454076251, 944480251, 1438977317, 216997100, 222334677,
336  192789109, 1360448366, 1099902144, 557882655, 192789109, 155593504, 1782452277, 557882655, 2114493292,
337  713611054, 708652832, 379262556, 1900716266, 713611054, 1870957007, 1029980306, 1900716266, 99230990,
338  381010121, 1603087966, 1793084142, 912846520, 381010121, 829553127, 805494327, 912846520, 148750170,
339  1408185467, 1427181283, 1510874885, 1726369694, 1408185467, 1834851259, 1495820898, 1726369694, 994222150,
340  44843381, 789025048, 94923239, 1515627404, 44843381, 1272604102, 292866869, 1515627404, 895715087,
341  1058231077, 1341120276, 1258148326, 991935531, 1058231077, 1158827830, 1091048565, 991935531, 565366555,
342  1455037813, 2013427336, 1726377802, 1345155578, 1455037813, 2035965903, 1114495245, 1345155578, 324593289,
343  1273711912, 637164659, 1631962772, 1177952078, 1273711912, 1381450083, 510123717, 1177952078, 446437689,
344  2010581145, 1793773126, 1096019963, 75084919, 2010581145, 1294504300, 2140871404, 75084919, 1016544012,
345  1498901823, 235112706, 740326496, 1820279411, 1498901823, 1896696160, 1546241796, 1820279411, 405362780,
346  149606741, 184883570, 358729377, 652020090, 149606741, 745646829, 1853614974, 652020090, 691245919,
347  2005525734, 1357865130, 1767350024, 80289028, 2005525734, 267189276, 401603076, 80289028, 1987964137,
348  2072145098, 2131402664, 1575766865, 927809050, 2072145098, 2020538633, 881315413, 927809050, 1713907939,
349  856503340, 2054389709, 2034741677, 232186272, 856503340, 309105757, 1334168973, 232186272, 1336242501,
350  2106799039, 986807912, 1178472986, 774904812, 2106799039, 1069180506, 1856122987, 774904812, 1654383271,
351  531726619, 1663739363, 317885787, 951352354, 531726619, 1519274917, 644369407, 951352354, 534662389,
352  159746903, 1245652383, 1112433051, 308272393, 159746903, 133559729, 1615809872, 308272393, 894788528,
353  1038219652, 18216470, 1766133299, 379928477, 1038219652, 432710518, 586004947, 379928477, 1225818791,
354  1487530228, 275537595, 2114928731, 1131754520, 1487530228, 172663841, 1416347084, 1131754520, 1702867733,
355  32170162, 1534397985, 161702529, 1849088274, 32170162, 381547189, 1184906094, 1849088274, 642224276,
356  896241465, 168931119, 1327219052, 76877160, 896241465, 806315176, 239310746, 76877160, 1323593069,
357  1874582332, 1188510, 1813116237, 1662124010, 1874582332, 90216862, 1682062521, 1662124010, 1095350814,
358  1803808400, 926038245, 36645026, 316580111, 1803808400, 1936247188, 897309151, 316580111, 1940467875,
359  2075587016, 1770077961, 1897571433, 913656499, 2075587016, 1017513060, 1805780984, 913656499, 2105614532,
360  1891648234, 144874618, 396155802, 552427257, 1891648234, 1246897610, 26313033, 552427257, 511670826,
361  293603129, 1275371358, 179929319, 1865876727, 293603129, 235733980, 1783073521, 1865876727, 1426776947,
362  14816320, 746642637, 2038989453, 1613933485, 14816320, 1091617655, 1123821876, 1613933485, 868259371,
363  867365198, 1221888551, 779757833, 1121404358, 867365198, 1462967940, 1010170440, 1121404358, 563402321,
364  73279627, 823258938, 1063650596, 174716954, 73279627, 713865790, 1437189608, 174716954, 171135912,
365  1620809839, 879825918, 1184601952, 1890312047, 1620809839, 1484307982, 494273905, 1890312047, 72146285,
366  1266710339, 1210337590, 1323536716, 1991272021, 1266710339, 849932547, 805652307, 1991272021, 1990751391,
367  863887666, 1090773817, 69681024, 1848374929, 863887666, 478989630, 952601221, 1848374929, 304184685,
368  1353679080, 1245383923, 1510330256, 477828468, 1353679080, 1831653224, 1179500066, 477828468, 1208769033,
369  1302366464, 1554680558, 324931800, 2100061018, 1302366464, 99349693, 1332542957, 2100061018, 1379455617,
370  1702500920, 1849582496, 1656874625, 828554832, 1702500920, 1512419905, 1143731069, 828554832, 102237247,
371  645483870, 620564265, 664205456, 770918242, 645483870, 1281758597, 575939555, 770918242, 765993804,
372  // clang-format on
373 };
374 
375 static const unsigned int h_mrg31k3p_A1P72[MRG31K3P_N] = {
376  // clang-format off
377  1516919229, 758510237, 499121365, 1884998244, 1516919229, 335398200, 601897748, 1884998244, 358115744,
378  1698053532, 465195060, 1970364842, 1530165711, 1698053532, 667727351, 920769984, 1530165711, 1964690609,
379  446522508, 1159864719, 227261603, 967297001, 446522508, 1254444459, 1957442102, 967297001, 216206963,
380  192962807, 1827843892, 640770341, 21614372, 192962807, 603064909, 687208484, 21614372, 40625659,
381  287996737, 615994322, 672698674, 188333479, 287996737, 988919539, 640258125, 188333479, 2111268472,
382  1785922250, 121913950, 2056399925, 1031417848, 1785922250, 153453894, 900136208, 1031417848, 643313484,
383  875905623, 237341159, 1461720509, 1626105692, 875905623, 922031027, 822858370, 1626105692, 329038958,
384  1070040588, 1514860938, 605256199, 1686055074, 1070040588, 832090614, 56391795, 1686055074, 587585488,
385  1452177032, 2006630243, 561389490, 154176297, 1452177032, 760620830, 771665648, 154176297, 444036913,
386  1426991517, 1767408547, 1269035208, 858842645, 1426991517, 1677650736, 1711015370, 858842645, 1650142106,
387  383872123, 1528246888, 1309365923, 2024456490, 383872123, 274390280, 2016433423, 2024456490, 1390761040,
388  1246317022, 1244715268, 620321426, 1469758778, 1246317022, 2072316837, 1364484436, 1469758778, 1965072301,
389  1376418744, 509646979, 796579342, 1337947838, 1376418744, 1857599687, 1679116003, 1337947838, 421032213,
390  857793380, 2054292320, 1064272952, 1872732104, 857793380, 138032017, 1033193939, 1872732104, 1044519103,
391  750036143, 1161334237, 1558612811, 977617553, 750036143, 551250748, 736748304, 977617553, 1755230141,
392  727953836, 37180940, 2114560913, 1531283510, 727953836, 1955181383, 681042847, 1531283510, 1133471162,
393  801465127, 1174582241, 1616880209, 2126723282, 801465127, 289624645, 834603155, 2126723282, 183272355,
394  1181399498, 1905769507, 36298092, 749403583, 1181399498, 29451941, 116758430, 749403583, 1592213246,
395  1221328335, 383784873, 333511784, 718413245, 1221328335, 663400090, 1736447282, 718413245, 2081963460,
396  2121598261, 1792927429, 1772029414, 896036145, 2121598261, 511914639, 453441652, 896036145, 1634173369,
397  1984745436, 915707657, 1654510134, 1561011545, 1984745436, 1613107574, 1277688874, 1561011545, 1806089182,
398  0, 2146689, 0, 0, 0, 2146689, 16641, 0, 1069547487,
399  0, 0, 1921239906, 1363313297, 0, 1536646846, 2142748478, 1363313297, 809509920,
400  66750221, 65330683, 1019085500, 1972264774, 66750221, 841619147, 2020830546, 1972264774, 792612182,
401  623416331, 2128674825, 829534783, 1787676628, 623416331, 162248998, 1482854989, 1787676628, 297558722,
402  820111461, 896364577, 1202338804, 1590800661, 820111461, 1878918984, 1412926708, 1590800661, 1941425310,
403  735019899, 2048655112, 2008269626, 1979932868, 735019899, 1222704472, 242538570, 1979932868, 424167695,
404  1454076251, 1934759817, 75338489, 216997100, 1454076251, 944480251, 1438977317, 216997100, 222334677,
405  192789109, 1360448366, 1099902144, 557882655, 192789109, 155593504, 1782452277, 557882655, 2114493292,
406  713611054, 708652832, 379262556, 1900716266, 713611054, 1870957007, 1029980306, 1900716266, 99230990,
407  381010121, 1603087966, 1793084142, 912846520, 381010121, 829553127, 805494327, 912846520, 148750170,
408  1408185467, 1427181283, 1510874885, 1726369694, 1408185467, 1834851259, 1495820898, 1726369694, 994222150,
409  44843381, 789025048, 94923239, 1515627404, 44843381, 1272604102, 292866869, 1515627404, 895715087,
410  1058231077, 1341120276, 1258148326, 991935531, 1058231077, 1158827830, 1091048565, 991935531, 565366555,
411  1455037813, 2013427336, 1726377802, 1345155578, 1455037813, 2035965903, 1114495245, 1345155578, 324593289,
412  1273711912, 637164659, 1631962772, 1177952078, 1273711912, 1381450083, 510123717, 1177952078, 446437689,
413  2010581145, 1793773126, 1096019963, 75084919, 2010581145, 1294504300, 2140871404, 75084919, 1016544012,
414  1498901823, 235112706, 740326496, 1820279411, 1498901823, 1896696160, 1546241796, 1820279411, 405362780,
415  149606741, 184883570, 358729377, 652020090, 149606741, 745646829, 1853614974, 652020090, 691245919,
416  2005525734, 1357865130, 1767350024, 80289028, 2005525734, 267189276, 401603076, 80289028, 1987964137,
417  2072145098, 2131402664, 1575766865, 927809050, 2072145098, 2020538633, 881315413, 927809050, 1713907939,
418  856503340, 2054389709, 2034741677, 232186272, 856503340, 309105757, 1334168973, 232186272, 1336242501,
419  2106799039, 986807912, 1178472986, 774904812, 2106799039, 1069180506, 1856122987, 774904812, 1654383271,
420  531726619, 1663739363, 317885787, 951352354, 531726619, 1519274917, 644369407, 951352354, 534662389,
421  159746903, 1245652383, 1112433051, 308272393, 159746903, 133559729, 1615809872, 308272393, 894788528,
422  1038219652, 18216470, 1766133299, 379928477, 1038219652, 432710518, 586004947, 379928477, 1225818791,
423  1487530228, 275537595, 2114928731, 1131754520, 1487530228, 172663841, 1416347084, 1131754520, 1702867733,
424  32170162, 1534397985, 161702529, 1849088274, 32170162, 381547189, 1184906094, 1849088274, 642224276,
425  896241465, 168931119, 1327219052, 76877160, 896241465, 806315176, 239310746, 76877160, 1323593069,
426  1874582332, 1188510, 1813116237, 1662124010, 1874582332, 90216862, 1682062521, 1662124010, 1095350814,
427  1803808400, 926038245, 36645026, 316580111, 1803808400, 1936247188, 897309151, 316580111, 1940467875,
428  2075587016, 1770077961, 1897571433, 913656499, 2075587016, 1017513060, 1805780984, 913656499, 2105614532,
429  1891648234, 144874618, 396155802, 552427257, 1891648234, 1246897610, 26313033, 552427257, 511670826,
430  293603129, 1275371358, 179929319, 1865876727, 293603129, 235733980, 1783073521, 1865876727, 1426776947,
431  14816320, 746642637, 2038989453, 1613933485, 14816320, 1091617655, 1123821876, 1613933485, 868259371,
432  867365198, 1221888551, 779757833, 1121404358, 867365198, 1462967940, 1010170440, 1121404358, 563402321,
433  73279627, 823258938, 1063650596, 174716954, 73279627, 713865790, 1437189608, 174716954, 171135912,
434  1620809839, 879825918, 1184601952, 1890312047, 1620809839, 1484307982, 494273905, 1890312047, 72146285,
435  1266710339, 1210337590, 1323536716, 1991272021, 1266710339, 849932547, 805652307, 1991272021, 1990751391,
436  863887666, 1090773817, 69681024, 1848374929, 863887666, 478989630, 952601221, 1848374929, 304184685,
437  1353679080, 1245383923, 1510330256, 477828468, 1353679080, 1831653224, 1179500066, 477828468, 1208769033,
438  1302366464, 1554680558, 324931800, 2100061018, 1302366464, 99349693, 1332542957, 2100061018, 1379455617,
439  1702500920, 1849582496, 1656874625, 828554832, 1702500920, 1512419905, 1143731069, 828554832, 102237247,
440  645483870, 620564265, 664205456, 770918242, 645483870, 1281758597, 575939555, 770918242, 765993804,
441  // clang-format on
442 };
443 
444 static const __device__ unsigned int d_mrg31k3p_A2P72[MRG31K3P_N] = {
445  // clang-format off
446  1228857673, 1496414766, 954677935, 1133297478, 1407477216, 1496414766, 2002613992, 1639496704, 1407477216,
447  1282690299, 1795612190, 365601547, 1650534289, 420160462, 1795612190, 237875349, 92797448, 420160462,
448  505218833, 106598948, 240377218, 1527655423, 1792497038, 106598948, 1464608251, 738202147, 1792497038,
449  1302569189, 2004716257, 548890929, 1686255562, 292471243, 2004716257, 1396183817, 1077723122, 292471243,
450  1511679103, 1365813281, 1182951296, 1881826449, 63091677, 1365813281, 326135665, 842148833, 63091677,
451  1906484943, 921680632, 196823907, 464768575, 26967032, 921680632, 1317903938, 860991881, 26967032,
452  1265660338, 1815469593, 1351575494, 1228922758, 1143007602, 1815469593, 457543768, 2018459512, 1143007602,
453  1868867057, 1924149801, 428176873, 923902335, 217129940, 1924149801, 682064366, 1829279479, 217129940,
454  1966319684, 1320317703, 660439901, 1358854314, 517271518, 1320317703, 1814855550, 1853392161, 517271518,
455  1931191663, 2107925076, 330836203, 1283677495, 736570376, 2107925076, 918579860, 94332279, 736570376,
456  781285592, 1944331553, 638450083, 1260684674, 1403520183, 1944331553, 595102217, 2058917917, 1403520183,
457  1236253286, 1958401382, 1540728644, 26129294, 1869116515, 1958401382, 1870447309, 2085637800, 1869116515,
458  1401905347, 1092699728, 644454700, 44320216, 801770863, 1092699728, 435043770, 1534126837, 801770863,
459  442209260, 1545744602, 322901296, 1529427342, 1648735306, 1545744602, 1666167242, 1649849982, 1648735306,
460  1763879653, 988335134, 1669493586, 1622787936, 1717174003, 988335134, 1824020089, 311010312, 1717174003,
461  1952226836, 1613634339, 1601098186, 514223580, 865352230, 1613634339, 1759619881, 660209122, 865352230,
462  120332194, 1753280429, 715267904, 1780169940, 1185234230, 1753280429, 171226633, 198116144, 1185234230,
463  309292275, 929759701, 1253715449, 1602066707, 657643533, 929759701, 767817185, 1440124191, 657643533,
464  195827234, 625924881, 725236536, 1265929991, 736520689, 625924881, 1364226996, 2004232106, 736520689,
465  2127942035, 621908231, 1405247044, 882842737, 1605537728, 621908231, 1358459938, 1619394444, 1605537728,
466  1453441668, 1924170040, 448959804, 943497443, 1947979307, 1924170040, 1900657142, 919984545, 1947979307,
467  1357988379, 435226864, 161383746, 1827992388, 877134442, 435226864, 669895258, 2062660782, 877134442,
468  862446210, 637999621, 1961422328, 436446481, 1484932942, 637999621, 1582518977, 1380965837, 1484932942,
469  1918341115, 610284457, 921832714, 935713404, 1932221805, 610284457, 1477140493, 1802569440, 1932221805,
470  1166693335, 1111258125, 2045013533, 806057166, 2075199547, 1111258125, 910095642, 604894683, 2075199547,
471  1337340001, 933479796, 250448516, 869700825, 1956592310, 933479796, 180114152, 116335181, 1956592310,
472  1032796075, 964470743, 305424253, 1684740865, 264650108, 964470743, 1488423039, 61230582, 264650108,
473  1712024538, 699327583, 233487965, 477089965, 1955626538, 699327583, 740286143, 518048525, 1955626538,
474  1070062360, 1537084641, 1162060325, 1210633168, 1118635203, 1537084641, 425489461, 99037988, 1118635203,
475  2087553842, 1110969145, 1144785928, 933557607, 1876325521, 1110969145, 1104402037, 926990499, 1876325521,
476  1815728387, 871758224, 1545321856, 704727347, 975133878, 871758224, 1128052279, 961021402, 975133878,
477  1513608227, 1279502601, 565649640, 28327672, 976286259, 1279502601, 859771158, 1756058808, 976286259,
478  2094140247, 1737489625, 933512842, 1458276750, 471441576, 1737489625, 1263470614, 984257739, 471441576,
479  1860977403, 658703383, 2060162056, 547069801, 347885148, 658703383, 1624395424, 1512761842, 347885148,
480  1879082616, 308724097, 736059294, 487787239, 1630810561, 308724097, 1407141665, 1586204807, 1630810561,
481  1353046646, 468021422, 1721982830, 124631461, 1903157856, 468021422, 1670262955, 1326872994, 1903157856,
482  517335945, 1465221011, 1459241612, 1042549176, 100643509, 1465221011, 991629940, 568958105, 100643509,
483  1403944694, 1286617553, 360369598, 1870136409, 766248926, 1286617553, 827266830, 1410785686, 766248926,
484  196325686, 516891667, 1004127870, 1467650175, 659847991, 516891667, 1162970729, 2113729237, 659847991,
485  1032019899, 83968668, 877074995, 1317574910, 1472519814, 83968668, 150401617, 1384007859, 1472519814,
486  1741538312, 800873109, 1059523969, 2104898230, 639449994, 800873109, 1701008257, 857570799, 639449994,
487  1502112416, 1963152593, 253090559, 840407495, 2089429352, 1963152593, 591367390, 1616084871, 2089429352,
488  1319732484, 951587645, 1946666920, 57728760, 1578256903, 951587645, 719716367, 1973320061, 1578256903,
489  1355881756, 586536795, 852266854, 703919797, 1207534699, 586536795, 619897924, 737280926, 1207534699,
490  1940584308, 1721665993, 885174226, 1855604019, 763551522, 1721665993, 331389193, 465327219, 763551522,
491  1109702463, 2632136, 298184035, 1020232403, 1831750831, 2632136, 446609909, 1464210176, 1831750831,
492  784484809, 684307252, 662903252, 1159895117, 1281476674, 684307252, 212021293, 687609158, 1281476674,
493  1731308168, 1890967465, 904934541, 877846934, 1704220561, 1890967465, 354789768, 1489131816, 1704220561,
494  1587550693, 754049360, 310811546, 753708625, 2030447772, 754049360, 1492152019, 1491811284, 2030447772,
495  2014208213, 1642652920, 2067720926, 92203000, 38690287, 1642652920, 1721349286, 170899366, 38690287,
496  245548435, 1718293988, 1665512322, 1505614172, 85650285, 1718293988, 2020052636, 1807372820, 85650285,
497  2081370320, 1099098606, 2099739989, 673550388, 655180719, 1099098606, 411320890, 2133235251, 655180719,
498  1094209948, 15990642, 1941196129, 145805425, 1446281823, 15990642, 1860820163, 1990634946, 1446281823,
499  1683608456, 1683166214, 1349081652, 1550822532, 1885349336, 1683166214, 1799466284, 1667122602, 1885349336,
500  1397008732, 1449356459, 1208832805, 1557961388, 1746137315, 1449356459, 1893433983, 2002038912, 1746137315,
501  1438247187, 939961626, 1729100372, 1747761867, 1456908682, 939961626, 464594653, 1272394894, 1456908682,
502  1176204019, 1862103892, 685956562, 40192881, 530440338, 1862103892, 674067403, 999618971, 530440338,
503  1472574795, 888439292, 1144519156, 1694793075, 2022848714, 888439292, 711653837, 1518007620, 2022848714,
504  1677906195, 1532623415, 1966044219, 515348784, 227210760, 1532623415, 2069786788, 1052512157, 227210760,
505  1799019626, 995353695, 560784494, 1348234869, 439007422, 995353695, 631706404, 984587578, 439007422,
506  991695888, 1668598579, 599027790, 59784702, 452452800, 1668598579, 690969104, 1229617806, 452452800,
507  1644842953, 1858581354, 735437056, 255274869, 1164680766, 1858581354, 1186341548, 1730497642, 1164680766,
508  796789021, 1464208080, 607337906, 1241679051, 1431130166, 1464208080, 1401213391, 1178684362, 1431130166,
509  449379819, 1859560334, 1507943303, 281118586, 1370017681, 1859560334, 586645827, 1155666658, 1370017681,
510  // clang-format on
511 };
512 
513 static const unsigned int h_mrg31k3p_A2P72[MRG31K3P_N] = {
514  // clang-format off
515  1228857673, 1496414766, 954677935, 1133297478, 1407477216, 1496414766, 2002613992, 1639496704, 1407477216,
516  1282690299, 1795612190, 365601547, 1650534289, 420160462, 1795612190, 237875349, 92797448, 420160462,
517  505218833, 106598948, 240377218, 1527655423, 1792497038, 106598948, 1464608251, 738202147, 1792497038,
518  1302569189, 2004716257, 548890929, 1686255562, 292471243, 2004716257, 1396183817, 1077723122, 292471243,
519  1511679103, 1365813281, 1182951296, 1881826449, 63091677, 1365813281, 326135665, 842148833, 63091677,
520  1906484943, 921680632, 196823907, 464768575, 26967032, 921680632, 1317903938, 860991881, 26967032,
521  1265660338, 1815469593, 1351575494, 1228922758, 1143007602, 1815469593, 457543768, 2018459512, 1143007602,
522  1868867057, 1924149801, 428176873, 923902335, 217129940, 1924149801, 682064366, 1829279479, 217129940,
523  1966319684, 1320317703, 660439901, 1358854314, 517271518, 1320317703, 1814855550, 1853392161, 517271518,
524  1931191663, 2107925076, 330836203, 1283677495, 736570376, 2107925076, 918579860, 94332279, 736570376,
525  781285592, 1944331553, 638450083, 1260684674, 1403520183, 1944331553, 595102217, 2058917917, 1403520183,
526  1236253286, 1958401382, 1540728644, 26129294, 1869116515, 1958401382, 1870447309, 2085637800, 1869116515,
527  1401905347, 1092699728, 644454700, 44320216, 801770863, 1092699728, 435043770, 1534126837, 801770863,
528  442209260, 1545744602, 322901296, 1529427342, 1648735306, 1545744602, 1666167242, 1649849982, 1648735306,
529  1763879653, 988335134, 1669493586, 1622787936, 1717174003, 988335134, 1824020089, 311010312, 1717174003,
530  1952226836, 1613634339, 1601098186, 514223580, 865352230, 1613634339, 1759619881, 660209122, 865352230,
531  120332194, 1753280429, 715267904, 1780169940, 1185234230, 1753280429, 171226633, 198116144, 1185234230,
532  309292275, 929759701, 1253715449, 1602066707, 657643533, 929759701, 767817185, 1440124191, 657643533,
533  195827234, 625924881, 725236536, 1265929991, 736520689, 625924881, 1364226996, 2004232106, 736520689,
534  2127942035, 621908231, 1405247044, 882842737, 1605537728, 621908231, 1358459938, 1619394444, 1605537728,
535  1453441668, 1924170040, 448959804, 943497443, 1947979307, 1924170040, 1900657142, 919984545, 1947979307,
536  1357988379, 435226864, 161383746, 1827992388, 877134442, 435226864, 669895258, 2062660782, 877134442,
537  862446210, 637999621, 1961422328, 436446481, 1484932942, 637999621, 1582518977, 1380965837, 1484932942,
538  1918341115, 610284457, 921832714, 935713404, 1932221805, 610284457, 1477140493, 1802569440, 1932221805,
539  1166693335, 1111258125, 2045013533, 806057166, 2075199547, 1111258125, 910095642, 604894683, 2075199547,
540  1337340001, 933479796, 250448516, 869700825, 1956592310, 933479796, 180114152, 116335181, 1956592310,
541  1032796075, 964470743, 305424253, 1684740865, 264650108, 964470743, 1488423039, 61230582, 264650108,
542  1712024538, 699327583, 233487965, 477089965, 1955626538, 699327583, 740286143, 518048525, 1955626538,
543  1070062360, 1537084641, 1162060325, 1210633168, 1118635203, 1537084641, 425489461, 99037988, 1118635203,
544  2087553842, 1110969145, 1144785928, 933557607, 1876325521, 1110969145, 1104402037, 926990499, 1876325521,
545  1815728387, 871758224, 1545321856, 704727347, 975133878, 871758224, 1128052279, 961021402, 975133878,
546  1513608227, 1279502601, 565649640, 28327672, 976286259, 1279502601, 859771158, 1756058808, 976286259,
547  2094140247, 1737489625, 933512842, 1458276750, 471441576, 1737489625, 1263470614, 984257739, 471441576,
548  1860977403, 658703383, 2060162056, 547069801, 347885148, 658703383, 1624395424, 1512761842, 347885148,
549  1879082616, 308724097, 736059294, 487787239, 1630810561, 308724097, 1407141665, 1586204807, 1630810561,
550  1353046646, 468021422, 1721982830, 124631461, 1903157856, 468021422, 1670262955, 1326872994, 1903157856,
551  517335945, 1465221011, 1459241612, 1042549176, 100643509, 1465221011, 991629940, 568958105, 100643509,
552  1403944694, 1286617553, 360369598, 1870136409, 766248926, 1286617553, 827266830, 1410785686, 766248926,
553  196325686, 516891667, 1004127870, 1467650175, 659847991, 516891667, 1162970729, 2113729237, 659847991,
554  1032019899, 83968668, 877074995, 1317574910, 1472519814, 83968668, 150401617, 1384007859, 1472519814,
555  1741538312, 800873109, 1059523969, 2104898230, 639449994, 800873109, 1701008257, 857570799, 639449994,
556  1502112416, 1963152593, 253090559, 840407495, 2089429352, 1963152593, 591367390, 1616084871, 2089429352,
557  1319732484, 951587645, 1946666920, 57728760, 1578256903, 951587645, 719716367, 1973320061, 1578256903,
558  1355881756, 586536795, 852266854, 703919797, 1207534699, 586536795, 619897924, 737280926, 1207534699,
559  1940584308, 1721665993, 885174226, 1855604019, 763551522, 1721665993, 331389193, 465327219, 763551522,
560  1109702463, 2632136, 298184035, 1020232403, 1831750831, 2632136, 446609909, 1464210176, 1831750831,
561  784484809, 684307252, 662903252, 1159895117, 1281476674, 684307252, 212021293, 687609158, 1281476674,
562  1731308168, 1890967465, 904934541, 877846934, 1704220561, 1890967465, 354789768, 1489131816, 1704220561,
563  1587550693, 754049360, 310811546, 753708625, 2030447772, 754049360, 1492152019, 1491811284, 2030447772,
564  2014208213, 1642652920, 2067720926, 92203000, 38690287, 1642652920, 1721349286, 170899366, 38690287,
565  245548435, 1718293988, 1665512322, 1505614172, 85650285, 1718293988, 2020052636, 1807372820, 85650285,
566  2081370320, 1099098606, 2099739989, 673550388, 655180719, 1099098606, 411320890, 2133235251, 655180719,
567  1094209948, 15990642, 1941196129, 145805425, 1446281823, 15990642, 1860820163, 1990634946, 1446281823,
568  1683608456, 1683166214, 1349081652, 1550822532, 1885349336, 1683166214, 1799466284, 1667122602, 1885349336,
569  1397008732, 1449356459, 1208832805, 1557961388, 1746137315, 1449356459, 1893433983, 2002038912, 1746137315,
570  1438247187, 939961626, 1729100372, 1747761867, 1456908682, 939961626, 464594653, 1272394894, 1456908682,
571  1176204019, 1862103892, 685956562, 40192881, 530440338, 1862103892, 674067403, 999618971, 530440338,
572  1472574795, 888439292, 1144519156, 1694793075, 2022848714, 888439292, 711653837, 1518007620, 2022848714,
573  1677906195, 1532623415, 1966044219, 515348784, 227210760, 1532623415, 2069786788, 1052512157, 227210760,
574  1799019626, 995353695, 560784494, 1348234869, 439007422, 995353695, 631706404, 984587578, 439007422,
575  991695888, 1668598579, 599027790, 59784702, 452452800, 1668598579, 690969104, 1229617806, 452452800,
576  1644842953, 1858581354, 735437056, 255274869, 1164680766, 1858581354, 1186341548, 1730497642, 1164680766,
577  796789021, 1464208080, 607337906, 1241679051, 1431130166, 1464208080, 1401213391, 1178684362, 1431130166,
578  449379819, 1859560334, 1507943303, 281118586, 1370017681, 1859560334, 586645827, 1155666658, 1370017681,
579  // clang-format on
580 };
581 
582 static const __device__ unsigned int d_mrg31k3p_A1P134[MRG31K3P_N] = {
583  // clang-format off
584  1702500920, 1849582496, 1656874625, 828554832, 1702500920, 1512419905, 1143731069, 828554832, 102237247,
585  645483870, 620564265, 664205456, 770918242, 645483870, 1281758597, 575939555, 770918242, 765993804,
586  617402461, 1368756598, 28735665, 1198818281, 617402461, 1462884148, 1792586313, 1198818281, 307717124,
587  162610726, 1023662615, 268281397, 384964382, 162610726, 1970823435, 614575463, 384964382, 803138895,
588  845166865, 242449311, 1181536570, 2090054205, 845166865, 2129998277, 1381578739, 2090054205, 896994421,
589  366572538, 692324442, 1362760821, 509978839, 366572538, 1937036677, 1796261914, 509978839, 254012310,
590  455661184, 1672661504, 1755909826, 296613425, 455661184, 1466561285, 277723253, 296613425, 2111868835,
591  1524212047, 1290402814, 1698959568, 562526511, 1524212047, 18430018, 1731447514, 562526511, 606472042,
592  1652961203, 215070855, 2060152039, 1597450376, 1652961203, 1789009138, 47162608, 1597450376, 646236129,
593  2078015280, 187202008, 1807168324, 696542619, 2078015280, 609466277, 71313185, 696542619, 865722141,
594  183377628, 1681399087, 1185786577, 1540730869, 183377628, 1724527191, 63309908, 1540730869, 1978416087,
595  1366196111, 1633591539, 1290946307, 1325132980, 1366196111, 876028669, 339734121, 1325132980, 925130648,
596  1724783401, 1801293992, 308731192, 2133229752, 1724783401, 1025375592, 7948648, 2133229752, 214818437,
597  1157813323, 1416970207, 1826698806, 363750817, 1157813323, 1814718636, 2061668273, 363750817, 1485136643,
598  1282397429, 1815517899, 916628618, 1172406852, 1282397429, 1528015370, 1426853685, 1172406852, 2131054317,
599  2129819678, 1577854465, 1610308761, 1960200740, 2129819678, 1423031004, 1209626772, 1960200740, 1506700134,
600  1630622394, 982109384, 1295036091, 1708049365, 1630622394, 1159128422, 425164493, 1708049365, 769959675,
601  145802313, 308057876, 1172263339, 1940157879, 145802313, 610452697, 787148714, 1940157879, 504975057,
602  797914368, 583402810, 853552393, 2087511692, 797914368, 2139606726, 1964303825, 2087511692, 991210125,
603  259143302, 52193900, 1164542374, 541736582, 259143302, 1636582732, 1594166893, 541736582, 1946334206,
604  1078006211, 1572070265, 1777835147, 380019189, 1078006211, 1617465384, 212304412, 380019189, 960151042,
605  1853880518, 806781606, 1967554328, 281606920, 1853880518, 1846418984, 180784926, 281606920, 653956479,
606  1041535125, 1050674614, 304377591, 551715798, 1041535125, 1225757812, 1990514045, 551715798, 1587101226,
607  2007648138, 1607919899, 886196014, 1987881783, 2007648138, 299608774, 1034446472, 1987881783, 1435202391,
608  1233503151, 469054309, 892939014, 356512369, 1233503151, 2141885291, 33250922, 356512369, 788841984,
609  874678388, 214950247, 23713635, 1648252672, 874678388, 1285472827, 1042088829, 1648252672, 1422096882,
610  1078189672, 1190126686, 910551326, 1721716023, 1078189672, 2029819063, 1397449316, 1721716023, 656029879,
611  1410346282, 481562416, 911772508, 639660086, 1410346282, 253820664, 601265364, 639660086, 519979488,
612  731766923, 460662147, 1453906457, 1026747356, 731766923, 609651725, 1120085706, 1026747356, 2029813495,
613  1543150734, 451002172, 1416425958, 260687447, 1543150734, 85588569, 1448966402, 260687447, 458190290,
614  2061622376, 801587966, 916597495, 639697489, 2061622376, 460599933, 1501814947, 639697489, 1375017592,
615  76166254, 1426470107, 667934894, 1270361954, 76166254, 2086688963, 2030482250, 1270361954, 835563796,
616  238008363, 1734569564, 1782076789, 396699230, 238008363, 1339530185, 1874865881, 396699230, 1471666195,
617  1673237948, 1596265562, 947846739, 1805240935, 1673237948, 1160726389, 1240887723, 1805240935, 2027330179,
618  1781455951, 600161726, 1848333959, 1479278255, 1781455951, 2010752958, 864592395, 1479278255, 1733629950,
619  1304430887, 1104552021, 2030139403, 398622196, 1304430887, 1154105110, 242006792, 398622196, 196661962,
620  76775611, 667871474, 765471737, 2020240256, 76775611, 1200796604, 375546022, 2020240256, 1527271306,
621  1170643171, 75245340, 265830856, 1134067588, 1170643171, 593124060, 1253134865, 1134067588, 1096892474,
622  2077914257, 1645516487, 1056674057, 1922614678, 2077914257, 2086357604, 1930596721, 1922614678, 526445385,
623  375401972, 1550819682, 1227358939, 2040467937, 375401972, 1676857817, 379236419, 2040467937, 93642908,
624  1053319317, 2017208884, 1970115630, 264979615, 1053319317, 1349797010, 1325589187, 264979615, 232840996,
625  1691497299, 2017815949, 1292005205, 1474965629, 1691497299, 1490647157, 527617366, 1474965629, 256014829,
626  1217151312, 840798379, 224995176, 1949461875, 1217151312, 1428387700, 1892201859, 1949461875, 1737743605,
627  952774017, 608757611, 314921493, 651680494, 952774017, 1756724093, 1478568101, 651680494, 257826029,
628  1094160296, 1720758185, 1400853540, 1309337814, 1094160296, 820619829, 306010275, 1309337814, 409891068,
629  13069239, 474547195, 1409404604, 1825466063, 13069239, 1750244551, 2094462794, 1825466063, 772341819,
630  76488958, 1120908370, 1530532496, 627809515, 76488958, 134020740, 1699049246, 627809515, 1021083206,
631  2053156627, 1477901940, 413814692, 669094268, 2053156627, 2030243243, 1330863964, 669094268, 590939492,
632  31223127, 2133530841, 662211389, 121663542, 31223127, 1906800801, 763903604, 121663542, 1690675511,
633  2021060853, 435346596, 1749961419, 812629275, 2021060853, 1394255045, 426987180, 812629275, 1298806606,
634  348793657, 1401722248, 1335230639, 2124539952, 348793657, 1196246164, 292274947, 2124539952, 1409381719,
635  737228385, 2371063, 1848392607, 363918986, 737228385, 1570329979, 744648143, 363918986, 941294890,
636  0, 1679057135, 162637753, 683794320, 0, 0, 0, 683794320, 0,
637  401845057, 311931463, 0, 0, 401845057, 311931463, 1733722719, 0, 0,
638  1114720233, 1425190872, 1251749276, 1924126889, 1114720233, 712595436, 1653592841, 1924126889, 0,
639  610798891, 608296164, 740754146, 1171043484, 610798891, 2099181193, 499040364, 1171043484, 156839371,
640  1971192737, 812099860, 1173994584, 558457015, 1971192737, 43451492, 2064584680, 558457015, 2067823641,
641  435678011, 743904728, 1941437443, 1346822707, 435678011, 527364711, 453561420, 1346822707, 116025045,
642  1539249556, 1452496481, 1643958331, 1843931469, 1539249556, 52191821, 1914827994, 1843931469, 621151386,
643  227354251, 1012981194, 1906761699, 1413142543, 227354251, 947306590, 639935544, 1413142543, 2138707000,
644  576852484, 708579549, 1542097685, 128484366, 576852484, 649608347, 121565844, 128484366, 2103341706,
645  1853292988, 1291223334, 1496855187, 1060374612, 1853292988, 936830754, 956150377, 1060374612, 1411023587,
646  855345339, 1546249211, 1601856434, 1627192017, 855345339, 666461566, 88402169, 1627192017, 1958274630,
647  1096937602, 786590498, 578966606, 1469438198, 1096937602, 1899405365, 1979088959, 1469438198, 828831042,
648  // clang-format on
649 };
650 
651 static const unsigned int h_mrg31k3p_A1P134[MRG31K3P_N] = {
652  // clang-format off
653  1702500920, 1849582496, 1656874625, 828554832, 1702500920, 1512419905, 1143731069, 828554832, 102237247,
654  645483870, 620564265, 664205456, 770918242, 645483870, 1281758597, 575939555, 770918242, 765993804,
655  617402461, 1368756598, 28735665, 1198818281, 617402461, 1462884148, 1792586313, 1198818281, 307717124,
656  162610726, 1023662615, 268281397, 384964382, 162610726, 1970823435, 614575463, 384964382, 803138895,
657  845166865, 242449311, 1181536570, 2090054205, 845166865, 2129998277, 1381578739, 2090054205, 896994421,
658  366572538, 692324442, 1362760821, 509978839, 366572538, 1937036677, 1796261914, 509978839, 254012310,
659  455661184, 1672661504, 1755909826, 296613425, 455661184, 1466561285, 277723253, 296613425, 2111868835,
660  1524212047, 1290402814, 1698959568, 562526511, 1524212047, 18430018, 1731447514, 562526511, 606472042,
661  1652961203, 215070855, 2060152039, 1597450376, 1652961203, 1789009138, 47162608, 1597450376, 646236129,
662  2078015280, 187202008, 1807168324, 696542619, 2078015280, 609466277, 71313185, 696542619, 865722141,
663  183377628, 1681399087, 1185786577, 1540730869, 183377628, 1724527191, 63309908, 1540730869, 1978416087,
664  1366196111, 1633591539, 1290946307, 1325132980, 1366196111, 876028669, 339734121, 1325132980, 925130648,
665  1724783401, 1801293992, 308731192, 2133229752, 1724783401, 1025375592, 7948648, 2133229752, 214818437,
666  1157813323, 1416970207, 1826698806, 363750817, 1157813323, 1814718636, 2061668273, 363750817, 1485136643,
667  1282397429, 1815517899, 916628618, 1172406852, 1282397429, 1528015370, 1426853685, 1172406852, 2131054317,
668  2129819678, 1577854465, 1610308761, 1960200740, 2129819678, 1423031004, 1209626772, 1960200740, 1506700134,
669  1630622394, 982109384, 1295036091, 1708049365, 1630622394, 1159128422, 425164493, 1708049365, 769959675,
670  145802313, 308057876, 1172263339, 1940157879, 145802313, 610452697, 787148714, 1940157879, 504975057,
671  797914368, 583402810, 853552393, 2087511692, 797914368, 2139606726, 1964303825, 2087511692, 991210125,
672  259143302, 52193900, 1164542374, 541736582, 259143302, 1636582732, 1594166893, 541736582, 1946334206,
673  1078006211, 1572070265, 1777835147, 380019189, 1078006211, 1617465384, 212304412, 380019189, 960151042,
674  1853880518, 806781606, 1967554328, 281606920, 1853880518, 1846418984, 180784926, 281606920, 653956479,
675  1041535125, 1050674614, 304377591, 551715798, 1041535125, 1225757812, 1990514045, 551715798, 1587101226,
676  2007648138, 1607919899, 886196014, 1987881783, 2007648138, 299608774, 1034446472, 1987881783, 1435202391,
677  1233503151, 469054309, 892939014, 356512369, 1233503151, 2141885291, 33250922, 356512369, 788841984,
678  874678388, 214950247, 23713635, 1648252672, 874678388, 1285472827, 1042088829, 1648252672, 1422096882,
679  1078189672, 1190126686, 910551326, 1721716023, 1078189672, 2029819063, 1397449316, 1721716023, 656029879,
680  1410346282, 481562416, 911772508, 639660086, 1410346282, 253820664, 601265364, 639660086, 519979488,
681  731766923, 460662147, 1453906457, 1026747356, 731766923, 609651725, 1120085706, 1026747356, 2029813495,
682  1543150734, 451002172, 1416425958, 260687447, 1543150734, 85588569, 1448966402, 260687447, 458190290,
683  2061622376, 801587966, 916597495, 639697489, 2061622376, 460599933, 1501814947, 639697489, 1375017592,
684  76166254, 1426470107, 667934894, 1270361954, 76166254, 2086688963, 2030482250, 1270361954, 835563796,
685  238008363, 1734569564, 1782076789, 396699230, 238008363, 1339530185, 1874865881, 396699230, 1471666195,
686  1673237948, 1596265562, 947846739, 1805240935, 1673237948, 1160726389, 1240887723, 1805240935, 2027330179,
687  1781455951, 600161726, 1848333959, 1479278255, 1781455951, 2010752958, 864592395, 1479278255, 1733629950,
688  1304430887, 1104552021, 2030139403, 398622196, 1304430887, 1154105110, 242006792, 398622196, 196661962,
689  76775611, 667871474, 765471737, 2020240256, 76775611, 1200796604, 375546022, 2020240256, 1527271306,
690  1170643171, 75245340, 265830856, 1134067588, 1170643171, 593124060, 1253134865, 1134067588, 1096892474,
691  2077914257, 1645516487, 1056674057, 1922614678, 2077914257, 2086357604, 1930596721, 1922614678, 526445385,
692  375401972, 1550819682, 1227358939, 2040467937, 375401972, 1676857817, 379236419, 2040467937, 93642908,
693  1053319317, 2017208884, 1970115630, 264979615, 1053319317, 1349797010, 1325589187, 264979615, 232840996,
694  1691497299, 2017815949, 1292005205, 1474965629, 1691497299, 1490647157, 527617366, 1474965629, 256014829,
695  1217151312, 840798379, 224995176, 1949461875, 1217151312, 1428387700, 1892201859, 1949461875, 1737743605,
696  952774017, 608757611, 314921493, 651680494, 952774017, 1756724093, 1478568101, 651680494, 257826029,
697  1094160296, 1720758185, 1400853540, 1309337814, 1094160296, 820619829, 306010275, 1309337814, 409891068,
698  13069239, 474547195, 1409404604, 1825466063, 13069239, 1750244551, 2094462794, 1825466063, 772341819,
699  76488958, 1120908370, 1530532496, 627809515, 76488958, 134020740, 1699049246, 627809515, 1021083206,
700  2053156627, 1477901940, 413814692, 669094268, 2053156627, 2030243243, 1330863964, 669094268, 590939492,
701  31223127, 2133530841, 662211389, 121663542, 31223127, 1906800801, 763903604, 121663542, 1690675511,
702  2021060853, 435346596, 1749961419, 812629275, 2021060853, 1394255045, 426987180, 812629275, 1298806606,
703  348793657, 1401722248, 1335230639, 2124539952, 348793657, 1196246164, 292274947, 2124539952, 1409381719,
704  737228385, 2371063, 1848392607, 363918986, 737228385, 1570329979, 744648143, 363918986, 941294890,
705  0, 1679057135, 162637753, 683794320, 0, 0, 0, 683794320, 0,
706  401845057, 311931463, 0, 0, 401845057, 311931463, 1733722719, 0, 0,
707  1114720233, 1425190872, 1251749276, 1924126889, 1114720233, 712595436, 1653592841, 1924126889, 0,
708  610798891, 608296164, 740754146, 1171043484, 610798891, 2099181193, 499040364, 1171043484, 156839371,
709  1971192737, 812099860, 1173994584, 558457015, 1971192737, 43451492, 2064584680, 558457015, 2067823641,
710  435678011, 743904728, 1941437443, 1346822707, 435678011, 527364711, 453561420, 1346822707, 116025045,
711  1539249556, 1452496481, 1643958331, 1843931469, 1539249556, 52191821, 1914827994, 1843931469, 621151386,
712  227354251, 1012981194, 1906761699, 1413142543, 227354251, 947306590, 639935544, 1413142543, 2138707000,
713  576852484, 708579549, 1542097685, 128484366, 576852484, 649608347, 121565844, 128484366, 2103341706,
714  1853292988, 1291223334, 1496855187, 1060374612, 1853292988, 936830754, 956150377, 1060374612, 1411023587,
715  855345339, 1546249211, 1601856434, 1627192017, 855345339, 666461566, 88402169, 1627192017, 1958274630,
716  1096937602, 786590498, 578966606, 1469438198, 1096937602, 1899405365, 1979088959, 1469438198, 828831042,
717  // clang-format on
718 };
719 
720 static const __device__ unsigned int d_mrg31k3p_A2P134[MRG31K3P_N] = {
721  // clang-format off
722  796789021, 1464208080, 607337906, 1241679051, 1431130166, 1464208080, 1401213391, 1178684362, 1431130166,
723  449379819, 1859560334, 1507943303, 281118586, 1370017681, 1859560334, 586645827, 1155666658, 1370017681,
724  1905411591, 1963018101, 343016434, 121181645, 1683576802, 1963018101, 659653144, 965279267, 1683576802,
725  923789351, 579378463, 1299982062, 923273606, 547080895, 579378463, 1469275547, 1813170690, 547080895,
726  2090750644, 1130285516, 237847599, 1939860162, 1645300628, 1130285516, 421282912, 1230857558, 1645300628,
727  2008026844, 513985244, 434089712, 312541827, 1886478959, 513985244, 819379249, 617935832, 1886478959,
728  776220511, 1984739738, 346366517, 1418021351, 1847875345, 1984739738, 1948301741, 1381583354, 1847875345,
729  1700525394, 111040671, 2093663073, 640783524, 247645845, 111040671, 2052114933, 434395207, 247645845,
730  376956109, 290880205, 199150100, 948142688, 1125948697, 290880205, 1722880835, 232680739, 1125948697,
731  247078818, 588036491, 688300042, 951237683, 510016459, 588036491, 1721382636, 2084583828, 510016459,
732  757891938, 856677280, 1234670468, 257321638, 1928005687, 856677280, 1749832311, 1150476669, 1928005687,
733  1217360713, 521402766, 19797074, 121827115, 1319390754, 521402766, 947038455, 547462804, 1319390754,
734  1048768886, 1469640699, 1164579305, 982183962, 866373543, 1469640699, 1779472094, 1292015357, 866373543,
735  102819547, 516349604, 1341579158, 1763871247, 525111636, 516349604, 1720397448, 820456512, 525111636,
736  599356592, 848762501, 1180929028, 368530105, 1934420248, 848762501, 934400507, 454168111, 1934420248,
737  1348206367, 1361201495, 592298891, 1599883922, 208328819, 1361201495, 413622556, 652304983, 208328819,
738  2064097552, 1417070886, 1357680052, 606028385, 1312445885, 1417070886, 1708497864, 897455363, 1312445885,
739  469061732, 2003625712, 59424357, 511555199, 921192574, 2003625712, 1785648525, 293578012, 921192574,
740  2087203840, 1126514522, 879262502, 758640974, 1966582312, 1126514522, 156855701, 1936444732, 1966582312,
741  673754100, 2050883370, 237566383, 1289965851, 1726153568, 2050883370, 2042540727, 1281623208, 1726153568,
742  276940357, 642398106, 1330827576, 1330433295, 276546076, 642398106, 215493282, 903528471, 276546076,
743  1443969571, 488130244, 175038278, 1154375427, 275844141, 488130244, 1942292534, 461075138, 275844141,
744  1317965065, 1002864713, 205640281, 546423407, 1658748191, 1002864713, 499722452, 43281146, 1658748191,
745  146753883, 1351632120, 727674162, 815519302, 234599023, 1351632120, 1884846131, 1348733313, 234599023,
746  642749055, 1354357254, 1055708756, 1096208681, 683248980, 1354357254, 781723214, 523574641, 683248980,
747  1737066390, 942511753, 1932891932, 41279467, 1992916504, 942511753, 527572287, 1773802580, 1992916504,
748  1652401837, 430696203, 1202166331, 277308320, 727543826, 430696203, 1093306140, 939918257, 727543826,
749  458862064, 1393557250, 1426081092, 1008405285, 41186257, 1393557250, 1607117043, 1221965078, 41186257,
750  1345916124, 1748092973, 1614043471, 596796005, 328668658, 1748092973, 1655163813, 503866845, 328668658,
751  2146828500, 2127048966, 10643923, 1570900428, 1559622426, 2127048966, 963798460, 407649922, 1559622426,
752  1188264804, 35897774, 1970542303, 1365513163, 583235664, 35897774, 1479940899, 662093709, 583235664,
753  1308109289, 895977286, 37247186, 2050081147, 1173480671, 895977286, 1277600139, 284241421, 1173480671,
754  2013888788, 2043482286, 658176641, 1871783831, 1080033399, 2043482286, 401912906, 230214451, 1080033399,
755  452030369, 255369901, 1350332603, 1860008949, 961706715, 255369901, 1195401760, 652578229, 961706715,
756  2131053590, 740482187, 984920239, 1450610916, 449281688, 740482187, 1574920235, 137586385, 449281688,
757  1634858243, 497927143, 1901866904, 51698324, 1932152242, 497927143, 1002347892, 556119073, 1932152242,
758  1472216392, 577373840, 769534590, 1340835970, 2043517772, 577373840, 655613324, 1419075454, 2043517772,
759  1855299310, 506099840, 569067263, 422641986, 1708874033, 506099840, 1336633796, 1253175942, 1708874033,
760  572710688, 261672892, 1394962173, 246579059, 1571790153, 261672892, 670676362, 655582529, 1571790153,
761  594443199, 704082826, 607911385, 232268769, 218800583, 704082826, 436735778, 2112384300, 218800583,
762  267693324, 641808781, 154341361, 2113521010, 79410394, 641808781, 2011893649, 1336143299, 79410394,
763  1318819653, 1868464067, 1588101830, 1212415570, 943133393, 1868464067, 77451914, 1568865996, 943133393,
764  985435018, 180447434, 1577900962, 183148352, 1738144987, 180447434, 1655902374, 1658603292, 1738144987,
765  49821488, 611723857, 242459635, 602652151, 410014004, 611723857, 82459631, 73387925, 410014004,
766  1437111298, 74797434, 533133248, 2039676476, 796191947, 74797434, 1886773167, 1704189630, 796191947,
767  1637483663, 74168688, 1054079355, 700321621, 1283725929, 74168688, 2060960811, 539651165, 1283725929,
768  1887163718, 655848906, 87023570, 169996184, 1970136332, 655848906, 420940767, 2082550624, 1970136332,
769  18989030, 1801200908, 1296446318, 1480765767, 203308479, 1801200908, 1713948855, 1393513714, 203308479,
770  1287186326, 1297009802, 187411713, 1576345091, 528657125, 1297009802, 184581514, 463916803, 528657125,
771  1696668232, 1107403276, 87597923, 976253094, 437860824, 1107403276, 1930908628, 1799758446, 437860824,
772  1682379101, 297028150, 917205235, 1818447583, 436158870, 297028150, 2051989542, 1425946396, 436158870,
773  814496749, 542253708, 865467163, 1286053011, 1235082597, 542253708, 973776701, 1717576004, 1235082597,
774  1530574627, 725445924, 457192432, 1733109114, 659028730, 725445924, 1576361510, 436562121, 659028730,
775  1879960851, 566221965, 924162160, 963040885, 1918839576, 566221965, 1609385463, 2006204383, 1918839576,
776  1614225341, 1340553167, 1004137727, 1241691160, 1851778774, 1340553167, 458053542, 359191535, 1851778774,
777  755675013, 882429580, 1549541854, 1579204593, 785337752, 882429580, 768798741, 1465573754, 785337752,
778  2061271255, 466021298, 1573816382, 1311501570, 1798956443, 466021298, 1731012316, 429030009, 1798956443,
779  269410335, 525102330, 66372845, 85064323, 288101813, 525102330, 514518411, 74480404, 288101813,
780  283661186, 1203833319, 84000195, 1978192481, 30390893, 1203833319, 554252338, 1328611500, 30390893,
781  247697233, 341540512, 744092679, 503908690, 7513244, 341540512, 176426220, 338794398, 7513244,
782  1402001034, 1394863287, 1687749293, 1678557380, 1392809121, 1394863287, 2110151132, 246382646, 1392809121,
783  1502257169, 26035216, 1533979144, 1212348385, 1180626410, 26035216, 1908070020, 946920610, 1180626410,
784  542049032, 2094774459, 705590104, 1947410772, 1783869700, 2094774459, 1123436733, 976073046, 1783869700,
785  1431452905, 2101958470, 118477317, 811765310, 2124740898, 2101958470, 1786241326, 496048166, 2124740898,
786  // clang-format on
787 };
788 
789 static const unsigned int h_mrg31k3p_A2P134[MRG31K3P_N] = {
790  // clang-format off
791  796789021, 1464208080, 607337906, 1241679051, 1431130166, 1464208080, 1401213391, 1178684362, 1431130166,
792  449379819, 1859560334, 1507943303, 281118586, 1370017681, 1859560334, 586645827, 1155666658, 1370017681,
793  1905411591, 1963018101, 343016434, 121181645, 1683576802, 1963018101, 659653144, 965279267, 1683576802,
794  923789351, 579378463, 1299982062, 923273606, 547080895, 579378463, 1469275547, 1813170690, 547080895,
795  2090750644, 1130285516, 237847599, 1939860162, 1645300628, 1130285516, 421282912, 1230857558, 1645300628,
796  2008026844, 513985244, 434089712, 312541827, 1886478959, 513985244, 819379249, 617935832, 1886478959,
797  776220511, 1984739738, 346366517, 1418021351, 1847875345, 1984739738, 1948301741, 1381583354, 1847875345,
798  1700525394, 111040671, 2093663073, 640783524, 247645845, 111040671, 2052114933, 434395207, 247645845,
799  376956109, 290880205, 199150100, 948142688, 1125948697, 290880205, 1722880835, 232680739, 1125948697,
800  247078818, 588036491, 688300042, 951237683, 510016459, 588036491, 1721382636, 2084583828, 510016459,
801  757891938, 856677280, 1234670468, 257321638, 1928005687, 856677280, 1749832311, 1150476669, 1928005687,
802  1217360713, 521402766, 19797074, 121827115, 1319390754, 521402766, 947038455, 547462804, 1319390754,
803  1048768886, 1469640699, 1164579305, 982183962, 866373543, 1469640699, 1779472094, 1292015357, 866373543,
804  102819547, 516349604, 1341579158, 1763871247, 525111636, 516349604, 1720397448, 820456512, 525111636,
805  599356592, 848762501, 1180929028, 368530105, 1934420248, 848762501, 934400507, 454168111, 1934420248,
806  1348206367, 1361201495, 592298891, 1599883922, 208328819, 1361201495, 413622556, 652304983, 208328819,
807  2064097552, 1417070886, 1357680052, 606028385, 1312445885, 1417070886, 1708497864, 897455363, 1312445885,
808  469061732, 2003625712, 59424357, 511555199, 921192574, 2003625712, 1785648525, 293578012, 921192574,
809  2087203840, 1126514522, 879262502, 758640974, 1966582312, 1126514522, 156855701, 1936444732, 1966582312,
810  673754100, 2050883370, 237566383, 1289965851, 1726153568, 2050883370, 2042540727, 1281623208, 1726153568,
811  276940357, 642398106, 1330827576, 1330433295, 276546076, 642398106, 215493282, 903528471, 276546076,
812  1443969571, 488130244, 175038278, 1154375427, 275844141, 488130244, 1942292534, 461075138, 275844141,
813  1317965065, 1002864713, 205640281, 546423407, 1658748191, 1002864713, 499722452, 43281146, 1658748191,
814  146753883, 1351632120, 727674162, 815519302, 234599023, 1351632120, 1884846131, 1348733313, 234599023,
815  642749055, 1354357254, 1055708756, 1096208681, 683248980, 1354357254, 781723214, 523574641, 683248980,
816  1737066390, 942511753, 1932891932, 41279467, 1992916504, 942511753, 527572287, 1773802580, 1992916504,
817  1652401837, 430696203, 1202166331, 277308320, 727543826, 430696203, 1093306140, 939918257, 727543826,
818  458862064, 1393557250, 1426081092, 1008405285, 41186257, 1393557250, 1607117043, 1221965078, 41186257,
819  1345916124, 1748092973, 1614043471, 596796005, 328668658, 1748092973, 1655163813, 503866845, 328668658,
820  2146828500, 2127048966, 10643923, 1570900428, 1559622426, 2127048966, 963798460, 407649922, 1559622426,
821  1188264804, 35897774, 1970542303, 1365513163, 583235664, 35897774, 1479940899, 662093709, 583235664,
822  1308109289, 895977286, 37247186, 2050081147, 1173480671, 895977286, 1277600139, 284241421, 1173480671,
823  2013888788, 2043482286, 658176641, 1871783831, 1080033399, 2043482286, 401912906, 230214451, 1080033399,
824  452030369, 255369901, 1350332603, 1860008949, 961706715, 255369901, 1195401760, 652578229, 961706715,
825  2131053590, 740482187, 984920239, 1450610916, 449281688, 740482187, 1574920235, 137586385, 449281688,
826  1634858243, 497927143, 1901866904, 51698324, 1932152242, 497927143, 1002347892, 556119073, 1932152242,
827  1472216392, 577373840, 769534590, 1340835970, 2043517772, 577373840, 655613324, 1419075454, 2043517772,
828  1855299310, 506099840, 569067263, 422641986, 1708874033, 506099840, 1336633796, 1253175942, 1708874033,
829  572710688, 261672892, 1394962173, 246579059, 1571790153, 261672892, 670676362, 655582529, 1571790153,
830  594443199, 704082826, 607911385, 232268769, 218800583, 704082826, 436735778, 2112384300, 218800583,
831  267693324, 641808781, 154341361, 2113521010, 79410394, 641808781, 2011893649, 1336143299, 79410394,
832  1318819653, 1868464067, 1588101830, 1212415570, 943133393, 1868464067, 77451914, 1568865996, 943133393,
833  985435018, 180447434, 1577900962, 183148352, 1738144987, 180447434, 1655902374, 1658603292, 1738144987,
834  49821488, 611723857, 242459635, 602652151, 410014004, 611723857, 82459631, 73387925, 410014004,
835  1437111298, 74797434, 533133248, 2039676476, 796191947, 74797434, 1886773167, 1704189630, 796191947,
836  1637483663, 74168688, 1054079355, 700321621, 1283725929, 74168688, 2060960811, 539651165, 1283725929,
837  1887163718, 655848906, 87023570, 169996184, 1970136332, 655848906, 420940767, 2082550624, 1970136332,
838  18989030, 1801200908, 1296446318, 1480765767, 203308479, 1801200908, 1713948855, 1393513714, 203308479,
839  1287186326, 1297009802, 187411713, 1576345091, 528657125, 1297009802, 184581514, 463916803, 528657125,
840  1696668232, 1107403276, 87597923, 976253094, 437860824, 1107403276, 1930908628, 1799758446, 437860824,
841  1682379101, 297028150, 917205235, 1818447583, 436158870, 297028150, 2051989542, 1425946396, 436158870,
842  814496749, 542253708, 865467163, 1286053011, 1235082597, 542253708, 973776701, 1717576004, 1235082597,
843  1530574627, 725445924, 457192432, 1733109114, 659028730, 725445924, 1576361510, 436562121, 659028730,
844  1879960851, 566221965, 924162160, 963040885, 1918839576, 566221965, 1609385463, 2006204383, 1918839576,
845  1614225341, 1340553167, 1004137727, 1241691160, 1851778774, 1340553167, 458053542, 359191535, 1851778774,
846  755675013, 882429580, 1549541854, 1579204593, 785337752, 882429580, 768798741, 1465573754, 785337752,
847  2061271255, 466021298, 1573816382, 1311501570, 1798956443, 466021298, 1731012316, 429030009, 1798956443,
848  269410335, 525102330, 66372845, 85064323, 288101813, 525102330, 514518411, 74480404, 288101813,
849  283661186, 1203833319, 84000195, 1978192481, 30390893, 1203833319, 554252338, 1328611500, 30390893,
850  247697233, 341540512, 744092679, 503908690, 7513244, 341540512, 176426220, 338794398, 7513244,
851  1402001034, 1394863287, 1687749293, 1678557380, 1392809121, 1394863287, 2110151132, 246382646, 1392809121,
852  1502257169, 26035216, 1533979144, 1212348385, 1180626410, 26035216, 1908070020, 946920610, 1180626410,
853  542049032, 2094774459, 705590104, 1947410772, 1783869700, 2094774459, 1123436733, 976073046, 1783869700,
854  1431452905, 2101958470, 118477317, 811765310, 2124740898, 2101958470, 1786241326, 496048166, 2124740898,
855  // clang-format on
856 };
857 
858 #endif // ROCRAND_MRG31K3P_PRECOMPUTED_H_