From eeacbbddb2081ab97a4817e23608002d9acb4762 Mon Sep 17 00:00:00 2001 From: Andres Erbsen Date: Mon, 31 Jul 2023 20:10:58 +0000 Subject: [PATCH] default to magnitude 8->1 in Dettman multiplication --- fiat-bedrock2/src/secp256k1_dettman_32.c | 2340 +++++++++-------- fiat-bedrock2/src/secp256k1_dettman_64.c | 10 +- fiat-c/src/secp256k1_dettman_32.c | 142 +- fiat-c/src/secp256k1_dettman_64.c | 10 +- .../32/secp256k1dettman/secp256k1dettman.go | 138 +- .../64/secp256k1dettman/secp256k1dettman.go | 10 +- fiat-java/src/FiatSecp256K1Dettman.java | 138 +- fiat-json/src/secp256k1_dettman_32.json | 264 +- fiat-json/src/secp256k1_dettman_64.json | 34 +- fiat-rust/src/secp256k1_dettman_32.rs | 138 +- fiat-rust/src/secp256k1_dettman_64.rs | 10 +- fiat-zig/src/secp256k1_dettman_32.zig | 138 +- fiat-zig/src/secp256k1_dettman_64.zig | 10 +- .../DettmanMultiplication.v | 9 +- 14 files changed, 1730 insertions(+), 1661 deletions(-) diff --git a/fiat-bedrock2/src/secp256k1_dettman_32.c b/fiat-bedrock2/src/secp256k1_dettman_32.c index 5975e4004b..95541be092 100644 --- a/fiat-bedrock2/src/secp256k1_dettman_32.c +++ b/fiat-bedrock2/src/secp256k1_dettman_32.c @@ -78,14 +78,14 @@ uintptr_t _br2_shamt(uintptr_t a) { /* * Input Bounds: - * in0: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] - * in1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] + * in0: [[0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3fffff0]] + * in1: [[0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3fffff0]] * Output Bounds: - * out0: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x5fffff]] + * out0: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] */ static void internal_fiat_secp256k1_dettman_mul(uintptr_t out0, uintptr_t in0, uintptr_t in1) { - uintptr_t x20, x22, x25, x23, x26, x21, x27, x24, x32, x34, x37, x35, x38, x33, x36, x40, x43, x41, x44, x39, x42, x46, x49, x47, x50, x45, x48, x52, x55, x53, x56, x51, x54, x58, x61, x59, x62, x57, x60, x64, x67, x65, x68, x63, x66, x70, x73, x71, x74, x69, x30, x72, x77, x75, x78, x31, x79, x76, x82, x28, x85, x83, x29, x91, x93, x96, x94, x97, x92, x95, x99, x102, x100, x103, x98, x101, x105, x108, x106, x109, x104, x107, x111, x114, x112, x115, x110, x113, x117, x120, x118, x121, x116, x119, x123, x126, x124, x127, x122, x125, x129, x132, x130, x133, x128, x131, x135, x138, x136, x139, x134, x89, x137, x142, x140, x143, x90, x141, x80, x146, x144, x87, x145, x149, x147, x150, x88, x151, x148, x84, x158, x160, x163, x161, x164, x159, x162, x166, x169, x167, x170, x165, x168, x172, x175, x173, x176, x171, x174, x178, x181, x179, x182, x177, x180, x184, x187, x185, x188, x183, x186, x190, x193, x191, x194, x189, x192, x196, x199, x197, x200, x195, x198, x202, x205, x203, x206, x201, x204, x208, x211, x209, x212, x207, x156, x210, x215, x213, x216, x157, x214, x152, x219, x217, x154, x218, x222, x220, x223, x155, x224, x221, x227, x229, x232, x230, x233, x228, x231, x235, x238, x236, x239, x234, x237, x241, x244, x242, x245, x240, x243, x247, x250, x248, x251, x246, x249, x253, x256, x254, x257, x252, x255, x259, x262, x260, x263, x258, x261, x265, x268, x266, x269, x264, x267, x271, x274, x272, x275, x270, x86, x273, x278, x276, x277, x225, x281, x279, x282, x280, x226, x287, x289, x292, x290, x293, x288, x294, x291, x297, x299, x302, x300, x303, x298, x301, x305, x308, x306, x309, x304, x307, x311, x314, x312, x315, x310, x313, x317, x320, x318, x321, x316, x319, x323, x326, x324, x327, x322, x325, x329, x332, x330, x333, x328, x331, x335, x338, x336, x339, x334, x337, x283, x342, x340, x343, x341, x285, x284, x350, x352, x355, x353, x356, x351, x348, x354, x359, x357, x360, x349, x358, x295, x363, x361, x346, x362, x366, x364, x367, x347, x368, x365, x371, x373, x376, x374, x377, x372, x375, x379, x382, x380, x383, x378, x381, x385, x388, x386, x389, x384, x387, x391, x394, x392, x395, x390, x393, x397, x400, x398, x401, x396, x399, x403, x406, x404, x407, x402, x405, x344, x410, x408, x411, x409, x345, x418, x420, x423, x421, x424, x419, x422, x426, x429, x427, x430, x425, x416, x428, x433, x431, x434, x417, x432, x369, x437, x435, x414, x436, x440, x438, x441, x415, x442, x439, x445, x447, x450, x448, x451, x446, x449, x453, x456, x454, x457, x452, x455, x459, x462, x460, x463, x458, x461, x465, x468, x466, x469, x464, x467, x471, x474, x472, x475, x470, x473, x412, x478, x476, x479, x477, x413, x486, x488, x491, x489, x492, x487, x490, x494, x497, x495, x498, x493, x496, x500, x503, x501, x504, x499, x484, x502, x507, x505, x508, x485, x506, x443, x511, x509, x482, x510, x514, x512, x515, x483, x516, x513, x519, x521, x524, x522, x525, x520, x523, x527, x530, x528, x531, x526, x529, x533, x536, x534, x537, x532, x535, x539, x542, x540, x543, x538, x541, x480, x546, x544, x547, x545, x481, x554, x556, x559, x557, x560, x555, x558, x562, x565, x563, x566, x561, x564, x568, x571, x569, x572, x567, x570, x574, x577, x575, x578, x573, x552, x576, x581, x579, x582, x553, x580, x517, x585, x583, x550, x584, x588, x586, x589, x551, x590, x587, x593, x595, x598, x596, x599, x594, x597, x601, x604, x602, x605, x600, x603, x607, x610, x608, x611, x606, x609, x548, x614, x612, x615, x613, x549, x622, x624, x627, x625, x628, x623, x626, x630, x633, x631, x634, x629, x632, x636, x639, x637, x640, x635, x638, x642, x645, x643, x646, x641, x644, x648, x651, x649, x652, x647, x620, x650, x655, x653, x656, x621, x654, x591, x659, x657, x618, x658, x662, x660, x663, x619, x664, x661, x9, x17, x8, x18, x667, x669, x672, x670, x673, x668, x7, x19, x671, x675, x678, x676, x679, x674, x677, x616, x682, x680, x617, x6, x10, x5, x11, x688, x690, x693, x691, x694, x689, x4, x12, x692, x696, x699, x697, x700, x695, x3, x13, x698, x702, x705, x703, x706, x701, x2, x14, x704, x708, x711, x709, x712, x707, x1, x15, x710, x714, x717, x715, x718, x713, x0, x16, x716, x720, x723, x721, x724, x719, x686, x722, x727, x725, x728, x687, x726, x665, x731, x729, x684, x730, x734, x732, x735, x685, x736, x733, x681, x741, x81, x744, x742, x743, x737, x747, x745, x739, x746, x750, x748, x751, x740, x752, x749, x683, x755, x153, x758, x756, x757, x753, x761, x759, x762, x760, x763, x286, x296, x370, x444, x518, x592, x666, x738, x754, x764, x765, x766, x767, x768, x769, x770, x771, x772, x773, x774, x775; + uintptr_t x20, x22, x25, x23, x26, x21, x27, x24, x32, x34, x37, x35, x38, x33, x36, x40, x43, x41, x44, x39, x42, x46, x49, x47, x50, x45, x48, x52, x55, x53, x56, x51, x54, x58, x61, x59, x62, x57, x60, x64, x67, x65, x68, x63, x66, x70, x73, x71, x74, x69, x30, x72, x77, x75, x78, x31, x79, x76, x83, x28, x86, x84, x29, x92, x94, x97, x95, x98, x93, x96, x100, x103, x101, x104, x99, x102, x106, x109, x107, x110, x105, x108, x112, x115, x113, x116, x111, x114, x118, x121, x119, x122, x117, x120, x124, x127, x125, x128, x123, x126, x130, x133, x131, x134, x129, x132, x136, x139, x137, x140, x135, x90, x138, x143, x141, x144, x91, x142, x80, x147, x81, x148, x145, x88, x146, x151, x149, x152, x89, x153, x150, x85, x161, x163, x166, x164, x167, x162, x165, x169, x172, x170, x173, x168, x171, x175, x178, x176, x179, x174, x177, x181, x184, x182, x185, x180, x183, x187, x190, x188, x191, x186, x189, x193, x196, x194, x197, x192, x195, x199, x202, x200, x203, x198, x201, x205, x208, x206, x209, x204, x207, x211, x214, x212, x215, x210, x159, x213, x218, x216, x219, x160, x217, x154, x222, x155, x223, x220, x157, x221, x226, x224, x227, x158, x228, x225, x87, x234, x236, x239, x237, x240, x235, x238, x242, x245, x243, x246, x241, x244, x248, x251, x249, x252, x247, x250, x254, x257, x255, x258, x253, x256, x260, x263, x261, x264, x259, x262, x266, x269, x267, x270, x265, x268, x272, x275, x273, x276, x271, x274, x278, x281, x279, x282, x277, x232, x280, x285, x283, x286, x233, x284, x229, x289, x230, x290, x287, x291, x288, x231, x297, x299, x302, x300, x303, x298, x304, x301, x308, x310, x313, x311, x314, x309, x312, x316, x319, x317, x320, x315, x318, x322, x325, x323, x326, x321, x324, x328, x331, x329, x332, x327, x330, x334, x337, x335, x338, x333, x336, x340, x343, x341, x344, x339, x342, x346, x349, x347, x350, x345, x348, x292, x353, x293, x354, x351, x355, x352, x295, x294, x363, x365, x368, x366, x369, x364, x361, x367, x372, x370, x373, x362, x371, x305, x376, x306, x377, x374, x359, x375, x380, x378, x381, x360, x382, x379, x386, x388, x391, x389, x392, x387, x390, x394, x397, x395, x398, x393, x396, x400, x403, x401, x404, x399, x402, x406, x409, x407, x410, x405, x408, x412, x415, x413, x416, x411, x414, x418, x421, x419, x422, x417, x420, x356, x425, x357, x426, x423, x427, x424, x358, x435, x437, x440, x438, x441, x436, x439, x443, x446, x444, x447, x442, x433, x445, x450, x448, x451, x434, x449, x383, x454, x384, x455, x452, x431, x453, x458, x456, x459, x432, x460, x457, x464, x466, x469, x467, x470, x465, x468, x472, x475, x473, x476, x471, x474, x478, x481, x479, x482, x477, x480, x484, x487, x485, x488, x483, x486, x490, x493, x491, x494, x489, x492, x428, x497, x429, x498, x495, x499, x496, x430, x507, x509, x512, x510, x513, x508, x511, x515, x518, x516, x519, x514, x517, x521, x524, x522, x525, x520, x505, x523, x528, x526, x529, x506, x527, x461, x532, x462, x533, x530, x503, x531, x536, x534, x537, x504, x538, x535, x542, x544, x547, x545, x548, x543, x546, x550, x553, x551, x554, x549, x552, x556, x559, x557, x560, x555, x558, x562, x565, x563, x566, x561, x564, x500, x569, x501, x570, x567, x571, x568, x502, x579, x581, x584, x582, x585, x580, x583, x587, x590, x588, x591, x586, x589, x593, x596, x594, x597, x592, x595, x599, x602, x600, x603, x598, x577, x601, x606, x604, x607, x578, x605, x539, x610, x540, x611, x608, x575, x609, x614, x612, x615, x576, x616, x613, x620, x622, x625, x623, x626, x621, x624, x628, x631, x629, x632, x627, x630, x634, x637, x635, x638, x633, x636, x572, x641, x573, x642, x639, x643, x640, x574, x651, x653, x656, x654, x657, x652, x655, x659, x662, x660, x663, x658, x661, x665, x668, x666, x669, x664, x667, x671, x674, x672, x675, x670, x673, x677, x680, x678, x681, x676, x649, x679, x684, x682, x685, x650, x683, x617, x688, x618, x689, x686, x647, x687, x692, x690, x693, x648, x694, x691, x9, x17, x8, x18, x698, x700, x703, x701, x704, x699, x7, x19, x702, x706, x709, x707, x710, x705, x708, x644, x713, x645, x714, x711, x646, x6, x10, x5, x11, x720, x722, x725, x723, x726, x721, x4, x12, x724, x728, x731, x729, x732, x727, x3, x13, x730, x734, x737, x735, x738, x733, x2, x14, x736, x740, x743, x741, x744, x739, x1, x15, x742, x746, x749, x747, x750, x745, x0, x16, x748, x752, x755, x753, x756, x751, x718, x754, x759, x757, x760, x719, x758, x695, x763, x696, x764, x761, x716, x762, x767, x765, x768, x717, x769, x766, x712, x775, x82, x778, x776, x777, x770, x781, x771, x782, x779, x773, x780, x785, x783, x786, x774, x787, x784, x715, x790, x156, x793, x791, x792, x788, x796, x794, x797, x795, x798, x296, x307, x385, x463, x541, x619, x697, x772, x789, x799, x800, x801, x802, x803, x804, x805, x806, x807, x808, x809, x810; x0 = _br2_load((in0)+((uintptr_t)(UINTMAX_C(0))), sizeof(uintptr_t)); x1 = _br2_load((in0)+((uintptr_t)(UINTMAX_C(4))), sizeof(uintptr_t)); x2 = _br2_load((in0)+((uintptr_t)(UINTMAX_C(8))), sizeof(uintptr_t)); @@ -170,712 +170,747 @@ void internal_fiat_secp256k1_dettman_mul(uintptr_t out0, uintptr_t in0, uintptr_ x78 = (x77)+(x75); x79 = (x78)+(x31); x80 = ((x76)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x79)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x81 = (x76)&((uintptr_t)(UINTMAX_C(67108863))); - x82 = (x9)*(x19); - x83 = _br2_mulhuu((x9), (x19)); - x84 = (x28)+(x82); - x85 = (uintptr_t)((x84)<(x28)); - x86 = (x85)+(x83); - x87 = (x84)*((uintptr_t)(UINTMAX_C(15632))); - x88 = _br2_mulhuu((x84), ((uintptr_t)(UINTMAX_C(15632)))); - x89 = (x29)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); - x90 = (x29)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); - x91 = (x8)*(x10); - x92 = _br2_mulhuu((x8), (x10)); - x93 = (x7)*(x11); - x94 = _br2_mulhuu((x7), (x11)); - x95 = (x93)+(x91); - x96 = (uintptr_t)((x95)<(x93)); - x97 = (x96)+(x94); - x98 = (x97)+(x92); - x99 = (x6)*(x12); - x100 = _br2_mulhuu((x6), (x12)); - x101 = (x99)+(x95); - x102 = (uintptr_t)((x101)<(x99)); - x103 = (x102)+(x100); - x104 = (x103)+(x98); - x105 = (x5)*(x13); - x106 = _br2_mulhuu((x5), (x13)); - x107 = (x105)+(x101); - x108 = (uintptr_t)((x107)<(x105)); - x109 = (x108)+(x106); - x110 = (x109)+(x104); - x111 = (x4)*(x14); - x112 = _br2_mulhuu((x4), (x14)); - x113 = (x111)+(x107); - x114 = (uintptr_t)((x113)<(x111)); - x115 = (x114)+(x112); - x116 = (x115)+(x110); - x117 = (x3)*(x15); - x118 = _br2_mulhuu((x3), (x15)); - x119 = (x117)+(x113); - x120 = (uintptr_t)((x119)<(x117)); - x121 = (x120)+(x118); - x122 = (x121)+(x116); - x123 = (x2)*(x16); - x124 = _br2_mulhuu((x2), (x16)); - x125 = (x123)+(x119); - x126 = (uintptr_t)((x125)<(x123)); - x127 = (x126)+(x124); - x128 = (x127)+(x122); - x129 = (x1)*(x17); - x130 = _br2_mulhuu((x1), (x17)); - x131 = (x129)+(x125); - x132 = (uintptr_t)((x131)<(x129)); - x133 = (x132)+(x130); - x134 = (x133)+(x128); - x135 = (x0)*(x18); - x136 = _br2_mulhuu((x0), (x18)); - x137 = (x135)+(x131); - x138 = (uintptr_t)((x137)<(x135)); - x139 = (x138)+(x136); - x140 = (x139)+(x134); - x141 = (x137)+(x89); - x142 = (uintptr_t)((x141)<(x137)); - x143 = (x142)+(x140); - x144 = (x143)+(x90); - x145 = (x80)+(x141); - x146 = (uintptr_t)((x145)<(x80)); - x147 = (x146)+(x144); - x148 = (x145)+(x87); - x149 = (uintptr_t)((x148)<(x145)); - x150 = (x149)+(x147); - x151 = (x150)+(x88); - x152 = ((x148)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x151)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x153 = (x148)&((uintptr_t)(UINTMAX_C(67108863))); - x154 = (x86)*((uintptr_t)(UINTMAX_C(1000448))); - x155 = _br2_mulhuu((x86), ((uintptr_t)(UINTMAX_C(1000448)))); - x156 = (x84)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); - x157 = (x84)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); - x158 = (x9)*(x10); - x159 = _br2_mulhuu((x9), (x10)); - x160 = (x8)*(x11); - x161 = _br2_mulhuu((x8), (x11)); - x162 = (x160)+(x158); - x163 = (uintptr_t)((x162)<(x160)); - x164 = (x163)+(x161); - x165 = (x164)+(x159); - x166 = (x7)*(x12); - x167 = _br2_mulhuu((x7), (x12)); - x168 = (x166)+(x162); - x169 = (uintptr_t)((x168)<(x166)); - x170 = (x169)+(x167); - x171 = (x170)+(x165); - x172 = (x6)*(x13); - x173 = _br2_mulhuu((x6), (x13)); - x174 = (x172)+(x168); - x175 = (uintptr_t)((x174)<(x172)); - x176 = (x175)+(x173); - x177 = (x176)+(x171); - x178 = (x5)*(x14); - x179 = _br2_mulhuu((x5), (x14)); - x180 = (x178)+(x174); - x181 = (uintptr_t)((x180)<(x178)); - x182 = (x181)+(x179); - x183 = (x182)+(x177); - x184 = (x4)*(x15); - x185 = _br2_mulhuu((x4), (x15)); - x186 = (x184)+(x180); - x187 = (uintptr_t)((x186)<(x184)); - x188 = (x187)+(x185); - x189 = (x188)+(x183); - x190 = (x3)*(x16); - x191 = _br2_mulhuu((x3), (x16)); - x192 = (x190)+(x186); - x193 = (uintptr_t)((x192)<(x190)); - x194 = (x193)+(x191); - x195 = (x194)+(x189); - x196 = (x2)*(x17); - x197 = _br2_mulhuu((x2), (x17)); - x198 = (x196)+(x192); - x199 = (uintptr_t)((x198)<(x196)); - x200 = (x199)+(x197); - x201 = (x200)+(x195); - x202 = (x1)*(x18); - x203 = _br2_mulhuu((x1), (x18)); - x204 = (x202)+(x198); - x205 = (uintptr_t)((x204)<(x202)); - x206 = (x205)+(x203); - x207 = (x206)+(x201); - x208 = (x0)*(x19); - x209 = _br2_mulhuu((x0), (x19)); - x210 = (x208)+(x204); - x211 = (uintptr_t)((x210)<(x208)); - x212 = (x211)+(x209); - x213 = (x212)+(x207); - x214 = (x210)+(x156); - x215 = (uintptr_t)((x214)<(x210)); - x216 = (x215)+(x213); - x217 = (x216)+(x157); - x218 = (x152)+(x214); - x219 = (uintptr_t)((x218)<(x152)); - x220 = (x219)+(x217); - x221 = (x218)+(x154); - x222 = (uintptr_t)((x221)<(x218)); - x223 = (x222)+(x220); - x224 = (x223)+(x155); - x225 = ((x221)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x224)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x226 = (x221)&((uintptr_t)(UINTMAX_C(67108863))); - x227 = (x9)*(x11); - x228 = _br2_mulhuu((x9), (x11)); - x229 = (x8)*(x12); - x230 = _br2_mulhuu((x8), (x12)); - x231 = (x229)+(x227); - x232 = (uintptr_t)((x231)<(x229)); - x233 = (x232)+(x230); - x234 = (x233)+(x228); - x235 = (x7)*(x13); - x236 = _br2_mulhuu((x7), (x13)); - x237 = (x235)+(x231); - x238 = (uintptr_t)((x237)<(x235)); - x239 = (x238)+(x236); - x240 = (x239)+(x234); - x241 = (x6)*(x14); - x242 = _br2_mulhuu((x6), (x14)); - x243 = (x241)+(x237); - x244 = (uintptr_t)((x243)<(x241)); - x245 = (x244)+(x242); - x246 = (x245)+(x240); - x247 = (x5)*(x15); - x248 = _br2_mulhuu((x5), (x15)); - x249 = (x247)+(x243); - x250 = (uintptr_t)((x249)<(x247)); - x251 = (x250)+(x248); - x252 = (x251)+(x246); - x253 = (x4)*(x16); - x254 = _br2_mulhuu((x4), (x16)); - x255 = (x253)+(x249); - x256 = (uintptr_t)((x255)<(x253)); - x257 = (x256)+(x254); - x258 = (x257)+(x252); - x259 = (x3)*(x17); - x260 = _br2_mulhuu((x3), (x17)); - x261 = (x259)+(x255); - x262 = (uintptr_t)((x261)<(x259)); - x263 = (x262)+(x260); - x264 = (x263)+(x258); - x265 = (x2)*(x18); - x266 = _br2_mulhuu((x2), (x18)); - x267 = (x265)+(x261); - x268 = (uintptr_t)((x267)<(x265)); - x269 = (x268)+(x266); - x270 = (x269)+(x264); - x271 = (x1)*(x19); - x272 = _br2_mulhuu((x1), (x19)); - x273 = (x271)+(x267); - x274 = (uintptr_t)((x273)<(x271)); - x275 = (x274)+(x272); - x276 = (x275)+(x270); - x277 = (x273)+((x86)<<_br2_shamt((uintptr_t)(UINTMAX_C(16)))); - x278 = (uintptr_t)((x277)<(x273)); - x279 = (x278)+(x276); - x280 = (x225)+(x277); - x281 = (uintptr_t)((x280)<(x225)); + x81 = (x79)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x82 = (x76)&((uintptr_t)(UINTMAX_C(67108863))); + x83 = (x9)*(x19); + x84 = _br2_mulhuu((x9), (x19)); + x85 = (x28)+(x83); + x86 = (uintptr_t)((x85)<(x28)); + x87 = (x86)+(x84); + x88 = (x85)*((uintptr_t)(UINTMAX_C(15632))); + x89 = _br2_mulhuu((x85), ((uintptr_t)(UINTMAX_C(15632)))); + x90 = (x29)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); + x91 = (x29)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); + x92 = (x8)*(x10); + x93 = _br2_mulhuu((x8), (x10)); + x94 = (x7)*(x11); + x95 = _br2_mulhuu((x7), (x11)); + x96 = (x94)+(x92); + x97 = (uintptr_t)((x96)<(x94)); + x98 = (x97)+(x95); + x99 = (x98)+(x93); + x100 = (x6)*(x12); + x101 = _br2_mulhuu((x6), (x12)); + x102 = (x100)+(x96); + x103 = (uintptr_t)((x102)<(x100)); + x104 = (x103)+(x101); + x105 = (x104)+(x99); + x106 = (x5)*(x13); + x107 = _br2_mulhuu((x5), (x13)); + x108 = (x106)+(x102); + x109 = (uintptr_t)((x108)<(x106)); + x110 = (x109)+(x107); + x111 = (x110)+(x105); + x112 = (x4)*(x14); + x113 = _br2_mulhuu((x4), (x14)); + x114 = (x112)+(x108); + x115 = (uintptr_t)((x114)<(x112)); + x116 = (x115)+(x113); + x117 = (x116)+(x111); + x118 = (x3)*(x15); + x119 = _br2_mulhuu((x3), (x15)); + x120 = (x118)+(x114); + x121 = (uintptr_t)((x120)<(x118)); + x122 = (x121)+(x119); + x123 = (x122)+(x117); + x124 = (x2)*(x16); + x125 = _br2_mulhuu((x2), (x16)); + x126 = (x124)+(x120); + x127 = (uintptr_t)((x126)<(x124)); + x128 = (x127)+(x125); + x129 = (x128)+(x123); + x130 = (x1)*(x17); + x131 = _br2_mulhuu((x1), (x17)); + x132 = (x130)+(x126); + x133 = (uintptr_t)((x132)<(x130)); + x134 = (x133)+(x131); + x135 = (x134)+(x129); + x136 = (x0)*(x18); + x137 = _br2_mulhuu((x0), (x18)); + x138 = (x136)+(x132); + x139 = (uintptr_t)((x138)<(x136)); + x140 = (x139)+(x137); + x141 = (x140)+(x135); + x142 = (x138)+(x90); + x143 = (uintptr_t)((x142)<(x138)); + x144 = (x143)+(x141); + x145 = (x144)+(x91); + x146 = (x80)+(x142); + x147 = (uintptr_t)((x146)<(x80)); + x148 = (x147)+(x81); + x149 = (x148)+(x145); + x150 = (x146)+(x88); + x151 = (uintptr_t)((x150)<(x146)); + x152 = (x151)+(x149); + x153 = (x152)+(x89); + x154 = ((x150)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x153)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x155 = (x153)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x156 = (x150)&((uintptr_t)(UINTMAX_C(67108863))); + x157 = (x87)*((uintptr_t)(UINTMAX_C(1000448))); + x158 = _br2_mulhuu((x87), ((uintptr_t)(UINTMAX_C(1000448)))); + x159 = (x85)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); + x160 = (x85)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); + x161 = (x9)*(x10); + x162 = _br2_mulhuu((x9), (x10)); + x163 = (x8)*(x11); + x164 = _br2_mulhuu((x8), (x11)); + x165 = (x163)+(x161); + x166 = (uintptr_t)((x165)<(x163)); + x167 = (x166)+(x164); + x168 = (x167)+(x162); + x169 = (x7)*(x12); + x170 = _br2_mulhuu((x7), (x12)); + x171 = (x169)+(x165); + x172 = (uintptr_t)((x171)<(x169)); + x173 = (x172)+(x170); + x174 = (x173)+(x168); + x175 = (x6)*(x13); + x176 = _br2_mulhuu((x6), (x13)); + x177 = (x175)+(x171); + x178 = (uintptr_t)((x177)<(x175)); + x179 = (x178)+(x176); + x180 = (x179)+(x174); + x181 = (x5)*(x14); + x182 = _br2_mulhuu((x5), (x14)); + x183 = (x181)+(x177); + x184 = (uintptr_t)((x183)<(x181)); + x185 = (x184)+(x182); + x186 = (x185)+(x180); + x187 = (x4)*(x15); + x188 = _br2_mulhuu((x4), (x15)); + x189 = (x187)+(x183); + x190 = (uintptr_t)((x189)<(x187)); + x191 = (x190)+(x188); + x192 = (x191)+(x186); + x193 = (x3)*(x16); + x194 = _br2_mulhuu((x3), (x16)); + x195 = (x193)+(x189); + x196 = (uintptr_t)((x195)<(x193)); + x197 = (x196)+(x194); + x198 = (x197)+(x192); + x199 = (x2)*(x17); + x200 = _br2_mulhuu((x2), (x17)); + x201 = (x199)+(x195); + x202 = (uintptr_t)((x201)<(x199)); + x203 = (x202)+(x200); + x204 = (x203)+(x198); + x205 = (x1)*(x18); + x206 = _br2_mulhuu((x1), (x18)); + x207 = (x205)+(x201); + x208 = (uintptr_t)((x207)<(x205)); + x209 = (x208)+(x206); + x210 = (x209)+(x204); + x211 = (x0)*(x19); + x212 = _br2_mulhuu((x0), (x19)); + x213 = (x211)+(x207); + x214 = (uintptr_t)((x213)<(x211)); + x215 = (x214)+(x212); + x216 = (x215)+(x210); + x217 = (x213)+(x159); + x218 = (uintptr_t)((x217)<(x213)); + x219 = (x218)+(x216); + x220 = (x219)+(x160); + x221 = (x154)+(x217); + x222 = (uintptr_t)((x221)<(x154)); + x223 = (x222)+(x155); + x224 = (x223)+(x220); + x225 = (x221)+(x157); + x226 = (uintptr_t)((x225)<(x221)); + x227 = (x226)+(x224); + x228 = (x227)+(x158); + x229 = ((x225)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x228)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x230 = (x228)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x231 = (x225)&((uintptr_t)(UINTMAX_C(67108863))); + x232 = (x87)<<_br2_shamt((uintptr_t)(UINTMAX_C(16))); + x233 = (x87)>>_br2_shamt((uintptr_t)(UINTMAX_C(16))); + x234 = (x9)*(x11); + x235 = _br2_mulhuu((x9), (x11)); + x236 = (x8)*(x12); + x237 = _br2_mulhuu((x8), (x12)); + x238 = (x236)+(x234); + x239 = (uintptr_t)((x238)<(x236)); + x240 = (x239)+(x237); + x241 = (x240)+(x235); + x242 = (x7)*(x13); + x243 = _br2_mulhuu((x7), (x13)); + x244 = (x242)+(x238); + x245 = (uintptr_t)((x244)<(x242)); + x246 = (x245)+(x243); + x247 = (x246)+(x241); + x248 = (x6)*(x14); + x249 = _br2_mulhuu((x6), (x14)); + x250 = (x248)+(x244); + x251 = (uintptr_t)((x250)<(x248)); + x252 = (x251)+(x249); + x253 = (x252)+(x247); + x254 = (x5)*(x15); + x255 = _br2_mulhuu((x5), (x15)); + x256 = (x254)+(x250); + x257 = (uintptr_t)((x256)<(x254)); + x258 = (x257)+(x255); + x259 = (x258)+(x253); + x260 = (x4)*(x16); + x261 = _br2_mulhuu((x4), (x16)); + x262 = (x260)+(x256); + x263 = (uintptr_t)((x262)<(x260)); + x264 = (x263)+(x261); + x265 = (x264)+(x259); + x266 = (x3)*(x17); + x267 = _br2_mulhuu((x3), (x17)); + x268 = (x266)+(x262); + x269 = (uintptr_t)((x268)<(x266)); + x270 = (x269)+(x267); + x271 = (x270)+(x265); + x272 = (x2)*(x18); + x273 = _br2_mulhuu((x2), (x18)); + x274 = (x272)+(x268); + x275 = (uintptr_t)((x274)<(x272)); + x276 = (x275)+(x273); + x277 = (x276)+(x271); + x278 = (x1)*(x19); + x279 = _br2_mulhuu((x1), (x19)); + x280 = (x278)+(x274); + x281 = (uintptr_t)((x280)<(x278)); x282 = (x281)+(x279); - x283 = ((x280)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x282)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x284 = (x280)&((uintptr_t)(UINTMAX_C(67108863))); - x285 = (x226)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); - x286 = (x226)&((uintptr_t)(UINTMAX_C(4194303))); - x287 = ((x285)+((x284)<<_br2_shamt((uintptr_t)(UINTMAX_C(4)))))*((uintptr_t)(UINTMAX_C(977))); - x288 = _br2_mulhuu(((x285)+((x284)<<_br2_shamt((uintptr_t)(UINTMAX_C(4))))), ((uintptr_t)(UINTMAX_C(977)))); - x289 = (x0)*(x10); - x290 = _br2_mulhuu((x0), (x10)); - x291 = (x289)+(x287); - x292 = (uintptr_t)((x291)<(x289)); - x293 = (x292)+(x290); - x294 = (x293)+(x288); - x295 = ((x291)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x294)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x296 = (x291)&((uintptr_t)(UINTMAX_C(67108863))); - x297 = (x9)*(x12); - x298 = _br2_mulhuu((x9), (x12)); - x299 = (x8)*(x13); - x300 = _br2_mulhuu((x8), (x13)); + x283 = (x282)+(x277); + x284 = (x280)+(x232); + x285 = (uintptr_t)((x284)<(x280)); + x286 = (x285)+(x283); + x287 = (x286)+(x233); + x288 = (x229)+(x284); + x289 = (uintptr_t)((x288)<(x229)); + x290 = (x289)+(x230); + x291 = (x290)+(x287); + x292 = ((x288)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x291)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x293 = (x291)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x294 = (x288)&((uintptr_t)(UINTMAX_C(67108863))); + x295 = (x231)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); + x296 = (x231)&((uintptr_t)(UINTMAX_C(4194303))); + x297 = ((x295)+((x294)<<_br2_shamt((uintptr_t)(UINTMAX_C(4)))))*((uintptr_t)(UINTMAX_C(977))); + x298 = _br2_mulhuu(((x295)+((x294)<<_br2_shamt((uintptr_t)(UINTMAX_C(4))))), ((uintptr_t)(UINTMAX_C(977)))); + x299 = (x0)*(x10); + x300 = _br2_mulhuu((x0), (x10)); x301 = (x299)+(x297); x302 = (uintptr_t)((x301)<(x299)); x303 = (x302)+(x300); x304 = (x303)+(x298); - x305 = (x7)*(x14); - x306 = _br2_mulhuu((x7), (x14)); - x307 = (x305)+(x301); - x308 = (uintptr_t)((x307)<(x305)); - x309 = (x308)+(x306); - x310 = (x309)+(x304); - x311 = (x6)*(x15); - x312 = _br2_mulhuu((x6), (x15)); - x313 = (x311)+(x307); - x314 = (uintptr_t)((x313)<(x311)); - x315 = (x314)+(x312); - x316 = (x315)+(x310); - x317 = (x5)*(x16); - x318 = _br2_mulhuu((x5), (x16)); - x319 = (x317)+(x313); - x320 = (uintptr_t)((x319)<(x317)); - x321 = (x320)+(x318); - x322 = (x321)+(x316); - x323 = (x4)*(x17); - x324 = _br2_mulhuu((x4), (x17)); - x325 = (x323)+(x319); - x326 = (uintptr_t)((x325)<(x323)); - x327 = (x326)+(x324); - x328 = (x327)+(x322); - x329 = (x3)*(x18); - x330 = _br2_mulhuu((x3), (x18)); - x331 = (x329)+(x325); - x332 = (uintptr_t)((x331)<(x329)); - x333 = (x332)+(x330); - x334 = (x333)+(x328); - x335 = (x2)*(x19); - x336 = _br2_mulhuu((x2), (x19)); - x337 = (x335)+(x331); - x338 = (uintptr_t)((x337)<(x335)); - x339 = (x338)+(x336); - x340 = (x339)+(x334); - x341 = (x283)+(x337); - x342 = (uintptr_t)((x341)<(x283)); - x343 = (x342)+(x340); - x344 = ((x341)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x343)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x345 = (x341)&((uintptr_t)(UINTMAX_C(67108863))); - x346 = (x345)*((uintptr_t)(UINTMAX_C(15632))); - x347 = _br2_mulhuu((x345), ((uintptr_t)(UINTMAX_C(15632)))); - x348 = ((x285)+((x284)<<_br2_shamt((uintptr_t)(UINTMAX_C(4)))))<<_br2_shamt((uintptr_t)(UINTMAX_C(6))); - x349 = ((x285)+((x284)<<_br2_shamt((uintptr_t)(UINTMAX_C(4)))))>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); - x350 = (x1)*(x10); - x351 = _br2_mulhuu((x1), (x10)); - x352 = (x0)*(x11); - x353 = _br2_mulhuu((x0), (x11)); - x354 = (x352)+(x350); - x355 = (uintptr_t)((x354)<(x352)); - x356 = (x355)+(x353); - x357 = (x356)+(x351); - x358 = (x354)+(x348); - x359 = (uintptr_t)((x358)<(x354)); - x360 = (x359)+(x357); - x361 = (x360)+(x349); - x362 = (x295)+(x358); - x363 = (uintptr_t)((x362)<(x295)); - x364 = (x363)+(x361); - x365 = (x362)+(x346); - x366 = (uintptr_t)((x365)<(x362)); - x367 = (x366)+(x364); - x368 = (x367)+(x347); - x369 = ((x365)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x368)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x370 = (x365)&((uintptr_t)(UINTMAX_C(67108863))); - x371 = (x9)*(x13); - x372 = _br2_mulhuu((x9), (x13)); - x373 = (x8)*(x14); - x374 = _br2_mulhuu((x8), (x14)); - x375 = (x373)+(x371); - x376 = (uintptr_t)((x375)<(x373)); - x377 = (x376)+(x374); - x378 = (x377)+(x372); - x379 = (x7)*(x15); - x380 = _br2_mulhuu((x7), (x15)); - x381 = (x379)+(x375); - x382 = (uintptr_t)((x381)<(x379)); - x383 = (x382)+(x380); - x384 = (x383)+(x378); - x385 = (x6)*(x16); - x386 = _br2_mulhuu((x6), (x16)); - x387 = (x385)+(x381); - x388 = (uintptr_t)((x387)<(x385)); - x389 = (x388)+(x386); - x390 = (x389)+(x384); - x391 = (x5)*(x17); - x392 = _br2_mulhuu((x5), (x17)); - x393 = (x391)+(x387); - x394 = (uintptr_t)((x393)<(x391)); - x395 = (x394)+(x392); - x396 = (x395)+(x390); - x397 = (x4)*(x18); - x398 = _br2_mulhuu((x4), (x18)); - x399 = (x397)+(x393); - x400 = (uintptr_t)((x399)<(x397)); - x401 = (x400)+(x398); - x402 = (x401)+(x396); - x403 = (x3)*(x19); - x404 = _br2_mulhuu((x3), (x19)); - x405 = (x403)+(x399); - x406 = (uintptr_t)((x405)<(x403)); - x407 = (x406)+(x404); - x408 = (x407)+(x402); - x409 = (x344)+(x405); - x410 = (uintptr_t)((x409)<(x344)); - x411 = (x410)+(x408); - x412 = ((x409)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x411)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x413 = (x409)&((uintptr_t)(UINTMAX_C(67108863))); - x414 = (x413)*((uintptr_t)(UINTMAX_C(15632))); - x415 = _br2_mulhuu((x413), ((uintptr_t)(UINTMAX_C(15632)))); - x416 = (x345)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); - x417 = (x345)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); - x418 = (x2)*(x10); - x419 = _br2_mulhuu((x2), (x10)); - x420 = (x1)*(x11); - x421 = _br2_mulhuu((x1), (x11)); - x422 = (x420)+(x418); - x423 = (uintptr_t)((x422)<(x420)); - x424 = (x423)+(x421); - x425 = (x424)+(x419); - x426 = (x0)*(x12); - x427 = _br2_mulhuu((x0), (x12)); - x428 = (x426)+(x422); - x429 = (uintptr_t)((x428)<(x426)); - x430 = (x429)+(x427); - x431 = (x430)+(x425); - x432 = (x428)+(x416); - x433 = (uintptr_t)((x432)<(x428)); - x434 = (x433)+(x431); - x435 = (x434)+(x417); - x436 = (x369)+(x432); - x437 = (uintptr_t)((x436)<(x369)); - x438 = (x437)+(x435); - x439 = (x436)+(x414); - x440 = (uintptr_t)((x439)<(x436)); + x305 = ((x301)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x304)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x306 = (x304)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x307 = (x301)&((uintptr_t)(UINTMAX_C(67108863))); + x308 = (x9)*(x12); + x309 = _br2_mulhuu((x9), (x12)); + x310 = (x8)*(x13); + x311 = _br2_mulhuu((x8), (x13)); + x312 = (x310)+(x308); + x313 = (uintptr_t)((x312)<(x310)); + x314 = (x313)+(x311); + x315 = (x314)+(x309); + x316 = (x7)*(x14); + x317 = _br2_mulhuu((x7), (x14)); + x318 = (x316)+(x312); + x319 = (uintptr_t)((x318)<(x316)); + x320 = (x319)+(x317); + x321 = (x320)+(x315); + x322 = (x6)*(x15); + x323 = _br2_mulhuu((x6), (x15)); + x324 = (x322)+(x318); + x325 = (uintptr_t)((x324)<(x322)); + x326 = (x325)+(x323); + x327 = (x326)+(x321); + x328 = (x5)*(x16); + x329 = _br2_mulhuu((x5), (x16)); + x330 = (x328)+(x324); + x331 = (uintptr_t)((x330)<(x328)); + x332 = (x331)+(x329); + x333 = (x332)+(x327); + x334 = (x4)*(x17); + x335 = _br2_mulhuu((x4), (x17)); + x336 = (x334)+(x330); + x337 = (uintptr_t)((x336)<(x334)); + x338 = (x337)+(x335); + x339 = (x338)+(x333); + x340 = (x3)*(x18); + x341 = _br2_mulhuu((x3), (x18)); + x342 = (x340)+(x336); + x343 = (uintptr_t)((x342)<(x340)); + x344 = (x343)+(x341); + x345 = (x344)+(x339); + x346 = (x2)*(x19); + x347 = _br2_mulhuu((x2), (x19)); + x348 = (x346)+(x342); + x349 = (uintptr_t)((x348)<(x346)); + x350 = (x349)+(x347); + x351 = (x350)+(x345); + x352 = (x292)+(x348); + x353 = (uintptr_t)((x352)<(x292)); + x354 = (x353)+(x293); + x355 = (x354)+(x351); + x356 = ((x352)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x355)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x357 = (x355)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x358 = (x352)&((uintptr_t)(UINTMAX_C(67108863))); + x359 = (x358)*((uintptr_t)(UINTMAX_C(15632))); + x360 = _br2_mulhuu((x358), ((uintptr_t)(UINTMAX_C(15632)))); + x361 = ((x295)+((x294)<<_br2_shamt((uintptr_t)(UINTMAX_C(4)))))<<_br2_shamt((uintptr_t)(UINTMAX_C(6))); + x362 = ((x295)+((x294)<<_br2_shamt((uintptr_t)(UINTMAX_C(4)))))>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x363 = (x1)*(x10); + x364 = _br2_mulhuu((x1), (x10)); + x365 = (x0)*(x11); + x366 = _br2_mulhuu((x0), (x11)); + x367 = (x365)+(x363); + x368 = (uintptr_t)((x367)<(x365)); + x369 = (x368)+(x366); + x370 = (x369)+(x364); + x371 = (x367)+(x361); + x372 = (uintptr_t)((x371)<(x367)); + x373 = (x372)+(x370); + x374 = (x373)+(x362); + x375 = (x305)+(x371); + x376 = (uintptr_t)((x375)<(x305)); + x377 = (x376)+(x306); + x378 = (x377)+(x374); + x379 = (x375)+(x359); + x380 = (uintptr_t)((x379)<(x375)); + x381 = (x380)+(x378); + x382 = (x381)+(x360); + x383 = ((x379)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x382)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x384 = (x382)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x385 = (x379)&((uintptr_t)(UINTMAX_C(67108863))); + x386 = (x9)*(x13); + x387 = _br2_mulhuu((x9), (x13)); + x388 = (x8)*(x14); + x389 = _br2_mulhuu((x8), (x14)); + x390 = (x388)+(x386); + x391 = (uintptr_t)((x390)<(x388)); + x392 = (x391)+(x389); + x393 = (x392)+(x387); + x394 = (x7)*(x15); + x395 = _br2_mulhuu((x7), (x15)); + x396 = (x394)+(x390); + x397 = (uintptr_t)((x396)<(x394)); + x398 = (x397)+(x395); + x399 = (x398)+(x393); + x400 = (x6)*(x16); + x401 = _br2_mulhuu((x6), (x16)); + x402 = (x400)+(x396); + x403 = (uintptr_t)((x402)<(x400)); + x404 = (x403)+(x401); + x405 = (x404)+(x399); + x406 = (x5)*(x17); + x407 = _br2_mulhuu((x5), (x17)); + x408 = (x406)+(x402); + x409 = (uintptr_t)((x408)<(x406)); + x410 = (x409)+(x407); + x411 = (x410)+(x405); + x412 = (x4)*(x18); + x413 = _br2_mulhuu((x4), (x18)); + x414 = (x412)+(x408); + x415 = (uintptr_t)((x414)<(x412)); + x416 = (x415)+(x413); + x417 = (x416)+(x411); + x418 = (x3)*(x19); + x419 = _br2_mulhuu((x3), (x19)); + x420 = (x418)+(x414); + x421 = (uintptr_t)((x420)<(x418)); + x422 = (x421)+(x419); + x423 = (x422)+(x417); + x424 = (x356)+(x420); + x425 = (uintptr_t)((x424)<(x356)); + x426 = (x425)+(x357); + x427 = (x426)+(x423); + x428 = ((x424)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x427)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x429 = (x427)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x430 = (x424)&((uintptr_t)(UINTMAX_C(67108863))); + x431 = (x430)*((uintptr_t)(UINTMAX_C(15632))); + x432 = _br2_mulhuu((x430), ((uintptr_t)(UINTMAX_C(15632)))); + x433 = (x358)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); + x434 = (x358)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); + x435 = (x2)*(x10); + x436 = _br2_mulhuu((x2), (x10)); + x437 = (x1)*(x11); + x438 = _br2_mulhuu((x1), (x11)); + x439 = (x437)+(x435); + x440 = (uintptr_t)((x439)<(x437)); x441 = (x440)+(x438); - x442 = (x441)+(x415); - x443 = ((x439)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x442)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x444 = (x439)&((uintptr_t)(UINTMAX_C(67108863))); - x445 = (x9)*(x14); - x446 = _br2_mulhuu((x9), (x14)); - x447 = (x8)*(x15); - x448 = _br2_mulhuu((x8), (x15)); - x449 = (x447)+(x445); - x450 = (uintptr_t)((x449)<(x447)); + x442 = (x441)+(x436); + x443 = (x0)*(x12); + x444 = _br2_mulhuu((x0), (x12)); + x445 = (x443)+(x439); + x446 = (uintptr_t)((x445)<(x443)); + x447 = (x446)+(x444); + x448 = (x447)+(x442); + x449 = (x445)+(x433); + x450 = (uintptr_t)((x449)<(x445)); x451 = (x450)+(x448); - x452 = (x451)+(x446); - x453 = (x7)*(x16); - x454 = _br2_mulhuu((x7), (x16)); - x455 = (x453)+(x449); - x456 = (uintptr_t)((x455)<(x453)); - x457 = (x456)+(x454); - x458 = (x457)+(x452); - x459 = (x6)*(x17); - x460 = _br2_mulhuu((x6), (x17)); - x461 = (x459)+(x455); - x462 = (uintptr_t)((x461)<(x459)); - x463 = (x462)+(x460); - x464 = (x463)+(x458); - x465 = (x5)*(x18); - x466 = _br2_mulhuu((x5), (x18)); - x467 = (x465)+(x461); - x468 = (uintptr_t)((x467)<(x465)); - x469 = (x468)+(x466); - x470 = (x469)+(x464); - x471 = (x4)*(x19); - x472 = _br2_mulhuu((x4), (x19)); - x473 = (x471)+(x467); - x474 = (uintptr_t)((x473)<(x471)); - x475 = (x474)+(x472); - x476 = (x475)+(x470); - x477 = (x412)+(x473); - x478 = (uintptr_t)((x477)<(x412)); - x479 = (x478)+(x476); - x480 = ((x477)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x479)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x481 = (x477)&((uintptr_t)(UINTMAX_C(67108863))); - x482 = (x481)*((uintptr_t)(UINTMAX_C(15632))); - x483 = _br2_mulhuu((x481), ((uintptr_t)(UINTMAX_C(15632)))); - x484 = (x413)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); - x485 = (x413)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); - x486 = (x3)*(x10); - x487 = _br2_mulhuu((x3), (x10)); - x488 = (x2)*(x11); - x489 = _br2_mulhuu((x2), (x11)); - x490 = (x488)+(x486); - x491 = (uintptr_t)((x490)<(x488)); - x492 = (x491)+(x489); - x493 = (x492)+(x487); - x494 = (x1)*(x12); - x495 = _br2_mulhuu((x1), (x12)); - x496 = (x494)+(x490); - x497 = (uintptr_t)((x496)<(x494)); - x498 = (x497)+(x495); - x499 = (x498)+(x493); - x500 = (x0)*(x13); - x501 = _br2_mulhuu((x0), (x13)); - x502 = (x500)+(x496); - x503 = (uintptr_t)((x502)<(x500)); - x504 = (x503)+(x501); - x505 = (x504)+(x499); - x506 = (x502)+(x484); - x507 = (uintptr_t)((x506)<(x502)); - x508 = (x507)+(x505); - x509 = (x508)+(x485); - x510 = (x443)+(x506); - x511 = (uintptr_t)((x510)<(x443)); - x512 = (x511)+(x509); - x513 = (x510)+(x482); - x514 = (uintptr_t)((x513)<(x510)); - x515 = (x514)+(x512); - x516 = (x515)+(x483); - x517 = ((x513)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x516)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x518 = (x513)&((uintptr_t)(UINTMAX_C(67108863))); - x519 = (x9)*(x15); - x520 = _br2_mulhuu((x9), (x15)); - x521 = (x8)*(x16); - x522 = _br2_mulhuu((x8), (x16)); - x523 = (x521)+(x519); + x452 = (x451)+(x434); + x453 = (x383)+(x449); + x454 = (uintptr_t)((x453)<(x383)); + x455 = (x454)+(x384); + x456 = (x455)+(x452); + x457 = (x453)+(x431); + x458 = (uintptr_t)((x457)<(x453)); + x459 = (x458)+(x456); + x460 = (x459)+(x432); + x461 = ((x457)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x460)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x462 = (x460)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x463 = (x457)&((uintptr_t)(UINTMAX_C(67108863))); + x464 = (x9)*(x14); + x465 = _br2_mulhuu((x9), (x14)); + x466 = (x8)*(x15); + x467 = _br2_mulhuu((x8), (x15)); + x468 = (x466)+(x464); + x469 = (uintptr_t)((x468)<(x466)); + x470 = (x469)+(x467); + x471 = (x470)+(x465); + x472 = (x7)*(x16); + x473 = _br2_mulhuu((x7), (x16)); + x474 = (x472)+(x468); + x475 = (uintptr_t)((x474)<(x472)); + x476 = (x475)+(x473); + x477 = (x476)+(x471); + x478 = (x6)*(x17); + x479 = _br2_mulhuu((x6), (x17)); + x480 = (x478)+(x474); + x481 = (uintptr_t)((x480)<(x478)); + x482 = (x481)+(x479); + x483 = (x482)+(x477); + x484 = (x5)*(x18); + x485 = _br2_mulhuu((x5), (x18)); + x486 = (x484)+(x480); + x487 = (uintptr_t)((x486)<(x484)); + x488 = (x487)+(x485); + x489 = (x488)+(x483); + x490 = (x4)*(x19); + x491 = _br2_mulhuu((x4), (x19)); + x492 = (x490)+(x486); + x493 = (uintptr_t)((x492)<(x490)); + x494 = (x493)+(x491); + x495 = (x494)+(x489); + x496 = (x428)+(x492); + x497 = (uintptr_t)((x496)<(x428)); + x498 = (x497)+(x429); + x499 = (x498)+(x495); + x500 = ((x496)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x499)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x501 = (x499)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x502 = (x496)&((uintptr_t)(UINTMAX_C(67108863))); + x503 = (x502)*((uintptr_t)(UINTMAX_C(15632))); + x504 = _br2_mulhuu((x502), ((uintptr_t)(UINTMAX_C(15632)))); + x505 = (x430)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); + x506 = (x430)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); + x507 = (x3)*(x10); + x508 = _br2_mulhuu((x3), (x10)); + x509 = (x2)*(x11); + x510 = _br2_mulhuu((x2), (x11)); + x511 = (x509)+(x507); + x512 = (uintptr_t)((x511)<(x509)); + x513 = (x512)+(x510); + x514 = (x513)+(x508); + x515 = (x1)*(x12); + x516 = _br2_mulhuu((x1), (x12)); + x517 = (x515)+(x511); + x518 = (uintptr_t)((x517)<(x515)); + x519 = (x518)+(x516); + x520 = (x519)+(x514); + x521 = (x0)*(x13); + x522 = _br2_mulhuu((x0), (x13)); + x523 = (x521)+(x517); x524 = (uintptr_t)((x523)<(x521)); x525 = (x524)+(x522); x526 = (x525)+(x520); - x527 = (x7)*(x17); - x528 = _br2_mulhuu((x7), (x17)); - x529 = (x527)+(x523); - x530 = (uintptr_t)((x529)<(x527)); - x531 = (x530)+(x528); - x532 = (x531)+(x526); - x533 = (x6)*(x18); - x534 = _br2_mulhuu((x6), (x18)); - x535 = (x533)+(x529); - x536 = (uintptr_t)((x535)<(x533)); + x527 = (x523)+(x505); + x528 = (uintptr_t)((x527)<(x523)); + x529 = (x528)+(x526); + x530 = (x529)+(x506); + x531 = (x461)+(x527); + x532 = (uintptr_t)((x531)<(x461)); + x533 = (x532)+(x462); + x534 = (x533)+(x530); + x535 = (x531)+(x503); + x536 = (uintptr_t)((x535)<(x531)); x537 = (x536)+(x534); - x538 = (x537)+(x532); - x539 = (x5)*(x19); - x540 = _br2_mulhuu((x5), (x19)); - x541 = (x539)+(x535); - x542 = (uintptr_t)((x541)<(x539)); - x543 = (x542)+(x540); - x544 = (x543)+(x538); - x545 = (x480)+(x541); - x546 = (uintptr_t)((x545)<(x480)); - x547 = (x546)+(x544); - x548 = ((x545)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x547)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x549 = (x545)&((uintptr_t)(UINTMAX_C(67108863))); - x550 = (x549)*((uintptr_t)(UINTMAX_C(15632))); - x551 = _br2_mulhuu((x549), ((uintptr_t)(UINTMAX_C(15632)))); - x552 = (x481)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); - x553 = (x481)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); - x554 = (x4)*(x10); - x555 = _br2_mulhuu((x4), (x10)); - x556 = (x3)*(x11); - x557 = _br2_mulhuu((x3), (x11)); - x558 = (x556)+(x554); + x538 = (x537)+(x504); + x539 = ((x535)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x538)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x540 = (x538)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x541 = (x535)&((uintptr_t)(UINTMAX_C(67108863))); + x542 = (x9)*(x15); + x543 = _br2_mulhuu((x9), (x15)); + x544 = (x8)*(x16); + x545 = _br2_mulhuu((x8), (x16)); + x546 = (x544)+(x542); + x547 = (uintptr_t)((x546)<(x544)); + x548 = (x547)+(x545); + x549 = (x548)+(x543); + x550 = (x7)*(x17); + x551 = _br2_mulhuu((x7), (x17)); + x552 = (x550)+(x546); + x553 = (uintptr_t)((x552)<(x550)); + x554 = (x553)+(x551); + x555 = (x554)+(x549); + x556 = (x6)*(x18); + x557 = _br2_mulhuu((x6), (x18)); + x558 = (x556)+(x552); x559 = (uintptr_t)((x558)<(x556)); x560 = (x559)+(x557); x561 = (x560)+(x555); - x562 = (x2)*(x12); - x563 = _br2_mulhuu((x2), (x12)); + x562 = (x5)*(x19); + x563 = _br2_mulhuu((x5), (x19)); x564 = (x562)+(x558); x565 = (uintptr_t)((x564)<(x562)); x566 = (x565)+(x563); x567 = (x566)+(x561); - x568 = (x1)*(x13); - x569 = _br2_mulhuu((x1), (x13)); - x570 = (x568)+(x564); - x571 = (uintptr_t)((x570)<(x568)); - x572 = (x571)+(x569); - x573 = (x572)+(x567); - x574 = (x0)*(x14); - x575 = _br2_mulhuu((x0), (x14)); - x576 = (x574)+(x570); - x577 = (uintptr_t)((x576)<(x574)); - x578 = (x577)+(x575); - x579 = (x578)+(x573); - x580 = (x576)+(x552); - x581 = (uintptr_t)((x580)<(x576)); - x582 = (x581)+(x579); - x583 = (x582)+(x553); - x584 = (x517)+(x580); - x585 = (uintptr_t)((x584)<(x517)); - x586 = (x585)+(x583); - x587 = (x584)+(x550); - x588 = (uintptr_t)((x587)<(x584)); - x589 = (x588)+(x586); - x590 = (x589)+(x551); - x591 = ((x587)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x590)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x592 = (x587)&((uintptr_t)(UINTMAX_C(67108863))); - x593 = (x9)*(x16); - x594 = _br2_mulhuu((x9), (x16)); - x595 = (x8)*(x17); - x596 = _br2_mulhuu((x8), (x17)); - x597 = (x595)+(x593); - x598 = (uintptr_t)((x597)<(x595)); - x599 = (x598)+(x596); - x600 = (x599)+(x594); - x601 = (x7)*(x18); - x602 = _br2_mulhuu((x7), (x18)); - x603 = (x601)+(x597); - x604 = (uintptr_t)((x603)<(x601)); - x605 = (x604)+(x602); - x606 = (x605)+(x600); - x607 = (x6)*(x19); - x608 = _br2_mulhuu((x6), (x19)); - x609 = (x607)+(x603); - x610 = (uintptr_t)((x609)<(x607)); - x611 = (x610)+(x608); - x612 = (x611)+(x606); - x613 = (x548)+(x609); - x614 = (uintptr_t)((x613)<(x548)); + x568 = (x500)+(x564); + x569 = (uintptr_t)((x568)<(x500)); + x570 = (x569)+(x501); + x571 = (x570)+(x567); + x572 = ((x568)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x571)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x573 = (x571)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x574 = (x568)&((uintptr_t)(UINTMAX_C(67108863))); + x575 = (x574)*((uintptr_t)(UINTMAX_C(15632))); + x576 = _br2_mulhuu((x574), ((uintptr_t)(UINTMAX_C(15632)))); + x577 = (x502)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); + x578 = (x502)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); + x579 = (x4)*(x10); + x580 = _br2_mulhuu((x4), (x10)); + x581 = (x3)*(x11); + x582 = _br2_mulhuu((x3), (x11)); + x583 = (x581)+(x579); + x584 = (uintptr_t)((x583)<(x581)); + x585 = (x584)+(x582); + x586 = (x585)+(x580); + x587 = (x2)*(x12); + x588 = _br2_mulhuu((x2), (x12)); + x589 = (x587)+(x583); + x590 = (uintptr_t)((x589)<(x587)); + x591 = (x590)+(x588); + x592 = (x591)+(x586); + x593 = (x1)*(x13); + x594 = _br2_mulhuu((x1), (x13)); + x595 = (x593)+(x589); + x596 = (uintptr_t)((x595)<(x593)); + x597 = (x596)+(x594); + x598 = (x597)+(x592); + x599 = (x0)*(x14); + x600 = _br2_mulhuu((x0), (x14)); + x601 = (x599)+(x595); + x602 = (uintptr_t)((x601)<(x599)); + x603 = (x602)+(x600); + x604 = (x603)+(x598); + x605 = (x601)+(x577); + x606 = (uintptr_t)((x605)<(x601)); + x607 = (x606)+(x604); + x608 = (x607)+(x578); + x609 = (x539)+(x605); + x610 = (uintptr_t)((x609)<(x539)); + x611 = (x610)+(x540); + x612 = (x611)+(x608); + x613 = (x609)+(x575); + x614 = (uintptr_t)((x613)<(x609)); x615 = (x614)+(x612); - x616 = ((x613)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x615)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x617 = (x613)&((uintptr_t)(UINTMAX_C(67108863))); - x618 = (x617)*((uintptr_t)(UINTMAX_C(15632))); - x619 = _br2_mulhuu((x617), ((uintptr_t)(UINTMAX_C(15632)))); - x620 = (x549)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); - x621 = (x549)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); - x622 = (x5)*(x10); - x623 = _br2_mulhuu((x5), (x10)); - x624 = (x4)*(x11); - x625 = _br2_mulhuu((x4), (x11)); - x626 = (x624)+(x622); - x627 = (uintptr_t)((x626)<(x624)); - x628 = (x627)+(x625); - x629 = (x628)+(x623); - x630 = (x3)*(x12); - x631 = _br2_mulhuu((x3), (x12)); - x632 = (x630)+(x626); - x633 = (uintptr_t)((x632)<(x630)); - x634 = (x633)+(x631); - x635 = (x634)+(x629); - x636 = (x2)*(x13); - x637 = _br2_mulhuu((x2), (x13)); - x638 = (x636)+(x632); - x639 = (uintptr_t)((x638)<(x636)); - x640 = (x639)+(x637); - x641 = (x640)+(x635); - x642 = (x1)*(x14); - x643 = _br2_mulhuu((x1), (x14)); - x644 = (x642)+(x638); - x645 = (uintptr_t)((x644)<(x642)); - x646 = (x645)+(x643); - x647 = (x646)+(x641); - x648 = (x0)*(x15); - x649 = _br2_mulhuu((x0), (x15)); - x650 = (x648)+(x644); - x651 = (uintptr_t)((x650)<(x648)); - x652 = (x651)+(x649); - x653 = (x652)+(x647); - x654 = (x650)+(x620); - x655 = (uintptr_t)((x654)<(x650)); - x656 = (x655)+(x653); - x657 = (x656)+(x621); - x658 = (x591)+(x654); - x659 = (uintptr_t)((x658)<(x591)); - x660 = (x659)+(x657); - x661 = (x658)+(x618); - x662 = (uintptr_t)((x661)<(x658)); + x616 = (x615)+(x576); + x617 = ((x613)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x616)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x618 = (x616)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x619 = (x613)&((uintptr_t)(UINTMAX_C(67108863))); + x620 = (x9)*(x16); + x621 = _br2_mulhuu((x9), (x16)); + x622 = (x8)*(x17); + x623 = _br2_mulhuu((x8), (x17)); + x624 = (x622)+(x620); + x625 = (uintptr_t)((x624)<(x622)); + x626 = (x625)+(x623); + x627 = (x626)+(x621); + x628 = (x7)*(x18); + x629 = _br2_mulhuu((x7), (x18)); + x630 = (x628)+(x624); + x631 = (uintptr_t)((x630)<(x628)); + x632 = (x631)+(x629); + x633 = (x632)+(x627); + x634 = (x6)*(x19); + x635 = _br2_mulhuu((x6), (x19)); + x636 = (x634)+(x630); + x637 = (uintptr_t)((x636)<(x634)); + x638 = (x637)+(x635); + x639 = (x638)+(x633); + x640 = (x572)+(x636); + x641 = (uintptr_t)((x640)<(x572)); + x642 = (x641)+(x573); + x643 = (x642)+(x639); + x644 = ((x640)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x643)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x645 = (x643)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x646 = (x640)&((uintptr_t)(UINTMAX_C(67108863))); + x647 = (x646)*((uintptr_t)(UINTMAX_C(15632))); + x648 = _br2_mulhuu((x646), ((uintptr_t)(UINTMAX_C(15632)))); + x649 = (x574)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); + x650 = (x574)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); + x651 = (x5)*(x10); + x652 = _br2_mulhuu((x5), (x10)); + x653 = (x4)*(x11); + x654 = _br2_mulhuu((x4), (x11)); + x655 = (x653)+(x651); + x656 = (uintptr_t)((x655)<(x653)); + x657 = (x656)+(x654); + x658 = (x657)+(x652); + x659 = (x3)*(x12); + x660 = _br2_mulhuu((x3), (x12)); + x661 = (x659)+(x655); + x662 = (uintptr_t)((x661)<(x659)); x663 = (x662)+(x660); - x664 = (x663)+(x619); - x665 = ((x661)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x664)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x666 = (x661)&((uintptr_t)(UINTMAX_C(67108863))); - x667 = (x9)*(x17); - x668 = _br2_mulhuu((x9), (x17)); - x669 = (x8)*(x18); - x670 = _br2_mulhuu((x8), (x18)); - x671 = (x669)+(x667); - x672 = (uintptr_t)((x671)<(x669)); - x673 = (x672)+(x670); - x674 = (x673)+(x668); - x675 = (x7)*(x19); - x676 = _br2_mulhuu((x7), (x19)); - x677 = (x675)+(x671); - x678 = (uintptr_t)((x677)<(x675)); - x679 = (x678)+(x676); - x680 = (x679)+(x674); - x681 = (x616)+(x677); - x682 = (uintptr_t)((x681)<(x616)); - x683 = (x682)+(x680); - x684 = (x681)*((uintptr_t)(UINTMAX_C(15632))); - x685 = _br2_mulhuu((x681), ((uintptr_t)(UINTMAX_C(15632)))); - x686 = (x617)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); - x687 = (x617)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); - x688 = (x6)*(x10); - x689 = _br2_mulhuu((x6), (x10)); - x690 = (x5)*(x11); - x691 = _br2_mulhuu((x5), (x11)); - x692 = (x690)+(x688); - x693 = (uintptr_t)((x692)<(x690)); - x694 = (x693)+(x691); - x695 = (x694)+(x689); - x696 = (x4)*(x12); - x697 = _br2_mulhuu((x4), (x12)); - x698 = (x696)+(x692); - x699 = (uintptr_t)((x698)<(x696)); - x700 = (x699)+(x697); - x701 = (x700)+(x695); - x702 = (x3)*(x13); - x703 = _br2_mulhuu((x3), (x13)); - x704 = (x702)+(x698); - x705 = (uintptr_t)((x704)<(x702)); - x706 = (x705)+(x703); - x707 = (x706)+(x701); - x708 = (x2)*(x14); - x709 = _br2_mulhuu((x2), (x14)); - x710 = (x708)+(x704); - x711 = (uintptr_t)((x710)<(x708)); - x712 = (x711)+(x709); - x713 = (x712)+(x707); - x714 = (x1)*(x15); - x715 = _br2_mulhuu((x1), (x15)); - x716 = (x714)+(x710); - x717 = (uintptr_t)((x716)<(x714)); - x718 = (x717)+(x715); - x719 = (x718)+(x713); - x720 = (x0)*(x16); - x721 = _br2_mulhuu((x0), (x16)); - x722 = (x720)+(x716); - x723 = (uintptr_t)((x722)<(x720)); - x724 = (x723)+(x721); - x725 = (x724)+(x719); - x726 = (x722)+(x686); - x727 = (uintptr_t)((x726)<(x722)); - x728 = (x727)+(x725); - x729 = (x728)+(x687); - x730 = (x665)+(x726); - x731 = (uintptr_t)((x730)<(x665)); + x664 = (x663)+(x658); + x665 = (x2)*(x13); + x666 = _br2_mulhuu((x2), (x13)); + x667 = (x665)+(x661); + x668 = (uintptr_t)((x667)<(x665)); + x669 = (x668)+(x666); + x670 = (x669)+(x664); + x671 = (x1)*(x14); + x672 = _br2_mulhuu((x1), (x14)); + x673 = (x671)+(x667); + x674 = (uintptr_t)((x673)<(x671)); + x675 = (x674)+(x672); + x676 = (x675)+(x670); + x677 = (x0)*(x15); + x678 = _br2_mulhuu((x0), (x15)); + x679 = (x677)+(x673); + x680 = (uintptr_t)((x679)<(x677)); + x681 = (x680)+(x678); + x682 = (x681)+(x676); + x683 = (x679)+(x649); + x684 = (uintptr_t)((x683)<(x679)); + x685 = (x684)+(x682); + x686 = (x685)+(x650); + x687 = (x617)+(x683); + x688 = (uintptr_t)((x687)<(x617)); + x689 = (x688)+(x618); + x690 = (x689)+(x686); + x691 = (x687)+(x647); + x692 = (uintptr_t)((x691)<(x687)); + x693 = (x692)+(x690); + x694 = (x693)+(x648); + x695 = ((x691)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x694)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x696 = (x694)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x697 = (x691)&((uintptr_t)(UINTMAX_C(67108863))); + x698 = (x9)*(x17); + x699 = _br2_mulhuu((x9), (x17)); + x700 = (x8)*(x18); + x701 = _br2_mulhuu((x8), (x18)); + x702 = (x700)+(x698); + x703 = (uintptr_t)((x702)<(x700)); + x704 = (x703)+(x701); + x705 = (x704)+(x699); + x706 = (x7)*(x19); + x707 = _br2_mulhuu((x7), (x19)); + x708 = (x706)+(x702); + x709 = (uintptr_t)((x708)<(x706)); + x710 = (x709)+(x707); + x711 = (x710)+(x705); + x712 = (x644)+(x708); + x713 = (uintptr_t)((x712)<(x644)); + x714 = (x713)+(x645); + x715 = (x714)+(x711); + x716 = (x712)*((uintptr_t)(UINTMAX_C(15632))); + x717 = _br2_mulhuu((x712), ((uintptr_t)(UINTMAX_C(15632)))); + x718 = (x646)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); + x719 = (x646)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); + x720 = (x6)*(x10); + x721 = _br2_mulhuu((x6), (x10)); + x722 = (x5)*(x11); + x723 = _br2_mulhuu((x5), (x11)); + x724 = (x722)+(x720); + x725 = (uintptr_t)((x724)<(x722)); + x726 = (x725)+(x723); + x727 = (x726)+(x721); + x728 = (x4)*(x12); + x729 = _br2_mulhuu((x4), (x12)); + x730 = (x728)+(x724); + x731 = (uintptr_t)((x730)<(x728)); x732 = (x731)+(x729); - x733 = (x730)+(x684); - x734 = (uintptr_t)((x733)<(x730)); - x735 = (x734)+(x732); - x736 = (x735)+(x685); - x737 = ((x733)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x736)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x738 = (x733)&((uintptr_t)(UINTMAX_C(67108863))); - x739 = (x683)*((uintptr_t)(UINTMAX_C(1000448))); - x740 = _br2_mulhuu((x683), ((uintptr_t)(UINTMAX_C(1000448)))); - x741 = (x681)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); - x742 = (x681)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); - x743 = (x81)+(x741); - x744 = (uintptr_t)((x743)<(x81)); - x745 = (x744)+(x742); - x746 = (x737)+(x743); - x747 = (uintptr_t)((x746)<(x737)); - x748 = (x747)+(x745); - x749 = (x746)+(x739); - x750 = (uintptr_t)((x749)<(x746)); - x751 = (x750)+(x748); - x752 = (x751)+(x740); - x753 = ((x749)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x752)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x754 = (x749)&((uintptr_t)(UINTMAX_C(67108863))); - x755 = (x683)<<_br2_shamt((uintptr_t)(UINTMAX_C(16))); - x756 = (x683)>>_br2_shamt((uintptr_t)(UINTMAX_C(16))); - x757 = (x153)+(x755); - x758 = (uintptr_t)((x757)<(x153)); - x759 = (x758)+(x756); - x760 = (x753)+(x757); - x761 = (uintptr_t)((x760)<(x753)); - x762 = (x761)+(x759); - x763 = ((x760)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x762)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x764 = (x760)&((uintptr_t)(UINTMAX_C(67108863))); - x765 = (x763)+(x286); - x766 = x296; - x767 = x370; - x768 = x444; - x769 = x518; - x770 = x592; - x771 = x666; - x772 = x738; - x773 = x754; - x774 = x764; - x775 = x765; + x733 = (x732)+(x727); + x734 = (x3)*(x13); + x735 = _br2_mulhuu((x3), (x13)); + x736 = (x734)+(x730); + x737 = (uintptr_t)((x736)<(x734)); + x738 = (x737)+(x735); + x739 = (x738)+(x733); + x740 = (x2)*(x14); + x741 = _br2_mulhuu((x2), (x14)); + x742 = (x740)+(x736); + x743 = (uintptr_t)((x742)<(x740)); + x744 = (x743)+(x741); + x745 = (x744)+(x739); + x746 = (x1)*(x15); + x747 = _br2_mulhuu((x1), (x15)); + x748 = (x746)+(x742); + x749 = (uintptr_t)((x748)<(x746)); + x750 = (x749)+(x747); + x751 = (x750)+(x745); + x752 = (x0)*(x16); + x753 = _br2_mulhuu((x0), (x16)); + x754 = (x752)+(x748); + x755 = (uintptr_t)((x754)<(x752)); + x756 = (x755)+(x753); + x757 = (x756)+(x751); + x758 = (x754)+(x718); + x759 = (uintptr_t)((x758)<(x754)); + x760 = (x759)+(x757); + x761 = (x760)+(x719); + x762 = (x695)+(x758); + x763 = (uintptr_t)((x762)<(x695)); + x764 = (x763)+(x696); + x765 = (x764)+(x761); + x766 = (x762)+(x716); + x767 = (uintptr_t)((x766)<(x762)); + x768 = (x767)+(x765); + x769 = (x768)+(x717); + x770 = ((x766)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x769)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x771 = (x769)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x772 = (x766)&((uintptr_t)(UINTMAX_C(67108863))); + x773 = (x715)*((uintptr_t)(UINTMAX_C(1000448))); + x774 = _br2_mulhuu((x715), ((uintptr_t)(UINTMAX_C(1000448)))); + x775 = (x712)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); + x776 = (x712)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); + x777 = (x82)+(x775); + x778 = (uintptr_t)((x777)<(x82)); + x779 = (x778)+(x776); + x780 = (x770)+(x777); + x781 = (uintptr_t)((x780)<(x770)); + x782 = (x781)+(x771); + x783 = (x782)+(x779); + x784 = (x780)+(x773); + x785 = (uintptr_t)((x784)<(x780)); + x786 = (x785)+(x783); + x787 = (x786)+(x774); + x788 = ((x784)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x787)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x789 = (x784)&((uintptr_t)(UINTMAX_C(67108863))); + x790 = (x715)<<_br2_shamt((uintptr_t)(UINTMAX_C(16))); + x791 = (x715)>>_br2_shamt((uintptr_t)(UINTMAX_C(16))); + x792 = (x156)+(x790); + x793 = (uintptr_t)((x792)<(x156)); + x794 = (x793)+(x791); + x795 = (x788)+(x792); + x796 = (uintptr_t)((x795)<(x788)); + x797 = (x796)+(x794); + x798 = ((x795)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x797)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x799 = (x795)&((uintptr_t)(UINTMAX_C(67108863))); + x800 = (x798)+(x296); + x801 = x307; + x802 = x385; + x803 = x463; + x804 = x541; + x805 = x619; + x806 = x697; + x807 = x772; + x808 = x789; + x809 = x799; + x810 = x800; /*skip*/ - _br2_store((out0)+((uintptr_t)(UINTMAX_C(0))), x766, sizeof(uintptr_t)); - _br2_store((out0)+((uintptr_t)(UINTMAX_C(4))), x767, sizeof(uintptr_t)); - _br2_store((out0)+((uintptr_t)(UINTMAX_C(8))), x768, sizeof(uintptr_t)); - _br2_store((out0)+((uintptr_t)(UINTMAX_C(12))), x769, sizeof(uintptr_t)); - _br2_store((out0)+((uintptr_t)(UINTMAX_C(16))), x770, sizeof(uintptr_t)); - _br2_store((out0)+((uintptr_t)(UINTMAX_C(20))), x771, sizeof(uintptr_t)); - _br2_store((out0)+((uintptr_t)(UINTMAX_C(24))), x772, sizeof(uintptr_t)); - _br2_store((out0)+((uintptr_t)(UINTMAX_C(28))), x773, sizeof(uintptr_t)); - _br2_store((out0)+((uintptr_t)(UINTMAX_C(32))), x774, sizeof(uintptr_t)); - _br2_store((out0)+((uintptr_t)(UINTMAX_C(36))), x775, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)(UINTMAX_C(0))), x801, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)(UINTMAX_C(4))), x802, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)(UINTMAX_C(8))), x803, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)(UINTMAX_C(12))), x804, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)(UINTMAX_C(16))), x805, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)(UINTMAX_C(20))), x806, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)(UINTMAX_C(24))), x807, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)(UINTMAX_C(28))), x808, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)(UINTMAX_C(32))), x809, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)(UINTMAX_C(36))), x810, sizeof(uintptr_t)); /*skip*/ return; } @@ -888,13 +923,13 @@ static void fiat_secp256k1_dettman_mul(uint32_t out1[10], const uint32_t arg1[10 /* * Input Bounds: - * in0: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] + * in0: [[0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3fffff0]] * Output Bounds: - * out0: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x5fffff]] + * out0: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] */ static void internal_fiat_secp256k1_dettman_square(uintptr_t out0, uintptr_t in0) { - uintptr_t x10, x20, x19, x25, x27, x30, x28, x31, x26, x29, x33, x36, x34, x37, x32, x35, x39, x42, x40, x43, x38, x23, x41, x46, x44, x47, x24, x48, x45, x51, x21, x54, x52, x22, x60, x62, x65, x63, x66, x61, x64, x68, x71, x69, x72, x67, x70, x74, x77, x75, x78, x73, x76, x80, x83, x81, x84, x79, x58, x82, x87, x85, x88, x59, x86, x49, x91, x89, x56, x90, x94, x92, x95, x57, x96, x93, x53, x103, x105, x108, x106, x109, x104, x107, x111, x114, x112, x115, x110, x113, x117, x120, x118, x121, x116, x119, x123, x126, x124, x127, x122, x101, x125, x130, x128, x131, x102, x129, x97, x134, x132, x99, x133, x137, x135, x138, x100, x139, x136, x142, x144, x147, x145, x148, x143, x146, x150, x153, x151, x154, x149, x152, x156, x159, x157, x160, x155, x158, x162, x165, x163, x166, x161, x55, x164, x169, x167, x168, x140, x172, x170, x173, x171, x141, x0, x178, x180, x183, x181, x184, x179, x185, x182, x188, x190, x193, x191, x194, x189, x192, x196, x199, x197, x200, x195, x198, x202, x205, x203, x206, x201, x204, x174, x209, x207, x210, x208, x176, x175, x215, x217, x220, x218, x221, x216, x219, x186, x224, x222, x213, x223, x227, x225, x228, x214, x229, x226, x232, x234, x237, x235, x238, x233, x236, x240, x243, x241, x244, x239, x15, x242, x246, x249, x247, x250, x245, x248, x211, x253, x251, x254, x252, x212, x1, x261, x263, x266, x264, x267, x262, x259, x265, x270, x268, x271, x260, x269, x230, x274, x272, x257, x273, x277, x275, x278, x258, x279, x276, x282, x284, x287, x285, x288, x283, x14, x286, x290, x293, x291, x294, x289, x292, x255, x297, x295, x298, x296, x256, x305, x307, x310, x308, x311, x306, x303, x309, x314, x312, x315, x304, x313, x280, x318, x316, x301, x317, x321, x319, x322, x302, x323, x320, x7, x326, x328, x331, x329, x332, x327, x13, x330, x334, x337, x335, x338, x333, x336, x299, x341, x339, x342, x340, x300, x2, x349, x351, x354, x352, x355, x350, x353, x357, x360, x358, x361, x356, x347, x359, x364, x362, x365, x348, x363, x324, x368, x366, x345, x367, x371, x369, x372, x346, x373, x370, x12, x376, x378, x381, x379, x382, x377, x380, x343, x385, x383, x386, x384, x344, x393, x395, x398, x396, x399, x394, x397, x401, x404, x402, x405, x400, x391, x403, x408, x406, x409, x392, x407, x374, x412, x410, x389, x411, x415, x413, x416, x390, x417, x414, x8, x11, x9, x420, x422, x425, x423, x426, x421, x424, x387, x429, x427, x388, x3, x16, x4, x435, x437, x440, x438, x441, x436, x17, x5, x439, x443, x446, x444, x447, x442, x18, x6, x445, x449, x452, x450, x453, x448, x433, x451, x456, x454, x457, x434, x455, x418, x460, x458, x431, x459, x463, x461, x464, x432, x465, x462, x428, x470, x50, x473, x471, x472, x466, x476, x474, x468, x475, x479, x477, x480, x469, x481, x478, x430, x484, x98, x487, x485, x486, x482, x490, x488, x491, x489, x492, x177, x187, x231, x281, x325, x375, x419, x467, x483, x493, x494, x495, x496, x497, x498, x499, x500, x501, x502, x503, x504; + uintptr_t x10, x20, x19, x25, x27, x30, x28, x31, x26, x29, x33, x36, x34, x37, x32, x35, x39, x42, x40, x43, x38, x23, x41, x46, x44, x47, x24, x48, x45, x52, x21, x55, x53, x22, x61, x63, x66, x64, x67, x62, x65, x69, x72, x70, x73, x68, x71, x75, x78, x76, x79, x74, x77, x81, x84, x82, x85, x80, x59, x83, x88, x86, x89, x60, x87, x49, x92, x50, x93, x90, x57, x91, x96, x94, x97, x58, x98, x95, x54, x106, x108, x111, x109, x112, x107, x110, x114, x117, x115, x118, x113, x116, x120, x123, x121, x124, x119, x122, x126, x129, x127, x130, x125, x104, x128, x133, x131, x134, x105, x132, x99, x137, x100, x138, x135, x102, x136, x141, x139, x142, x103, x143, x140, x56, x149, x151, x154, x152, x155, x150, x153, x157, x160, x158, x161, x156, x159, x163, x166, x164, x167, x162, x165, x169, x172, x170, x173, x168, x147, x171, x176, x174, x177, x148, x175, x144, x180, x145, x181, x178, x182, x179, x146, x0, x188, x190, x193, x191, x194, x189, x195, x192, x199, x201, x204, x202, x205, x200, x203, x207, x210, x208, x211, x206, x209, x213, x216, x214, x217, x212, x215, x183, x220, x184, x221, x218, x222, x219, x186, x185, x228, x230, x233, x231, x234, x229, x232, x196, x237, x197, x238, x235, x226, x236, x241, x239, x242, x227, x243, x240, x247, x249, x252, x250, x253, x248, x251, x255, x258, x256, x259, x254, x15, x257, x261, x264, x262, x265, x260, x263, x223, x268, x224, x269, x266, x270, x267, x225, x1, x278, x280, x283, x281, x284, x279, x276, x282, x287, x285, x288, x277, x286, x244, x291, x245, x292, x289, x274, x290, x295, x293, x296, x275, x297, x294, x301, x303, x306, x304, x307, x302, x14, x305, x309, x312, x310, x313, x308, x311, x271, x316, x272, x317, x314, x318, x315, x273, x326, x328, x331, x329, x332, x327, x324, x330, x335, x333, x336, x325, x334, x298, x339, x299, x340, x337, x322, x338, x343, x341, x344, x323, x345, x342, x7, x349, x351, x354, x352, x355, x350, x13, x353, x357, x360, x358, x361, x356, x359, x319, x364, x320, x365, x362, x366, x363, x321, x2, x374, x376, x379, x377, x380, x375, x378, x382, x385, x383, x386, x381, x372, x384, x389, x387, x390, x373, x388, x346, x393, x347, x394, x391, x370, x392, x397, x395, x398, x371, x399, x396, x12, x403, x405, x408, x406, x409, x404, x407, x367, x412, x368, x413, x410, x414, x411, x369, x422, x424, x427, x425, x428, x423, x426, x430, x433, x431, x434, x429, x420, x432, x437, x435, x438, x421, x436, x400, x441, x401, x442, x439, x418, x440, x445, x443, x446, x419, x447, x444, x8, x11, x9, x451, x453, x456, x454, x457, x452, x455, x415, x460, x416, x461, x458, x417, x3, x16, x4, x467, x469, x472, x470, x473, x468, x17, x5, x471, x475, x478, x476, x479, x474, x18, x6, x477, x481, x484, x482, x485, x480, x465, x483, x488, x486, x489, x466, x487, x448, x492, x449, x493, x490, x463, x491, x496, x494, x497, x464, x498, x495, x459, x504, x51, x507, x505, x506, x499, x510, x500, x511, x508, x502, x509, x514, x512, x515, x503, x516, x513, x462, x519, x101, x522, x520, x521, x517, x525, x523, x526, x524, x527, x187, x198, x246, x300, x348, x402, x450, x501, x518, x528, x529, x530, x531, x532, x533, x534, x535, x536, x537, x538, x539; x0 = _br2_load((in0)+((uintptr_t)(UINTMAX_C(0))), sizeof(uintptr_t)); x1 = _br2_load((in0)+((uintptr_t)(UINTMAX_C(4))), sizeof(uintptr_t)); x2 = _br2_load((in0)+((uintptr_t)(UINTMAX_C(8))), sizeof(uintptr_t)); @@ -947,472 +982,507 @@ void internal_fiat_secp256k1_dettman_square(uintptr_t out0, uintptr_t in0) { x47 = (x46)+(x44); x48 = (x47)+(x24); x49 = ((x45)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x48)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x50 = (x45)&((uintptr_t)(UINTMAX_C(67108863))); - x51 = (x9)*(x9); - x52 = _br2_mulhuu((x9), (x9)); - x53 = (x21)+(x51); - x54 = (uintptr_t)((x53)<(x21)); - x55 = (x54)+(x52); - x56 = (x53)*((uintptr_t)(UINTMAX_C(15632))); - x57 = _br2_mulhuu((x53), ((uintptr_t)(UINTMAX_C(15632)))); - x58 = (x22)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); - x59 = (x22)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); - x60 = (x4)*(x4); - x61 = _br2_mulhuu((x4), (x4)); - x62 = (x15)*(x5); - x63 = _br2_mulhuu((x15), (x5)); - x64 = (x62)+(x60); - x65 = (uintptr_t)((x64)<(x62)); - x66 = (x65)+(x63); - x67 = (x66)+(x61); - x68 = (x16)*(x6); - x69 = _br2_mulhuu((x16), (x6)); - x70 = (x68)+(x64); - x71 = (uintptr_t)((x70)<(x68)); - x72 = (x71)+(x69); - x73 = (x72)+(x67); - x74 = (x17)*(x7); - x75 = _br2_mulhuu((x17), (x7)); - x76 = (x74)+(x70); - x77 = (uintptr_t)((x76)<(x74)); - x78 = (x77)+(x75); - x79 = (x78)+(x73); - x80 = (x18)*(x8); - x81 = _br2_mulhuu((x18), (x8)); - x82 = (x80)+(x76); - x83 = (uintptr_t)((x82)<(x80)); - x84 = (x83)+(x81); - x85 = (x84)+(x79); - x86 = (x82)+(x58); - x87 = (uintptr_t)((x86)<(x82)); - x88 = (x87)+(x85); - x89 = (x88)+(x59); - x90 = (x49)+(x86); - x91 = (uintptr_t)((x90)<(x49)); - x92 = (x91)+(x89); - x93 = (x90)+(x56); - x94 = (uintptr_t)((x93)<(x90)); - x95 = (x94)+(x92); - x96 = (x95)+(x57); - x97 = ((x93)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x96)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x98 = (x93)&((uintptr_t)(UINTMAX_C(67108863))); - x99 = (x55)*((uintptr_t)(UINTMAX_C(1000448))); - x100 = _br2_mulhuu((x55), ((uintptr_t)(UINTMAX_C(1000448)))); - x101 = (x53)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); - x102 = (x53)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); - x103 = (x14)*(x5); - x104 = _br2_mulhuu((x14), (x5)); - x105 = (x15)*(x6); - x106 = _br2_mulhuu((x15), (x6)); - x107 = (x105)+(x103); - x108 = (uintptr_t)((x107)<(x105)); - x109 = (x108)+(x106); - x110 = (x109)+(x104); - x111 = (x16)*(x7); - x112 = _br2_mulhuu((x16), (x7)); - x113 = (x111)+(x107); - x114 = (uintptr_t)((x113)<(x111)); - x115 = (x114)+(x112); - x116 = (x115)+(x110); - x117 = (x17)*(x8); - x118 = _br2_mulhuu((x17), (x8)); - x119 = (x117)+(x113); - x120 = (uintptr_t)((x119)<(x117)); - x121 = (x120)+(x118); - x122 = (x121)+(x116); - x123 = (x18)*(x9); - x124 = _br2_mulhuu((x18), (x9)); - x125 = (x123)+(x119); - x126 = (uintptr_t)((x125)<(x123)); - x127 = (x126)+(x124); - x128 = (x127)+(x122); - x129 = (x125)+(x101); - x130 = (uintptr_t)((x129)<(x125)); - x131 = (x130)+(x128); - x132 = (x131)+(x102); - x133 = (x97)+(x129); - x134 = (uintptr_t)((x133)<(x97)); - x135 = (x134)+(x132); - x136 = (x133)+(x99); - x137 = (uintptr_t)((x136)<(x133)); - x138 = (x137)+(x135); - x139 = (x138)+(x100); - x140 = ((x136)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x139)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x141 = (x136)&((uintptr_t)(UINTMAX_C(67108863))); - x142 = (x5)*(x5); - x143 = _br2_mulhuu((x5), (x5)); - x144 = (x14)*(x6); - x145 = _br2_mulhuu((x14), (x6)); - x146 = (x144)+(x142); - x147 = (uintptr_t)((x146)<(x144)); - x148 = (x147)+(x145); - x149 = (x148)+(x143); - x150 = (x15)*(x7); - x151 = _br2_mulhuu((x15), (x7)); - x152 = (x150)+(x146); - x153 = (uintptr_t)((x152)<(x150)); - x154 = (x153)+(x151); - x155 = (x154)+(x149); - x156 = (x16)*(x8); - x157 = _br2_mulhuu((x16), (x8)); - x158 = (x156)+(x152); - x159 = (uintptr_t)((x158)<(x156)); - x160 = (x159)+(x157); - x161 = (x160)+(x155); - x162 = (x17)*(x9); - x163 = _br2_mulhuu((x17), (x9)); - x164 = (x162)+(x158); - x165 = (uintptr_t)((x164)<(x162)); - x166 = (x165)+(x163); - x167 = (x166)+(x161); - x168 = (x164)+((x55)<<_br2_shamt((uintptr_t)(UINTMAX_C(16)))); - x169 = (uintptr_t)((x168)<(x164)); - x170 = (x169)+(x167); - x171 = (x140)+(x168); - x172 = (uintptr_t)((x171)<(x140)); + x50 = (x48)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x51 = (x45)&((uintptr_t)(UINTMAX_C(67108863))); + x52 = (x9)*(x9); + x53 = _br2_mulhuu((x9), (x9)); + x54 = (x21)+(x52); + x55 = (uintptr_t)((x54)<(x21)); + x56 = (x55)+(x53); + x57 = (x54)*((uintptr_t)(UINTMAX_C(15632))); + x58 = _br2_mulhuu((x54), ((uintptr_t)(UINTMAX_C(15632)))); + x59 = (x22)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); + x60 = (x22)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); + x61 = (x4)*(x4); + x62 = _br2_mulhuu((x4), (x4)); + x63 = (x15)*(x5); + x64 = _br2_mulhuu((x15), (x5)); + x65 = (x63)+(x61); + x66 = (uintptr_t)((x65)<(x63)); + x67 = (x66)+(x64); + x68 = (x67)+(x62); + x69 = (x16)*(x6); + x70 = _br2_mulhuu((x16), (x6)); + x71 = (x69)+(x65); + x72 = (uintptr_t)((x71)<(x69)); + x73 = (x72)+(x70); + x74 = (x73)+(x68); + x75 = (x17)*(x7); + x76 = _br2_mulhuu((x17), (x7)); + x77 = (x75)+(x71); + x78 = (uintptr_t)((x77)<(x75)); + x79 = (x78)+(x76); + x80 = (x79)+(x74); + x81 = (x18)*(x8); + x82 = _br2_mulhuu((x18), (x8)); + x83 = (x81)+(x77); + x84 = (uintptr_t)((x83)<(x81)); + x85 = (x84)+(x82); + x86 = (x85)+(x80); + x87 = (x83)+(x59); + x88 = (uintptr_t)((x87)<(x83)); + x89 = (x88)+(x86); + x90 = (x89)+(x60); + x91 = (x49)+(x87); + x92 = (uintptr_t)((x91)<(x49)); + x93 = (x92)+(x50); + x94 = (x93)+(x90); + x95 = (x91)+(x57); + x96 = (uintptr_t)((x95)<(x91)); + x97 = (x96)+(x94); + x98 = (x97)+(x58); + x99 = ((x95)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x98)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x100 = (x98)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x101 = (x95)&((uintptr_t)(UINTMAX_C(67108863))); + x102 = (x56)*((uintptr_t)(UINTMAX_C(1000448))); + x103 = _br2_mulhuu((x56), ((uintptr_t)(UINTMAX_C(1000448)))); + x104 = (x54)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); + x105 = (x54)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); + x106 = (x14)*(x5); + x107 = _br2_mulhuu((x14), (x5)); + x108 = (x15)*(x6); + x109 = _br2_mulhuu((x15), (x6)); + x110 = (x108)+(x106); + x111 = (uintptr_t)((x110)<(x108)); + x112 = (x111)+(x109); + x113 = (x112)+(x107); + x114 = (x16)*(x7); + x115 = _br2_mulhuu((x16), (x7)); + x116 = (x114)+(x110); + x117 = (uintptr_t)((x116)<(x114)); + x118 = (x117)+(x115); + x119 = (x118)+(x113); + x120 = (x17)*(x8); + x121 = _br2_mulhuu((x17), (x8)); + x122 = (x120)+(x116); + x123 = (uintptr_t)((x122)<(x120)); + x124 = (x123)+(x121); + x125 = (x124)+(x119); + x126 = (x18)*(x9); + x127 = _br2_mulhuu((x18), (x9)); + x128 = (x126)+(x122); + x129 = (uintptr_t)((x128)<(x126)); + x130 = (x129)+(x127); + x131 = (x130)+(x125); + x132 = (x128)+(x104); + x133 = (uintptr_t)((x132)<(x128)); + x134 = (x133)+(x131); + x135 = (x134)+(x105); + x136 = (x99)+(x132); + x137 = (uintptr_t)((x136)<(x99)); + x138 = (x137)+(x100); + x139 = (x138)+(x135); + x140 = (x136)+(x102); + x141 = (uintptr_t)((x140)<(x136)); + x142 = (x141)+(x139); + x143 = (x142)+(x103); + x144 = ((x140)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x143)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x145 = (x143)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x146 = (x140)&((uintptr_t)(UINTMAX_C(67108863))); + x147 = (x56)<<_br2_shamt((uintptr_t)(UINTMAX_C(16))); + x148 = (x56)>>_br2_shamt((uintptr_t)(UINTMAX_C(16))); + x149 = (x5)*(x5); + x150 = _br2_mulhuu((x5), (x5)); + x151 = (x14)*(x6); + x152 = _br2_mulhuu((x14), (x6)); + x153 = (x151)+(x149); + x154 = (uintptr_t)((x153)<(x151)); + x155 = (x154)+(x152); + x156 = (x155)+(x150); + x157 = (x15)*(x7); + x158 = _br2_mulhuu((x15), (x7)); + x159 = (x157)+(x153); + x160 = (uintptr_t)((x159)<(x157)); + x161 = (x160)+(x158); + x162 = (x161)+(x156); + x163 = (x16)*(x8); + x164 = _br2_mulhuu((x16), (x8)); + x165 = (x163)+(x159); + x166 = (uintptr_t)((x165)<(x163)); + x167 = (x166)+(x164); + x168 = (x167)+(x162); + x169 = (x17)*(x9); + x170 = _br2_mulhuu((x17), (x9)); + x171 = (x169)+(x165); + x172 = (uintptr_t)((x171)<(x169)); x173 = (x172)+(x170); - x174 = ((x171)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x173)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x175 = (x171)&((uintptr_t)(UINTMAX_C(67108863))); - x176 = (x141)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); - x177 = (x141)&((uintptr_t)(UINTMAX_C(4194303))); - x178 = ((x176)+((x175)<<_br2_shamt((uintptr_t)(UINTMAX_C(4)))))*((uintptr_t)(UINTMAX_C(977))); - x179 = _br2_mulhuu(((x176)+((x175)<<_br2_shamt((uintptr_t)(UINTMAX_C(4))))), ((uintptr_t)(UINTMAX_C(977)))); - x180 = (x0)*(x0); - x181 = _br2_mulhuu((x0), (x0)); - x182 = (x180)+(x178); - x183 = (uintptr_t)((x182)<(x180)); - x184 = (x183)+(x181); - x185 = (x184)+(x179); - x186 = ((x182)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x185)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x187 = (x182)&((uintptr_t)(UINTMAX_C(67108863))); - x188 = (x13)*(x6); - x189 = _br2_mulhuu((x13), (x6)); - x190 = (x14)*(x7); - x191 = _br2_mulhuu((x14), (x7)); + x174 = (x173)+(x168); + x175 = (x171)+(x147); + x176 = (uintptr_t)((x175)<(x171)); + x177 = (x176)+(x174); + x178 = (x177)+(x148); + x179 = (x144)+(x175); + x180 = (uintptr_t)((x179)<(x144)); + x181 = (x180)+(x145); + x182 = (x181)+(x178); + x183 = ((x179)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x182)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x184 = (x182)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x185 = (x179)&((uintptr_t)(UINTMAX_C(67108863))); + x186 = (x146)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); + x187 = (x146)&((uintptr_t)(UINTMAX_C(4194303))); + x188 = ((x186)+((x185)<<_br2_shamt((uintptr_t)(UINTMAX_C(4)))))*((uintptr_t)(UINTMAX_C(977))); + x189 = _br2_mulhuu(((x186)+((x185)<<_br2_shamt((uintptr_t)(UINTMAX_C(4))))), ((uintptr_t)(UINTMAX_C(977)))); + x190 = (x0)*(x0); + x191 = _br2_mulhuu((x0), (x0)); x192 = (x190)+(x188); x193 = (uintptr_t)((x192)<(x190)); x194 = (x193)+(x191); x195 = (x194)+(x189); - x196 = (x15)*(x8); - x197 = _br2_mulhuu((x15), (x8)); - x198 = (x196)+(x192); - x199 = (uintptr_t)((x198)<(x196)); - x200 = (x199)+(x197); - x201 = (x200)+(x195); - x202 = (x16)*(x9); - x203 = _br2_mulhuu((x16), (x9)); - x204 = (x202)+(x198); - x205 = (uintptr_t)((x204)<(x202)); - x206 = (x205)+(x203); - x207 = (x206)+(x201); - x208 = (x174)+(x204); - x209 = (uintptr_t)((x208)<(x174)); - x210 = (x209)+(x207); - x211 = ((x208)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x210)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x212 = (x208)&((uintptr_t)(UINTMAX_C(67108863))); - x213 = (x212)*((uintptr_t)(UINTMAX_C(15632))); - x214 = _br2_mulhuu((x212), ((uintptr_t)(UINTMAX_C(15632)))); - x215 = ((x176)+((x175)<<_br2_shamt((uintptr_t)(UINTMAX_C(4)))))<<_br2_shamt((uintptr_t)(UINTMAX_C(6))); - x216 = ((x176)+((x175)<<_br2_shamt((uintptr_t)(UINTMAX_C(4)))))>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); - x217 = (x18)*(x1); - x218 = _br2_mulhuu((x18), (x1)); - x219 = (x217)+(x215); - x220 = (uintptr_t)((x219)<(x217)); - x221 = (x220)+(x218); - x222 = (x221)+(x216); - x223 = (x186)+(x219); - x224 = (uintptr_t)((x223)<(x186)); - x225 = (x224)+(x222); - x226 = (x223)+(x213); - x227 = (uintptr_t)((x226)<(x223)); - x228 = (x227)+(x225); - x229 = (x228)+(x214); - x230 = ((x226)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x229)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x231 = (x226)&((uintptr_t)(UINTMAX_C(67108863))); - x232 = (x6)*(x6); - x233 = _br2_mulhuu((x6), (x6)); - x234 = (x13)*(x7); - x235 = _br2_mulhuu((x13), (x7)); - x236 = (x234)+(x232); - x237 = (uintptr_t)((x236)<(x234)); - x238 = (x237)+(x235); - x239 = (x238)+(x233); - x240 = (x14)*(x8); - x241 = _br2_mulhuu((x14), (x8)); - x242 = (x240)+(x236); - x243 = (uintptr_t)((x242)<(x240)); - x244 = (x243)+(x241); - x245 = (x244)+(x239); - x246 = (x15)*(x9); - x247 = _br2_mulhuu((x15), (x9)); - x248 = (x246)+(x242); - x249 = (uintptr_t)((x248)<(x246)); - x250 = (x249)+(x247); - x251 = (x250)+(x245); - x252 = (x211)+(x248); - x253 = (uintptr_t)((x252)<(x211)); - x254 = (x253)+(x251); - x255 = ((x252)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x254)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x256 = (x252)&((uintptr_t)(UINTMAX_C(67108863))); - x257 = (x256)*((uintptr_t)(UINTMAX_C(15632))); - x258 = _br2_mulhuu((x256), ((uintptr_t)(UINTMAX_C(15632)))); - x259 = (x212)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); - x260 = (x212)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); - x261 = (x1)*(x1); - x262 = _br2_mulhuu((x1), (x1)); - x263 = (x18)*(x2); - x264 = _br2_mulhuu((x18), (x2)); - x265 = (x263)+(x261); - x266 = (uintptr_t)((x265)<(x263)); - x267 = (x266)+(x264); - x268 = (x267)+(x262); - x269 = (x265)+(x259); - x270 = (uintptr_t)((x269)<(x265)); - x271 = (x270)+(x268); - x272 = (x271)+(x260); - x273 = (x230)+(x269); - x274 = (uintptr_t)((x273)<(x230)); - x275 = (x274)+(x272); - x276 = (x273)+(x257); - x277 = (uintptr_t)((x276)<(x273)); - x278 = (x277)+(x275); - x279 = (x278)+(x258); - x280 = ((x276)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x279)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x281 = (x276)&((uintptr_t)(UINTMAX_C(67108863))); - x282 = (x12)*(x7); - x283 = _br2_mulhuu((x12), (x7)); - x284 = (x13)*(x8); - x285 = _br2_mulhuu((x13), (x8)); - x286 = (x284)+(x282); - x287 = (uintptr_t)((x286)<(x284)); + x196 = ((x192)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x195)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x197 = (x195)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x198 = (x192)&((uintptr_t)(UINTMAX_C(67108863))); + x199 = (x13)*(x6); + x200 = _br2_mulhuu((x13), (x6)); + x201 = (x14)*(x7); + x202 = _br2_mulhuu((x14), (x7)); + x203 = (x201)+(x199); + x204 = (uintptr_t)((x203)<(x201)); + x205 = (x204)+(x202); + x206 = (x205)+(x200); + x207 = (x15)*(x8); + x208 = _br2_mulhuu((x15), (x8)); + x209 = (x207)+(x203); + x210 = (uintptr_t)((x209)<(x207)); + x211 = (x210)+(x208); + x212 = (x211)+(x206); + x213 = (x16)*(x9); + x214 = _br2_mulhuu((x16), (x9)); + x215 = (x213)+(x209); + x216 = (uintptr_t)((x215)<(x213)); + x217 = (x216)+(x214); + x218 = (x217)+(x212); + x219 = (x183)+(x215); + x220 = (uintptr_t)((x219)<(x183)); + x221 = (x220)+(x184); + x222 = (x221)+(x218); + x223 = ((x219)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x222)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x224 = (x222)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x225 = (x219)&((uintptr_t)(UINTMAX_C(67108863))); + x226 = (x225)*((uintptr_t)(UINTMAX_C(15632))); + x227 = _br2_mulhuu((x225), ((uintptr_t)(UINTMAX_C(15632)))); + x228 = ((x186)+((x185)<<_br2_shamt((uintptr_t)(UINTMAX_C(4)))))<<_br2_shamt((uintptr_t)(UINTMAX_C(6))); + x229 = ((x186)+((x185)<<_br2_shamt((uintptr_t)(UINTMAX_C(4)))))>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x230 = (x18)*(x1); + x231 = _br2_mulhuu((x18), (x1)); + x232 = (x230)+(x228); + x233 = (uintptr_t)((x232)<(x230)); + x234 = (x233)+(x231); + x235 = (x234)+(x229); + x236 = (x196)+(x232); + x237 = (uintptr_t)((x236)<(x196)); + x238 = (x237)+(x197); + x239 = (x238)+(x235); + x240 = (x236)+(x226); + x241 = (uintptr_t)((x240)<(x236)); + x242 = (x241)+(x239); + x243 = (x242)+(x227); + x244 = ((x240)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x243)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x245 = (x243)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x246 = (x240)&((uintptr_t)(UINTMAX_C(67108863))); + x247 = (x6)*(x6); + x248 = _br2_mulhuu((x6), (x6)); + x249 = (x13)*(x7); + x250 = _br2_mulhuu((x13), (x7)); + x251 = (x249)+(x247); + x252 = (uintptr_t)((x251)<(x249)); + x253 = (x252)+(x250); + x254 = (x253)+(x248); + x255 = (x14)*(x8); + x256 = _br2_mulhuu((x14), (x8)); + x257 = (x255)+(x251); + x258 = (uintptr_t)((x257)<(x255)); + x259 = (x258)+(x256); + x260 = (x259)+(x254); + x261 = (x15)*(x9); + x262 = _br2_mulhuu((x15), (x9)); + x263 = (x261)+(x257); + x264 = (uintptr_t)((x263)<(x261)); + x265 = (x264)+(x262); + x266 = (x265)+(x260); + x267 = (x223)+(x263); + x268 = (uintptr_t)((x267)<(x223)); + x269 = (x268)+(x224); + x270 = (x269)+(x266); + x271 = ((x267)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x270)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x272 = (x270)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x273 = (x267)&((uintptr_t)(UINTMAX_C(67108863))); + x274 = (x273)*((uintptr_t)(UINTMAX_C(15632))); + x275 = _br2_mulhuu((x273), ((uintptr_t)(UINTMAX_C(15632)))); + x276 = (x225)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); + x277 = (x225)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); + x278 = (x1)*(x1); + x279 = _br2_mulhuu((x1), (x1)); + x280 = (x18)*(x2); + x281 = _br2_mulhuu((x18), (x2)); + x282 = (x280)+(x278); + x283 = (uintptr_t)((x282)<(x280)); + x284 = (x283)+(x281); + x285 = (x284)+(x279); + x286 = (x282)+(x276); + x287 = (uintptr_t)((x286)<(x282)); x288 = (x287)+(x285); - x289 = (x288)+(x283); - x290 = (x14)*(x9); - x291 = _br2_mulhuu((x14), (x9)); - x292 = (x290)+(x286); - x293 = (uintptr_t)((x292)<(x290)); - x294 = (x293)+(x291); - x295 = (x294)+(x289); - x296 = (x255)+(x292); - x297 = (uintptr_t)((x296)<(x255)); - x298 = (x297)+(x295); - x299 = ((x296)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x298)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x300 = (x296)&((uintptr_t)(UINTMAX_C(67108863))); - x301 = (x300)*((uintptr_t)(UINTMAX_C(15632))); - x302 = _br2_mulhuu((x300), ((uintptr_t)(UINTMAX_C(15632)))); - x303 = (x256)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); - x304 = (x256)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); - x305 = (x17)*(x2); - x306 = _br2_mulhuu((x17), (x2)); - x307 = (x18)*(x3); - x308 = _br2_mulhuu((x18), (x3)); - x309 = (x307)+(x305); - x310 = (uintptr_t)((x309)<(x307)); - x311 = (x310)+(x308); - x312 = (x311)+(x306); - x313 = (x309)+(x303); - x314 = (uintptr_t)((x313)<(x309)); - x315 = (x314)+(x312); - x316 = (x315)+(x304); - x317 = (x280)+(x313); - x318 = (uintptr_t)((x317)<(x280)); - x319 = (x318)+(x316); - x320 = (x317)+(x301); - x321 = (uintptr_t)((x320)<(x317)); - x322 = (x321)+(x319); - x323 = (x322)+(x302); - x324 = ((x320)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x323)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x325 = (x320)&((uintptr_t)(UINTMAX_C(67108863))); - x326 = (x7)*(x7); - x327 = _br2_mulhuu((x7), (x7)); - x328 = (x12)*(x8); - x329 = _br2_mulhuu((x12), (x8)); + x289 = (x288)+(x277); + x290 = (x244)+(x286); + x291 = (uintptr_t)((x290)<(x244)); + x292 = (x291)+(x245); + x293 = (x292)+(x289); + x294 = (x290)+(x274); + x295 = (uintptr_t)((x294)<(x290)); + x296 = (x295)+(x293); + x297 = (x296)+(x275); + x298 = ((x294)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x297)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x299 = (x297)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x300 = (x294)&((uintptr_t)(UINTMAX_C(67108863))); + x301 = (x12)*(x7); + x302 = _br2_mulhuu((x12), (x7)); + x303 = (x13)*(x8); + x304 = _br2_mulhuu((x13), (x8)); + x305 = (x303)+(x301); + x306 = (uintptr_t)((x305)<(x303)); + x307 = (x306)+(x304); + x308 = (x307)+(x302); + x309 = (x14)*(x9); + x310 = _br2_mulhuu((x14), (x9)); + x311 = (x309)+(x305); + x312 = (uintptr_t)((x311)<(x309)); + x313 = (x312)+(x310); + x314 = (x313)+(x308); + x315 = (x271)+(x311); + x316 = (uintptr_t)((x315)<(x271)); + x317 = (x316)+(x272); + x318 = (x317)+(x314); + x319 = ((x315)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x318)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x320 = (x318)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x321 = (x315)&((uintptr_t)(UINTMAX_C(67108863))); + x322 = (x321)*((uintptr_t)(UINTMAX_C(15632))); + x323 = _br2_mulhuu((x321), ((uintptr_t)(UINTMAX_C(15632)))); + x324 = (x273)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); + x325 = (x273)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); + x326 = (x17)*(x2); + x327 = _br2_mulhuu((x17), (x2)); + x328 = (x18)*(x3); + x329 = _br2_mulhuu((x18), (x3)); x330 = (x328)+(x326); x331 = (uintptr_t)((x330)<(x328)); x332 = (x331)+(x329); x333 = (x332)+(x327); - x334 = (x13)*(x9); - x335 = _br2_mulhuu((x13), (x9)); - x336 = (x334)+(x330); - x337 = (uintptr_t)((x336)<(x334)); - x338 = (x337)+(x335); - x339 = (x338)+(x333); - x340 = (x299)+(x336); - x341 = (uintptr_t)((x340)<(x299)); - x342 = (x341)+(x339); - x343 = ((x340)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x342)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x344 = (x340)&((uintptr_t)(UINTMAX_C(67108863))); - x345 = (x344)*((uintptr_t)(UINTMAX_C(15632))); - x346 = _br2_mulhuu((x344), ((uintptr_t)(UINTMAX_C(15632)))); - x347 = (x300)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); - x348 = (x300)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); - x349 = (x2)*(x2); - x350 = _br2_mulhuu((x2), (x2)); - x351 = (x17)*(x3); - x352 = _br2_mulhuu((x17), (x3)); + x334 = (x330)+(x324); + x335 = (uintptr_t)((x334)<(x330)); + x336 = (x335)+(x333); + x337 = (x336)+(x325); + x338 = (x298)+(x334); + x339 = (uintptr_t)((x338)<(x298)); + x340 = (x339)+(x299); + x341 = (x340)+(x337); + x342 = (x338)+(x322); + x343 = (uintptr_t)((x342)<(x338)); + x344 = (x343)+(x341); + x345 = (x344)+(x323); + x346 = ((x342)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x345)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x347 = (x345)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x348 = (x342)&((uintptr_t)(UINTMAX_C(67108863))); + x349 = (x7)*(x7); + x350 = _br2_mulhuu((x7), (x7)); + x351 = (x12)*(x8); + x352 = _br2_mulhuu((x12), (x8)); x353 = (x351)+(x349); x354 = (uintptr_t)((x353)<(x351)); x355 = (x354)+(x352); x356 = (x355)+(x350); - x357 = (x18)*(x4); - x358 = _br2_mulhuu((x18), (x4)); + x357 = (x13)*(x9); + x358 = _br2_mulhuu((x13), (x9)); x359 = (x357)+(x353); x360 = (uintptr_t)((x359)<(x357)); x361 = (x360)+(x358); x362 = (x361)+(x356); - x363 = (x359)+(x347); - x364 = (uintptr_t)((x363)<(x359)); - x365 = (x364)+(x362); - x366 = (x365)+(x348); - x367 = (x324)+(x363); - x368 = (uintptr_t)((x367)<(x324)); - x369 = (x368)+(x366); - x370 = (x367)+(x345); - x371 = (uintptr_t)((x370)<(x367)); - x372 = (x371)+(x369); - x373 = (x372)+(x346); - x374 = ((x370)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x373)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x375 = (x370)&((uintptr_t)(UINTMAX_C(67108863))); - x376 = (x11)*(x8); - x377 = _br2_mulhuu((x11), (x8)); - x378 = (x12)*(x9); - x379 = _br2_mulhuu((x12), (x9)); - x380 = (x378)+(x376); - x381 = (uintptr_t)((x380)<(x378)); - x382 = (x381)+(x379); - x383 = (x382)+(x377); - x384 = (x343)+(x380); - x385 = (uintptr_t)((x384)<(x343)); + x363 = (x319)+(x359); + x364 = (uintptr_t)((x363)<(x319)); + x365 = (x364)+(x320); + x366 = (x365)+(x362); + x367 = ((x363)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x366)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x368 = (x366)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x369 = (x363)&((uintptr_t)(UINTMAX_C(67108863))); + x370 = (x369)*((uintptr_t)(UINTMAX_C(15632))); + x371 = _br2_mulhuu((x369), ((uintptr_t)(UINTMAX_C(15632)))); + x372 = (x321)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); + x373 = (x321)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); + x374 = (x2)*(x2); + x375 = _br2_mulhuu((x2), (x2)); + x376 = (x17)*(x3); + x377 = _br2_mulhuu((x17), (x3)); + x378 = (x376)+(x374); + x379 = (uintptr_t)((x378)<(x376)); + x380 = (x379)+(x377); + x381 = (x380)+(x375); + x382 = (x18)*(x4); + x383 = _br2_mulhuu((x18), (x4)); + x384 = (x382)+(x378); + x385 = (uintptr_t)((x384)<(x382)); x386 = (x385)+(x383); - x387 = ((x384)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x386)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x388 = (x384)&((uintptr_t)(UINTMAX_C(67108863))); - x389 = (x388)*((uintptr_t)(UINTMAX_C(15632))); - x390 = _br2_mulhuu((x388), ((uintptr_t)(UINTMAX_C(15632)))); - x391 = (x344)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); - x392 = (x344)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); - x393 = (x16)*(x3); - x394 = _br2_mulhuu((x16), (x3)); - x395 = (x17)*(x4); - x396 = _br2_mulhuu((x17), (x4)); - x397 = (x395)+(x393); - x398 = (uintptr_t)((x397)<(x395)); - x399 = (x398)+(x396); - x400 = (x399)+(x394); - x401 = (x18)*(x5); - x402 = _br2_mulhuu((x18), (x5)); - x403 = (x401)+(x397); - x404 = (uintptr_t)((x403)<(x401)); - x405 = (x404)+(x402); - x406 = (x405)+(x400); - x407 = (x403)+(x391); - x408 = (uintptr_t)((x407)<(x403)); + x387 = (x386)+(x381); + x388 = (x384)+(x372); + x389 = (uintptr_t)((x388)<(x384)); + x390 = (x389)+(x387); + x391 = (x390)+(x373); + x392 = (x346)+(x388); + x393 = (uintptr_t)((x392)<(x346)); + x394 = (x393)+(x347); + x395 = (x394)+(x391); + x396 = (x392)+(x370); + x397 = (uintptr_t)((x396)<(x392)); + x398 = (x397)+(x395); + x399 = (x398)+(x371); + x400 = ((x396)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x399)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x401 = (x399)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x402 = (x396)&((uintptr_t)(UINTMAX_C(67108863))); + x403 = (x11)*(x8); + x404 = _br2_mulhuu((x11), (x8)); + x405 = (x12)*(x9); + x406 = _br2_mulhuu((x12), (x9)); + x407 = (x405)+(x403); + x408 = (uintptr_t)((x407)<(x405)); x409 = (x408)+(x406); - x410 = (x409)+(x392); - x411 = (x374)+(x407); - x412 = (uintptr_t)((x411)<(x374)); - x413 = (x412)+(x410); - x414 = (x411)+(x389); - x415 = (uintptr_t)((x414)<(x411)); - x416 = (x415)+(x413); - x417 = (x416)+(x390); - x418 = ((x414)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x417)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x419 = (x414)&((uintptr_t)(UINTMAX_C(67108863))); - x420 = (x8)*(x8); - x421 = _br2_mulhuu((x8), (x8)); - x422 = (x11)*(x9); - x423 = _br2_mulhuu((x11), (x9)); - x424 = (x422)+(x420); - x425 = (uintptr_t)((x424)<(x422)); - x426 = (x425)+(x423); - x427 = (x426)+(x421); - x428 = (x387)+(x424); - x429 = (uintptr_t)((x428)<(x387)); - x430 = (x429)+(x427); - x431 = (x428)*((uintptr_t)(UINTMAX_C(15632))); - x432 = _br2_mulhuu((x428), ((uintptr_t)(UINTMAX_C(15632)))); - x433 = (x388)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); - x434 = (x388)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); - x435 = (x3)*(x3); - x436 = _br2_mulhuu((x3), (x3)); - x437 = (x16)*(x4); - x438 = _br2_mulhuu((x16), (x4)); - x439 = (x437)+(x435); - x440 = (uintptr_t)((x439)<(x437)); - x441 = (x440)+(x438); - x442 = (x441)+(x436); - x443 = (x17)*(x5); - x444 = _br2_mulhuu((x17), (x5)); - x445 = (x443)+(x439); - x446 = (uintptr_t)((x445)<(x443)); - x447 = (x446)+(x444); - x448 = (x447)+(x442); - x449 = (x18)*(x6); - x450 = _br2_mulhuu((x18), (x6)); - x451 = (x449)+(x445); - x452 = (uintptr_t)((x451)<(x449)); - x453 = (x452)+(x450); - x454 = (x453)+(x448); - x455 = (x451)+(x433); - x456 = (uintptr_t)((x455)<(x451)); + x410 = (x409)+(x404); + x411 = (x367)+(x407); + x412 = (uintptr_t)((x411)<(x367)); + x413 = (x412)+(x368); + x414 = (x413)+(x410); + x415 = ((x411)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x414)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x416 = (x414)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x417 = (x411)&((uintptr_t)(UINTMAX_C(67108863))); + x418 = (x417)*((uintptr_t)(UINTMAX_C(15632))); + x419 = _br2_mulhuu((x417), ((uintptr_t)(UINTMAX_C(15632)))); + x420 = (x369)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); + x421 = (x369)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); + x422 = (x16)*(x3); + x423 = _br2_mulhuu((x16), (x3)); + x424 = (x17)*(x4); + x425 = _br2_mulhuu((x17), (x4)); + x426 = (x424)+(x422); + x427 = (uintptr_t)((x426)<(x424)); + x428 = (x427)+(x425); + x429 = (x428)+(x423); + x430 = (x18)*(x5); + x431 = _br2_mulhuu((x18), (x5)); + x432 = (x430)+(x426); + x433 = (uintptr_t)((x432)<(x430)); + x434 = (x433)+(x431); + x435 = (x434)+(x429); + x436 = (x432)+(x420); + x437 = (uintptr_t)((x436)<(x432)); + x438 = (x437)+(x435); + x439 = (x438)+(x421); + x440 = (x400)+(x436); + x441 = (uintptr_t)((x440)<(x400)); + x442 = (x441)+(x401); + x443 = (x442)+(x439); + x444 = (x440)+(x418); + x445 = (uintptr_t)((x444)<(x440)); + x446 = (x445)+(x443); + x447 = (x446)+(x419); + x448 = ((x444)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x447)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x449 = (x447)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x450 = (x444)&((uintptr_t)(UINTMAX_C(67108863))); + x451 = (x8)*(x8); + x452 = _br2_mulhuu((x8), (x8)); + x453 = (x11)*(x9); + x454 = _br2_mulhuu((x11), (x9)); + x455 = (x453)+(x451); + x456 = (uintptr_t)((x455)<(x453)); x457 = (x456)+(x454); - x458 = (x457)+(x434); - x459 = (x418)+(x455); - x460 = (uintptr_t)((x459)<(x418)); - x461 = (x460)+(x458); - x462 = (x459)+(x431); - x463 = (uintptr_t)((x462)<(x459)); - x464 = (x463)+(x461); - x465 = (x464)+(x432); - x466 = ((x462)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x465)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x467 = (x462)&((uintptr_t)(UINTMAX_C(67108863))); - x468 = (x430)*((uintptr_t)(UINTMAX_C(1000448))); - x469 = _br2_mulhuu((x430), ((uintptr_t)(UINTMAX_C(1000448)))); - x470 = (x428)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); - x471 = (x428)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); - x472 = (x50)+(x470); - x473 = (uintptr_t)((x472)<(x50)); - x474 = (x473)+(x471); - x475 = (x466)+(x472); - x476 = (uintptr_t)((x475)<(x466)); - x477 = (x476)+(x474); - x478 = (x475)+(x468); - x479 = (uintptr_t)((x478)<(x475)); - x480 = (x479)+(x477); - x481 = (x480)+(x469); - x482 = ((x478)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x481)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x483 = (x478)&((uintptr_t)(UINTMAX_C(67108863))); - x484 = (x430)<<_br2_shamt((uintptr_t)(UINTMAX_C(16))); - x485 = (x430)>>_br2_shamt((uintptr_t)(UINTMAX_C(16))); - x486 = (x98)+(x484); - x487 = (uintptr_t)((x486)<(x98)); - x488 = (x487)+(x485); - x489 = (x482)+(x486); - x490 = (uintptr_t)((x489)<(x482)); - x491 = (x490)+(x488); - x492 = ((x489)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x491)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); - x493 = (x489)&((uintptr_t)(UINTMAX_C(67108863))); - x494 = (x492)+(x177); - x495 = x187; - x496 = x231; - x497 = x281; - x498 = x325; - x499 = x375; - x500 = x419; - x501 = x467; - x502 = x483; - x503 = x493; - x504 = x494; + x458 = (x457)+(x452); + x459 = (x415)+(x455); + x460 = (uintptr_t)((x459)<(x415)); + x461 = (x460)+(x416); + x462 = (x461)+(x458); + x463 = (x459)*((uintptr_t)(UINTMAX_C(15632))); + x464 = _br2_mulhuu((x459), ((uintptr_t)(UINTMAX_C(15632)))); + x465 = (x417)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); + x466 = (x417)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); + x467 = (x3)*(x3); + x468 = _br2_mulhuu((x3), (x3)); + x469 = (x16)*(x4); + x470 = _br2_mulhuu((x16), (x4)); + x471 = (x469)+(x467); + x472 = (uintptr_t)((x471)<(x469)); + x473 = (x472)+(x470); + x474 = (x473)+(x468); + x475 = (x17)*(x5); + x476 = _br2_mulhuu((x17), (x5)); + x477 = (x475)+(x471); + x478 = (uintptr_t)((x477)<(x475)); + x479 = (x478)+(x476); + x480 = (x479)+(x474); + x481 = (x18)*(x6); + x482 = _br2_mulhuu((x18), (x6)); + x483 = (x481)+(x477); + x484 = (uintptr_t)((x483)<(x481)); + x485 = (x484)+(x482); + x486 = (x485)+(x480); + x487 = (x483)+(x465); + x488 = (uintptr_t)((x487)<(x483)); + x489 = (x488)+(x486); + x490 = (x489)+(x466); + x491 = (x448)+(x487); + x492 = (uintptr_t)((x491)<(x448)); + x493 = (x492)+(x449); + x494 = (x493)+(x490); + x495 = (x491)+(x463); + x496 = (uintptr_t)((x495)<(x491)); + x497 = (x496)+(x494); + x498 = (x497)+(x464); + x499 = ((x495)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x498)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x500 = (x498)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))); + x501 = (x495)&((uintptr_t)(UINTMAX_C(67108863))); + x502 = (x462)*((uintptr_t)(UINTMAX_C(1000448))); + x503 = _br2_mulhuu((x462), ((uintptr_t)(UINTMAX_C(1000448)))); + x504 = (x459)<<_br2_shamt((uintptr_t)(UINTMAX_C(10))); + x505 = (x459)>>_br2_shamt((uintptr_t)(UINTMAX_C(22))); + x506 = (x51)+(x504); + x507 = (uintptr_t)((x506)<(x51)); + x508 = (x507)+(x505); + x509 = (x499)+(x506); + x510 = (uintptr_t)((x509)<(x499)); + x511 = (x510)+(x500); + x512 = (x511)+(x508); + x513 = (x509)+(x502); + x514 = (uintptr_t)((x513)<(x509)); + x515 = (x514)+(x512); + x516 = (x515)+(x503); + x517 = ((x513)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x516)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x518 = (x513)&((uintptr_t)(UINTMAX_C(67108863))); + x519 = (x462)<<_br2_shamt((uintptr_t)(UINTMAX_C(16))); + x520 = (x462)>>_br2_shamt((uintptr_t)(UINTMAX_C(16))); + x521 = (x101)+(x519); + x522 = (uintptr_t)((x521)<(x101)); + x523 = (x522)+(x520); + x524 = (x517)+(x521); + x525 = (uintptr_t)((x524)<(x517)); + x526 = (x525)+(x523); + x527 = ((x524)>>_br2_shamt((uintptr_t)(UINTMAX_C(26))))|((x526)<<_br2_shamt((uintptr_t)(UINTMAX_C(6)))); + x528 = (x524)&((uintptr_t)(UINTMAX_C(67108863))); + x529 = (x527)+(x187); + x530 = x198; + x531 = x246; + x532 = x300; + x533 = x348; + x534 = x402; + x535 = x450; + x536 = x501; + x537 = x518; + x538 = x528; + x539 = x529; /*skip*/ - _br2_store((out0)+((uintptr_t)(UINTMAX_C(0))), x495, sizeof(uintptr_t)); - _br2_store((out0)+((uintptr_t)(UINTMAX_C(4))), x496, sizeof(uintptr_t)); - _br2_store((out0)+((uintptr_t)(UINTMAX_C(8))), x497, sizeof(uintptr_t)); - _br2_store((out0)+((uintptr_t)(UINTMAX_C(12))), x498, sizeof(uintptr_t)); - _br2_store((out0)+((uintptr_t)(UINTMAX_C(16))), x499, sizeof(uintptr_t)); - _br2_store((out0)+((uintptr_t)(UINTMAX_C(20))), x500, sizeof(uintptr_t)); - _br2_store((out0)+((uintptr_t)(UINTMAX_C(24))), x501, sizeof(uintptr_t)); - _br2_store((out0)+((uintptr_t)(UINTMAX_C(28))), x502, sizeof(uintptr_t)); - _br2_store((out0)+((uintptr_t)(UINTMAX_C(32))), x503, sizeof(uintptr_t)); - _br2_store((out0)+((uintptr_t)(UINTMAX_C(36))), x504, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)(UINTMAX_C(0))), x530, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)(UINTMAX_C(4))), x531, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)(UINTMAX_C(8))), x532, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)(UINTMAX_C(12))), x533, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)(UINTMAX_C(16))), x534, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)(UINTMAX_C(20))), x535, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)(UINTMAX_C(24))), x536, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)(UINTMAX_C(28))), x537, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)(UINTMAX_C(32))), x538, sizeof(uintptr_t)); + _br2_store((out0)+((uintptr_t)(UINTMAX_C(36))), x539, sizeof(uintptr_t)); /*skip*/ return; } diff --git a/fiat-bedrock2/src/secp256k1_dettman_64.c b/fiat-bedrock2/src/secp256k1_dettman_64.c index c79f5f3bd1..fe76fb33dc 100644 --- a/fiat-bedrock2/src/secp256k1_dettman_64.c +++ b/fiat-bedrock2/src/secp256k1_dettman_64.c @@ -78,10 +78,10 @@ uintptr_t _br2_shamt(uintptr_t a) { /* * Input Bounds: - * in0: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] - * in1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] + * in0: [[0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xffffffffffff0]] + * in1: [[0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xffffffffffff0]] * Output Bounds: - * out0: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x17fffffffffff]] + * out0: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] */ static void internal_fiat_secp256k1_dettman_mul(uintptr_t out0, uintptr_t in0, uintptr_t in1) { @@ -308,9 +308,9 @@ static void fiat_secp256k1_dettman_mul(uint64_t out1[5], const uint64_t arg1[5], /* * Input Bounds: - * in0: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] + * in0: [[0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xffffffffffff0]] * Output Bounds: - * out0: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x17fffffffffff]] + * out0: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] */ static void internal_fiat_secp256k1_dettman_square(uintptr_t out0, uintptr_t in0) { diff --git a/fiat-c/src/secp256k1_dettman_32.c b/fiat-c/src/secp256k1_dettman_32.c index 65560d9bea..21ac5b4657 100644 --- a/fiat-c/src/secp256k1_dettman_32.c +++ b/fiat-c/src/secp256k1_dettman_32.c @@ -31,70 +31,70 @@ * eval out1 mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 = (eval arg1 * eval arg2) mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 * * Input Bounds: - * arg1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] - * arg2: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] + * arg1: [[0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3fffff0]] + * arg2: [[0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3fffff0]] * Output Bounds: - * out1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x5fffff]] + * out1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] */ static FIAT_SECP256K1_DETTMAN_FIAT_INLINE void fiat_secp256k1_dettman_mul(uint32_t out1[10], const uint32_t arg1[10], const uint32_t arg2[10]) { uint64_t x1; uint32_t x2; uint32_t x3; uint64_t x4; - uint32_t x5; + uint64_t x5; uint32_t x6; uint64_t x7; uint32_t x8; uint32_t x9; uint64_t x10; - uint32_t x11; + uint64_t x11; uint32_t x12; uint64_t x13; - uint32_t x14; + uint64_t x14; uint32_t x15; uint64_t x16; - uint32_t x17; + uint64_t x17; uint32_t x18; uint32_t x19; uint32_t x20; uint64_t x21; - uint32_t x22; + uint64_t x22; uint32_t x23; uint64_t x24; - uint32_t x25; + uint64_t x25; uint32_t x26; uint64_t x27; - uint32_t x28; + uint64_t x28; uint32_t x29; uint64_t x30; - uint32_t x31; + uint64_t x31; uint32_t x32; uint64_t x33; - uint32_t x34; + uint64_t x34; uint32_t x35; uint64_t x36; - uint32_t x37; + uint64_t x37; uint32_t x38; uint64_t x39; - uint32_t x40; + uint64_t x40; uint32_t x41; uint64_t x42; - uint32_t x43; + uint64_t x43; uint32_t x44; uint64_t x45; - uint32_t x46; + uint64_t x46; uint32_t x47; uint64_t x48; - uint32_t x49; + uint64_t x49; uint32_t x50; uint64_t x51; - uint32_t x52; + uint64_t x52; uint32_t x53; uint64_t x54; uint32_t x55; uint32_t x56; uint64_t x57; - uint32_t x58; + uint64_t x58; uint32_t x59; uint64_t x60; uint32_t x61; @@ -107,60 +107,60 @@ static FIAT_SECP256K1_DETTMAN_FIAT_INLINE void fiat_secp256k1_dettman_mul(uint32 x2 = (uint32_t)(x1 >> 26); x3 = (uint32_t)(x1 & UINT32_C(0x3ffffff)); x4 = ((((uint64_t)(arg1[0]) * (arg2[7])) + (((uint64_t)(arg1[1]) * (arg2[6])) + (((uint64_t)(arg1[2]) * (arg2[5])) + (((uint64_t)(arg1[3]) * (arg2[4])) + (((uint64_t)(arg1[4]) * (arg2[3])) + (((uint64_t)(arg1[5]) * (arg2[2])) + (((uint64_t)(arg1[6]) * (arg2[1])) + ((uint64_t)(arg1[7]) * (arg2[0]))))))))) + ((uint64_t)x3 * UINT16_C(0x3d10))); - x5 = (uint32_t)(x4 >> 26); + x5 = (x4 >> 26); x6 = (uint32_t)(x4 & UINT32_C(0x3ffffff)); x7 = (x2 + ((uint64_t)(arg1[9]) * (arg2[9]))); x8 = (uint32_t)(x7 >> 32); x9 = (uint32_t)(x7 & UINT32_C(0xffffffff)); x10 = ((x5 + ((((uint64_t)(arg1[0]) * (arg2[8])) + (((uint64_t)(arg1[1]) * (arg2[7])) + (((uint64_t)(arg1[2]) * (arg2[6])) + (((uint64_t)(arg1[3]) * (arg2[5])) + (((uint64_t)(arg1[4]) * (arg2[4])) + (((uint64_t)(arg1[5]) * (arg2[3])) + (((uint64_t)(arg1[6]) * (arg2[2])) + (((uint64_t)(arg1[7]) * (arg2[1])) + ((uint64_t)(arg1[8]) * (arg2[0])))))))))) + ((uint64_t)x3 << 10))) + ((uint64_t)x9 * UINT16_C(0x3d10))); - x11 = (uint32_t)(x10 >> 26); + x11 = (x10 >> 26); x12 = (uint32_t)(x10 & UINT32_C(0x3ffffff)); x13 = ((x11 + ((((uint64_t)(arg1[0]) * (arg2[9])) + (((uint64_t)(arg1[1]) * (arg2[8])) + (((uint64_t)(arg1[2]) * (arg2[7])) + (((uint64_t)(arg1[3]) * (arg2[6])) + (((uint64_t)(arg1[4]) * (arg2[5])) + (((uint64_t)(arg1[5]) * (arg2[4])) + (((uint64_t)(arg1[6]) * (arg2[3])) + (((uint64_t)(arg1[7]) * (arg2[2])) + (((uint64_t)(arg1[8]) * (arg2[1])) + ((uint64_t)(arg1[9]) * (arg2[0]))))))))))) + ((uint64_t)x9 << 10))) + ((uint64_t)x8 * UINT32_C(0xf4400))); - x14 = (uint32_t)(x13 >> 26); + x14 = (x13 >> 26); x15 = (uint32_t)(x13 & UINT32_C(0x3ffffff)); - x16 = (x14 + ((((uint64_t)(arg1[1]) * (arg2[9])) + (((uint64_t)(arg1[2]) * (arg2[8])) + (((uint64_t)(arg1[3]) * (arg2[7])) + (((uint64_t)(arg1[4]) * (arg2[6])) + (((uint64_t)(arg1[5]) * (arg2[5])) + (((uint64_t)(arg1[6]) * (arg2[4])) + (((uint64_t)(arg1[7]) * (arg2[3])) + (((uint64_t)(arg1[8]) * (arg2[2])) + ((uint64_t)(arg1[9]) * (arg2[1])))))))))) + (x8 << 16))); - x17 = (uint32_t)(x16 >> 26); + x16 = (x14 + ((((uint64_t)(arg1[1]) * (arg2[9])) + (((uint64_t)(arg1[2]) * (arg2[8])) + (((uint64_t)(arg1[3]) * (arg2[7])) + (((uint64_t)(arg1[4]) * (arg2[6])) + (((uint64_t)(arg1[5]) * (arg2[5])) + (((uint64_t)(arg1[6]) * (arg2[4])) + (((uint64_t)(arg1[7]) * (arg2[3])) + (((uint64_t)(arg1[8]) * (arg2[2])) + ((uint64_t)(arg1[9]) * (arg2[1])))))))))) + ((uint64_t)x8 << 16))); + x17 = (x16 >> 26); x18 = (uint32_t)(x16 & UINT32_C(0x3ffffff)); x19 = (x15 >> 22); x20 = (x15 & UINT32_C(0x3fffff)); x21 = (((uint64_t)(arg1[0]) * (arg2[0])) + ((uint64_t)(x19 + (x18 << 4)) * UINT16_C(0x3d1))); - x22 = (uint32_t)(x21 >> 26); + x22 = (x21 >> 26); x23 = (uint32_t)(x21 & UINT32_C(0x3ffffff)); x24 = (x17 + (((uint64_t)(arg1[2]) * (arg2[9])) + (((uint64_t)(arg1[3]) * (arg2[8])) + (((uint64_t)(arg1[4]) * (arg2[7])) + (((uint64_t)(arg1[5]) * (arg2[6])) + (((uint64_t)(arg1[6]) * (arg2[5])) + (((uint64_t)(arg1[7]) * (arg2[4])) + (((uint64_t)(arg1[8]) * (arg2[3])) + ((uint64_t)(arg1[9]) * (arg2[2])))))))))); - x25 = (uint32_t)(x24 >> 26); + x25 = (x24 >> 26); x26 = (uint32_t)(x24 & UINT32_C(0x3ffffff)); x27 = ((x22 + ((((uint64_t)(arg1[0]) * (arg2[1])) + ((uint64_t)(arg1[1]) * (arg2[0]))) + ((uint64_t)(x19 + (x18 << 4)) << 6))) + ((uint64_t)x26 * UINT16_C(0x3d10))); - x28 = (uint32_t)(x27 >> 26); + x28 = (x27 >> 26); x29 = (uint32_t)(x27 & UINT32_C(0x3ffffff)); x30 = (x25 + (((uint64_t)(arg1[3]) * (arg2[9])) + (((uint64_t)(arg1[4]) * (arg2[8])) + (((uint64_t)(arg1[5]) * (arg2[7])) + (((uint64_t)(arg1[6]) * (arg2[6])) + (((uint64_t)(arg1[7]) * (arg2[5])) + (((uint64_t)(arg1[8]) * (arg2[4])) + ((uint64_t)(arg1[9]) * (arg2[3]))))))))); - x31 = (uint32_t)(x30 >> 26); + x31 = (x30 >> 26); x32 = (uint32_t)(x30 & UINT32_C(0x3ffffff)); x33 = ((x28 + ((((uint64_t)(arg1[0]) * (arg2[2])) + (((uint64_t)(arg1[1]) * (arg2[1])) + ((uint64_t)(arg1[2]) * (arg2[0])))) + ((uint64_t)x26 << 10))) + ((uint64_t)x32 * UINT16_C(0x3d10))); - x34 = (uint32_t)(x33 >> 26); + x34 = (x33 >> 26); x35 = (uint32_t)(x33 & UINT32_C(0x3ffffff)); x36 = (x31 + (((uint64_t)(arg1[4]) * (arg2[9])) + (((uint64_t)(arg1[5]) * (arg2[8])) + (((uint64_t)(arg1[6]) * (arg2[7])) + (((uint64_t)(arg1[7]) * (arg2[6])) + (((uint64_t)(arg1[8]) * (arg2[5])) + ((uint64_t)(arg1[9]) * (arg2[4])))))))); - x37 = (uint32_t)(x36 >> 26); + x37 = (x36 >> 26); x38 = (uint32_t)(x36 & UINT32_C(0x3ffffff)); x39 = ((x34 + ((((uint64_t)(arg1[0]) * (arg2[3])) + (((uint64_t)(arg1[1]) * (arg2[2])) + (((uint64_t)(arg1[2]) * (arg2[1])) + ((uint64_t)(arg1[3]) * (arg2[0]))))) + ((uint64_t)x32 << 10))) + ((uint64_t)x38 * UINT16_C(0x3d10))); - x40 = (uint32_t)(x39 >> 26); + x40 = (x39 >> 26); x41 = (uint32_t)(x39 & UINT32_C(0x3ffffff)); x42 = (x37 + (((uint64_t)(arg1[5]) * (arg2[9])) + (((uint64_t)(arg1[6]) * (arg2[8])) + (((uint64_t)(arg1[7]) * (arg2[7])) + (((uint64_t)(arg1[8]) * (arg2[6])) + ((uint64_t)(arg1[9]) * (arg2[5]))))))); - x43 = (uint32_t)(x42 >> 26); + x43 = (x42 >> 26); x44 = (uint32_t)(x42 & UINT32_C(0x3ffffff)); x45 = ((x40 + ((((uint64_t)(arg1[0]) * (arg2[4])) + (((uint64_t)(arg1[1]) * (arg2[3])) + (((uint64_t)(arg1[2]) * (arg2[2])) + (((uint64_t)(arg1[3]) * (arg2[1])) + ((uint64_t)(arg1[4]) * (arg2[0])))))) + ((uint64_t)x38 << 10))) + ((uint64_t)x44 * UINT16_C(0x3d10))); - x46 = (uint32_t)(x45 >> 26); + x46 = (x45 >> 26); x47 = (uint32_t)(x45 & UINT32_C(0x3ffffff)); x48 = (x43 + (((uint64_t)(arg1[6]) * (arg2[9])) + (((uint64_t)(arg1[7]) * (arg2[8])) + (((uint64_t)(arg1[8]) * (arg2[7])) + ((uint64_t)(arg1[9]) * (arg2[6])))))); - x49 = (uint32_t)(x48 >> 26); + x49 = (x48 >> 26); x50 = (uint32_t)(x48 & UINT32_C(0x3ffffff)); x51 = ((x46 + ((((uint64_t)(arg1[0]) * (arg2[5])) + (((uint64_t)(arg1[1]) * (arg2[4])) + (((uint64_t)(arg1[2]) * (arg2[3])) + (((uint64_t)(arg1[3]) * (arg2[2])) + (((uint64_t)(arg1[4]) * (arg2[1])) + ((uint64_t)(arg1[5]) * (arg2[0]))))))) + ((uint64_t)x44 << 10))) + ((uint64_t)x50 * UINT16_C(0x3d10))); - x52 = (uint32_t)(x51 >> 26); + x52 = (x51 >> 26); x53 = (uint32_t)(x51 & UINT32_C(0x3ffffff)); x54 = (x49 + (((uint64_t)(arg1[7]) * (arg2[9])) + (((uint64_t)(arg1[8]) * (arg2[8])) + ((uint64_t)(arg1[9]) * (arg2[7]))))); x55 = (uint32_t)(x54 >> 32); x56 = (uint32_t)(x54 & UINT32_C(0xffffffff)); x57 = ((x52 + ((((uint64_t)(arg1[0]) * (arg2[6])) + (((uint64_t)(arg1[1]) * (arg2[5])) + (((uint64_t)(arg1[2]) * (arg2[4])) + (((uint64_t)(arg1[3]) * (arg2[3])) + (((uint64_t)(arg1[4]) * (arg2[2])) + (((uint64_t)(arg1[5]) * (arg2[1])) + ((uint64_t)(arg1[6]) * (arg2[0])))))))) + ((uint64_t)x50 << 10))) + ((uint64_t)x56 * UINT16_C(0x3d10))); - x58 = (uint32_t)(x57 >> 26); + x58 = (x57 >> 26); x59 = (uint32_t)(x57 & UINT32_C(0x3ffffff)); x60 = ((x58 + (x6 + ((uint64_t)x56 << 10))) + ((uint64_t)x55 * UINT32_C(0xf4400))); x61 = (uint32_t)(x60 >> 26); @@ -188,9 +188,9 @@ static FIAT_SECP256K1_DETTMAN_FIAT_INLINE void fiat_secp256k1_dettman_mul(uint32 * eval out1 mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 = (eval arg1 * eval arg1) mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 * * Input Bounds: - * arg1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] + * arg1: [[0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3fffff0]] * Output Bounds: - * out1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x5fffff]] + * out1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] */ static FIAT_SECP256K1_DETTMAN_FIAT_INLINE void fiat_secp256k1_dettman_square(uint32_t out1[10], const uint32_t arg1[10]) { uint32_t x1; @@ -206,60 +206,60 @@ static FIAT_SECP256K1_DETTMAN_FIAT_INLINE void fiat_secp256k1_dettman_square(uin uint32_t x11; uint32_t x12; uint64_t x13; - uint32_t x14; + uint64_t x14; uint32_t x15; uint64_t x16; uint32_t x17; uint32_t x18; uint64_t x19; - uint32_t x20; + uint64_t x20; uint32_t x21; uint64_t x22; - uint32_t x23; + uint64_t x23; uint32_t x24; uint64_t x25; - uint32_t x26; + uint64_t x26; uint32_t x27; uint32_t x28; uint32_t x29; uint64_t x30; - uint32_t x31; + uint64_t x31; uint32_t x32; uint64_t x33; - uint32_t x34; + uint64_t x34; uint32_t x35; uint64_t x36; - uint32_t x37; + uint64_t x37; uint32_t x38; uint64_t x39; - uint32_t x40; + uint64_t x40; uint32_t x41; uint64_t x42; - uint32_t x43; + uint64_t x43; uint32_t x44; uint64_t x45; - uint32_t x46; + uint64_t x46; uint32_t x47; uint64_t x48; - uint32_t x49; + uint64_t x49; uint32_t x50; uint64_t x51; - uint32_t x52; + uint64_t x52; uint32_t x53; uint64_t x54; - uint32_t x55; + uint64_t x55; uint32_t x56; uint64_t x57; - uint32_t x58; + uint64_t x58; uint32_t x59; uint64_t x60; - uint32_t x61; + uint64_t x61; uint32_t x62; uint64_t x63; uint32_t x64; uint32_t x65; uint64_t x66; - uint32_t x67; + uint64_t x67; uint32_t x68; uint64_t x69; uint32_t x70; @@ -281,60 +281,60 @@ static FIAT_SECP256K1_DETTMAN_FIAT_INLINE void fiat_secp256k1_dettman_square(uin x11 = (uint32_t)(x10 >> 26); x12 = (uint32_t)(x10 & UINT32_C(0x3ffffff)); x13 = ((((uint64_t)x9 * (arg1[7])) + (((uint64_t)x8 * (arg1[6])) + (((uint64_t)x7 * (arg1[5])) + ((uint64_t)x6 * (arg1[4]))))) + ((uint64_t)x12 * UINT16_C(0x3d10))); - x14 = (uint32_t)(x13 >> 26); + x14 = (x13 >> 26); x15 = (uint32_t)(x13 & UINT32_C(0x3ffffff)); x16 = (x11 + ((uint64_t)(arg1[9]) * (arg1[9]))); x17 = (uint32_t)(x16 >> 32); x18 = (uint32_t)(x16 & UINT32_C(0xffffffff)); x19 = ((x14 + ((((uint64_t)x9 * (arg1[8])) + (((uint64_t)x8 * (arg1[7])) + (((uint64_t)x7 * (arg1[6])) + (((uint64_t)x6 * (arg1[5])) + ((uint64_t)(arg1[4]) * (arg1[4])))))) + ((uint64_t)x12 << 10))) + ((uint64_t)x18 * UINT16_C(0x3d10))); - x20 = (uint32_t)(x19 >> 26); + x20 = (x19 >> 26); x21 = (uint32_t)(x19 & UINT32_C(0x3ffffff)); x22 = ((x20 + ((((uint64_t)x9 * (arg1[9])) + (((uint64_t)x8 * (arg1[8])) + (((uint64_t)x7 * (arg1[7])) + (((uint64_t)x6 * (arg1[6])) + ((uint64_t)x5 * (arg1[5])))))) + ((uint64_t)x18 << 10))) + ((uint64_t)x17 * UINT32_C(0xf4400))); - x23 = (uint32_t)(x22 >> 26); + x23 = (x22 >> 26); x24 = (uint32_t)(x22 & UINT32_C(0x3ffffff)); - x25 = (x23 + ((((uint64_t)x8 * (arg1[9])) + (((uint64_t)x7 * (arg1[8])) + (((uint64_t)x6 * (arg1[7])) + (((uint64_t)x5 * (arg1[6])) + ((uint64_t)(arg1[5]) * (arg1[5])))))) + (x17 << 16))); - x26 = (uint32_t)(x25 >> 26); + x25 = (x23 + ((((uint64_t)x8 * (arg1[9])) + (((uint64_t)x7 * (arg1[8])) + (((uint64_t)x6 * (arg1[7])) + (((uint64_t)x5 * (arg1[6])) + ((uint64_t)(arg1[5]) * (arg1[5])))))) + ((uint64_t)x17 << 16))); + x26 = (x25 >> 26); x27 = (uint32_t)(x25 & UINT32_C(0x3ffffff)); x28 = (x24 >> 22); x29 = (x24 & UINT32_C(0x3fffff)); x30 = (((uint64_t)(arg1[0]) * (arg1[0])) + ((uint64_t)(x28 + (x27 << 4)) * UINT16_C(0x3d1))); - x31 = (uint32_t)(x30 >> 26); + x31 = (x30 >> 26); x32 = (uint32_t)(x30 & UINT32_C(0x3ffffff)); x33 = (x26 + (((uint64_t)x7 * (arg1[9])) + (((uint64_t)x6 * (arg1[8])) + (((uint64_t)x5 * (arg1[7])) + ((uint64_t)x4 * (arg1[6])))))); - x34 = (uint32_t)(x33 >> 26); + x34 = (x33 >> 26); x35 = (uint32_t)(x33 & UINT32_C(0x3ffffff)); x36 = ((x31 + (((uint64_t)x9 * (arg1[1])) + ((uint64_t)(x28 + (x27 << 4)) << 6))) + ((uint64_t)x35 * UINT16_C(0x3d10))); - x37 = (uint32_t)(x36 >> 26); + x37 = (x36 >> 26); x38 = (uint32_t)(x36 & UINT32_C(0x3ffffff)); x39 = (x34 + (((uint64_t)x6 * (arg1[9])) + (((uint64_t)x5 * (arg1[8])) + (((uint64_t)x4 * (arg1[7])) + ((uint64_t)(arg1[6]) * (arg1[6])))))); - x40 = (uint32_t)(x39 >> 26); + x40 = (x39 >> 26); x41 = (uint32_t)(x39 & UINT32_C(0x3ffffff)); x42 = ((x37 + ((((uint64_t)x9 * (arg1[2])) + ((uint64_t)(arg1[1]) * (arg1[1]))) + ((uint64_t)x35 << 10))) + ((uint64_t)x41 * UINT16_C(0x3d10))); - x43 = (uint32_t)(x42 >> 26); + x43 = (x42 >> 26); x44 = (uint32_t)(x42 & UINT32_C(0x3ffffff)); x45 = (x40 + (((uint64_t)x5 * (arg1[9])) + (((uint64_t)x4 * (arg1[8])) + ((uint64_t)x3 * (arg1[7]))))); - x46 = (uint32_t)(x45 >> 26); + x46 = (x45 >> 26); x47 = (uint32_t)(x45 & UINT32_C(0x3ffffff)); x48 = ((x43 + ((((uint64_t)x9 * (arg1[3])) + ((uint64_t)x8 * (arg1[2]))) + ((uint64_t)x41 << 10))) + ((uint64_t)x47 * UINT16_C(0x3d10))); - x49 = (uint32_t)(x48 >> 26); + x49 = (x48 >> 26); x50 = (uint32_t)(x48 & UINT32_C(0x3ffffff)); x51 = (x46 + (((uint64_t)x4 * (arg1[9])) + (((uint64_t)x3 * (arg1[8])) + ((uint64_t)(arg1[7]) * (arg1[7]))))); - x52 = (uint32_t)(x51 >> 26); + x52 = (x51 >> 26); x53 = (uint32_t)(x51 & UINT32_C(0x3ffffff)); x54 = ((x49 + ((((uint64_t)x9 * (arg1[4])) + (((uint64_t)x8 * (arg1[3])) + ((uint64_t)(arg1[2]) * (arg1[2])))) + ((uint64_t)x47 << 10))) + ((uint64_t)x53 * UINT16_C(0x3d10))); - x55 = (uint32_t)(x54 >> 26); + x55 = (x54 >> 26); x56 = (uint32_t)(x54 & UINT32_C(0x3ffffff)); x57 = (x52 + (((uint64_t)x3 * (arg1[9])) + ((uint64_t)x2 * (arg1[8])))); - x58 = (uint32_t)(x57 >> 26); + x58 = (x57 >> 26); x59 = (uint32_t)(x57 & UINT32_C(0x3ffffff)); x60 = ((x55 + ((((uint64_t)x9 * (arg1[5])) + (((uint64_t)x8 * (arg1[4])) + ((uint64_t)x7 * (arg1[3])))) + ((uint64_t)x53 << 10))) + ((uint64_t)x59 * UINT16_C(0x3d10))); - x61 = (uint32_t)(x60 >> 26); + x61 = (x60 >> 26); x62 = (uint32_t)(x60 & UINT32_C(0x3ffffff)); x63 = (x58 + (((uint64_t)x2 * (arg1[9])) + ((uint64_t)(arg1[8]) * (arg1[8])))); x64 = (uint32_t)(x63 >> 32); x65 = (uint32_t)(x63 & UINT32_C(0xffffffff)); x66 = ((x61 + ((((uint64_t)x9 * (arg1[6])) + (((uint64_t)x8 * (arg1[5])) + (((uint64_t)x7 * (arg1[4])) + ((uint64_t)(arg1[3]) * (arg1[3]))))) + ((uint64_t)x59 << 10))) + ((uint64_t)x65 * UINT16_C(0x3d10))); - x67 = (uint32_t)(x66 >> 26); + x67 = (x66 >> 26); x68 = (uint32_t)(x66 & UINT32_C(0x3ffffff)); x69 = ((x67 + (x15 + ((uint64_t)x65 << 10))) + ((uint64_t)x64 * UINT32_C(0xf4400))); x70 = (uint32_t)(x69 >> 26); diff --git a/fiat-c/src/secp256k1_dettman_64.c b/fiat-c/src/secp256k1_dettman_64.c index 316695de2d..5ca889d40f 100644 --- a/fiat-c/src/secp256k1_dettman_64.c +++ b/fiat-c/src/secp256k1_dettman_64.c @@ -36,10 +36,10 @@ FIAT_SECP256K1_DETTMAN_FIAT_EXTENSION typedef unsigned __int128 fiat_secp256k1_d * eval out1 mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 = (eval arg1 * eval arg2) mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 * * Input Bounds: - * arg1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] - * arg2: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] + * arg1: [[0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xffffffffffff0]] + * arg2: [[0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xffffffffffff0]] * Output Bounds: - * out1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x17fffffffffff]] + * out1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] */ static FIAT_SECP256K1_DETTMAN_FIAT_INLINE void fiat_secp256k1_dettman_mul(uint64_t out1[5], const uint64_t arg1[5], const uint64_t arg2[5]) { fiat_secp256k1_dettman_uint128 x1; @@ -122,9 +122,9 @@ static FIAT_SECP256K1_DETTMAN_FIAT_INLINE void fiat_secp256k1_dettman_mul(uint64 * eval out1 mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 = (eval arg1 * eval arg1) mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 * * Input Bounds: - * arg1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] + * arg1: [[0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xffffffffffff0]] * Output Bounds: - * out1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x17fffffffffff]] + * out1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] */ static FIAT_SECP256K1_DETTMAN_FIAT_INLINE void fiat_secp256k1_dettman_square(uint64_t out1[5], const uint64_t arg1[5]) { uint64_t x1; diff --git a/fiat-go/32/secp256k1dettman/secp256k1dettman.go b/fiat-go/32/secp256k1dettman/secp256k1dettman.go index bb2c8344df..61baf50799 100644 --- a/fiat-go/32/secp256k1dettman/secp256k1dettman.go +++ b/fiat-go/32/secp256k1dettman/secp256k1dettman.go @@ -33,71 +33,71 @@ package secp256k1dettman // eval out1 mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 = (eval arg1 * eval arg2) mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 // // Input Bounds: -// arg1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] -// arg2: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] +// arg1: [[0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3fffff0]] +// arg2: [[0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3fffff0]] // Output Bounds: -// out1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x5fffff]] +// out1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] func Mul(out1 *[10]uint32, arg1 *[10]uint32, arg2 *[10]uint32) { x1 := ((uint64(arg1[8]) * uint64(arg2[9])) + (uint64(arg1[9]) * uint64(arg2[8]))) x2 := uint32((x1 >> 26)) x3 := (uint32(x1) & 0x3ffffff) x4 := (((uint64(arg1[0]) * uint64(arg2[7])) + ((uint64(arg1[1]) * uint64(arg2[6])) + ((uint64(arg1[2]) * uint64(arg2[5])) + ((uint64(arg1[3]) * uint64(arg2[4])) + ((uint64(arg1[4]) * uint64(arg2[3])) + ((uint64(arg1[5]) * uint64(arg2[2])) + ((uint64(arg1[6]) * uint64(arg2[1])) + (uint64(arg1[7]) * uint64(arg2[0]))))))))) + (uint64(x3) * uint64(0x3d10))) - x5 := uint32((x4 >> 26)) + x5 := (x4 >> 26) x6 := (uint32(x4) & 0x3ffffff) x7 := (uint64(x2) + (uint64(arg1[9]) * uint64(arg2[9]))) x8 := uint32((x7 >> 32)) x9 := (uint32(x7) & 0xffffffff) - x10 := ((uint64(x5) + (((uint64(arg1[0]) * uint64(arg2[8])) + ((uint64(arg1[1]) * uint64(arg2[7])) + ((uint64(arg1[2]) * uint64(arg2[6])) + ((uint64(arg1[3]) * uint64(arg2[5])) + ((uint64(arg1[4]) * uint64(arg2[4])) + ((uint64(arg1[5]) * uint64(arg2[3])) + ((uint64(arg1[6]) * uint64(arg2[2])) + ((uint64(arg1[7]) * uint64(arg2[1])) + (uint64(arg1[8]) * uint64(arg2[0])))))))))) + (uint64(x3) << 10))) + (uint64(x9) * uint64(0x3d10))) - x11 := uint32((x10 >> 26)) + x10 := ((x5 + (((uint64(arg1[0]) * uint64(arg2[8])) + ((uint64(arg1[1]) * uint64(arg2[7])) + ((uint64(arg1[2]) * uint64(arg2[6])) + ((uint64(arg1[3]) * uint64(arg2[5])) + ((uint64(arg1[4]) * uint64(arg2[4])) + ((uint64(arg1[5]) * uint64(arg2[3])) + ((uint64(arg1[6]) * uint64(arg2[2])) + ((uint64(arg1[7]) * uint64(arg2[1])) + (uint64(arg1[8]) * uint64(arg2[0])))))))))) + (uint64(x3) << 10))) + (uint64(x9) * uint64(0x3d10))) + x11 := (x10 >> 26) x12 := (uint32(x10) & 0x3ffffff) - x13 := ((uint64(x11) + (((uint64(arg1[0]) * uint64(arg2[9])) + ((uint64(arg1[1]) * uint64(arg2[8])) + ((uint64(arg1[2]) * uint64(arg2[7])) + ((uint64(arg1[3]) * uint64(arg2[6])) + ((uint64(arg1[4]) * uint64(arg2[5])) + ((uint64(arg1[5]) * uint64(arg2[4])) + ((uint64(arg1[6]) * uint64(arg2[3])) + ((uint64(arg1[7]) * uint64(arg2[2])) + ((uint64(arg1[8]) * uint64(arg2[1])) + (uint64(arg1[9]) * uint64(arg2[0]))))))))))) + (uint64(x9) << 10))) + (uint64(x8) * uint64(0xf4400))) - x14 := uint32((x13 >> 26)) + x13 := ((x11 + (((uint64(arg1[0]) * uint64(arg2[9])) + ((uint64(arg1[1]) * uint64(arg2[8])) + ((uint64(arg1[2]) * uint64(arg2[7])) + ((uint64(arg1[3]) * uint64(arg2[6])) + ((uint64(arg1[4]) * uint64(arg2[5])) + ((uint64(arg1[5]) * uint64(arg2[4])) + ((uint64(arg1[6]) * uint64(arg2[3])) + ((uint64(arg1[7]) * uint64(arg2[2])) + ((uint64(arg1[8]) * uint64(arg2[1])) + (uint64(arg1[9]) * uint64(arg2[0]))))))))))) + (uint64(x9) << 10))) + (uint64(x8) * uint64(0xf4400))) + x14 := (x13 >> 26) x15 := (uint32(x13) & 0x3ffffff) - x16 := (uint64(x14) + (((uint64(arg1[1]) * uint64(arg2[9])) + ((uint64(arg1[2]) * uint64(arg2[8])) + ((uint64(arg1[3]) * uint64(arg2[7])) + ((uint64(arg1[4]) * uint64(arg2[6])) + ((uint64(arg1[5]) * uint64(arg2[5])) + ((uint64(arg1[6]) * uint64(arg2[4])) + ((uint64(arg1[7]) * uint64(arg2[3])) + ((uint64(arg1[8]) * uint64(arg2[2])) + (uint64(arg1[9]) * uint64(arg2[1])))))))))) + uint64((x8 << 16)))) - x17 := uint32((x16 >> 26)) + x16 := (x14 + (((uint64(arg1[1]) * uint64(arg2[9])) + ((uint64(arg1[2]) * uint64(arg2[8])) + ((uint64(arg1[3]) * uint64(arg2[7])) + ((uint64(arg1[4]) * uint64(arg2[6])) + ((uint64(arg1[5]) * uint64(arg2[5])) + ((uint64(arg1[6]) * uint64(arg2[4])) + ((uint64(arg1[7]) * uint64(arg2[3])) + ((uint64(arg1[8]) * uint64(arg2[2])) + (uint64(arg1[9]) * uint64(arg2[1])))))))))) + (uint64(x8) << 16))) + x17 := (x16 >> 26) x18 := (uint32(x16) & 0x3ffffff) x19 := (x15 >> 22) x20 := (x15 & 0x3fffff) x21 := ((uint64(arg1[0]) * uint64(arg2[0])) + (uint64((x19 + (x18 << 4))) * uint64(0x3d1))) - x22 := uint32((x21 >> 26)) + x22 := (x21 >> 26) x23 := (uint32(x21) & 0x3ffffff) - x24 := (uint64(x17) + ((uint64(arg1[2]) * uint64(arg2[9])) + ((uint64(arg1[3]) * uint64(arg2[8])) + ((uint64(arg1[4]) * uint64(arg2[7])) + ((uint64(arg1[5]) * uint64(arg2[6])) + ((uint64(arg1[6]) * uint64(arg2[5])) + ((uint64(arg1[7]) * uint64(arg2[4])) + ((uint64(arg1[8]) * uint64(arg2[3])) + (uint64(arg1[9]) * uint64(arg2[2])))))))))) - x25 := uint32((x24 >> 26)) + x24 := (x17 + ((uint64(arg1[2]) * uint64(arg2[9])) + ((uint64(arg1[3]) * uint64(arg2[8])) + ((uint64(arg1[4]) * uint64(arg2[7])) + ((uint64(arg1[5]) * uint64(arg2[6])) + ((uint64(arg1[6]) * uint64(arg2[5])) + ((uint64(arg1[7]) * uint64(arg2[4])) + ((uint64(arg1[8]) * uint64(arg2[3])) + (uint64(arg1[9]) * uint64(arg2[2])))))))))) + x25 := (x24 >> 26) x26 := (uint32(x24) & 0x3ffffff) - x27 := ((uint64(x22) + (((uint64(arg1[0]) * uint64(arg2[1])) + (uint64(arg1[1]) * uint64(arg2[0]))) + (uint64((x19 + (x18 << 4))) << 6))) + (uint64(x26) * uint64(0x3d10))) - x28 := uint32((x27 >> 26)) + x27 := ((x22 + (((uint64(arg1[0]) * uint64(arg2[1])) + (uint64(arg1[1]) * uint64(arg2[0]))) + (uint64((x19 + (x18 << 4))) << 6))) + (uint64(x26) * uint64(0x3d10))) + x28 := (x27 >> 26) x29 := (uint32(x27) & 0x3ffffff) - x30 := (uint64(x25) + ((uint64(arg1[3]) * uint64(arg2[9])) + ((uint64(arg1[4]) * uint64(arg2[8])) + ((uint64(arg1[5]) * uint64(arg2[7])) + ((uint64(arg1[6]) * uint64(arg2[6])) + ((uint64(arg1[7]) * uint64(arg2[5])) + ((uint64(arg1[8]) * uint64(arg2[4])) + (uint64(arg1[9]) * uint64(arg2[3]))))))))) - x31 := uint32((x30 >> 26)) + x30 := (x25 + ((uint64(arg1[3]) * uint64(arg2[9])) + ((uint64(arg1[4]) * uint64(arg2[8])) + ((uint64(arg1[5]) * uint64(arg2[7])) + ((uint64(arg1[6]) * uint64(arg2[6])) + ((uint64(arg1[7]) * uint64(arg2[5])) + ((uint64(arg1[8]) * uint64(arg2[4])) + (uint64(arg1[9]) * uint64(arg2[3]))))))))) + x31 := (x30 >> 26) x32 := (uint32(x30) & 0x3ffffff) - x33 := ((uint64(x28) + (((uint64(arg1[0]) * uint64(arg2[2])) + ((uint64(arg1[1]) * uint64(arg2[1])) + (uint64(arg1[2]) * uint64(arg2[0])))) + (uint64(x26) << 10))) + (uint64(x32) * uint64(0x3d10))) - x34 := uint32((x33 >> 26)) + x33 := ((x28 + (((uint64(arg1[0]) * uint64(arg2[2])) + ((uint64(arg1[1]) * uint64(arg2[1])) + (uint64(arg1[2]) * uint64(arg2[0])))) + (uint64(x26) << 10))) + (uint64(x32) * uint64(0x3d10))) + x34 := (x33 >> 26) x35 := (uint32(x33) & 0x3ffffff) - x36 := (uint64(x31) + ((uint64(arg1[4]) * uint64(arg2[9])) + ((uint64(arg1[5]) * uint64(arg2[8])) + ((uint64(arg1[6]) * uint64(arg2[7])) + ((uint64(arg1[7]) * uint64(arg2[6])) + ((uint64(arg1[8]) * uint64(arg2[5])) + (uint64(arg1[9]) * uint64(arg2[4])))))))) - x37 := uint32((x36 >> 26)) + x36 := (x31 + ((uint64(arg1[4]) * uint64(arg2[9])) + ((uint64(arg1[5]) * uint64(arg2[8])) + ((uint64(arg1[6]) * uint64(arg2[7])) + ((uint64(arg1[7]) * uint64(arg2[6])) + ((uint64(arg1[8]) * uint64(arg2[5])) + (uint64(arg1[9]) * uint64(arg2[4])))))))) + x37 := (x36 >> 26) x38 := (uint32(x36) & 0x3ffffff) - x39 := ((uint64(x34) + (((uint64(arg1[0]) * uint64(arg2[3])) + ((uint64(arg1[1]) * uint64(arg2[2])) + ((uint64(arg1[2]) * uint64(arg2[1])) + (uint64(arg1[3]) * uint64(arg2[0]))))) + (uint64(x32) << 10))) + (uint64(x38) * uint64(0x3d10))) - x40 := uint32((x39 >> 26)) + x39 := ((x34 + (((uint64(arg1[0]) * uint64(arg2[3])) + ((uint64(arg1[1]) * uint64(arg2[2])) + ((uint64(arg1[2]) * uint64(arg2[1])) + (uint64(arg1[3]) * uint64(arg2[0]))))) + (uint64(x32) << 10))) + (uint64(x38) * uint64(0x3d10))) + x40 := (x39 >> 26) x41 := (uint32(x39) & 0x3ffffff) - x42 := (uint64(x37) + ((uint64(arg1[5]) * uint64(arg2[9])) + ((uint64(arg1[6]) * uint64(arg2[8])) + ((uint64(arg1[7]) * uint64(arg2[7])) + ((uint64(arg1[8]) * uint64(arg2[6])) + (uint64(arg1[9]) * uint64(arg2[5]))))))) - x43 := uint32((x42 >> 26)) + x42 := (x37 + ((uint64(arg1[5]) * uint64(arg2[9])) + ((uint64(arg1[6]) * uint64(arg2[8])) + ((uint64(arg1[7]) * uint64(arg2[7])) + ((uint64(arg1[8]) * uint64(arg2[6])) + (uint64(arg1[9]) * uint64(arg2[5]))))))) + x43 := (x42 >> 26) x44 := (uint32(x42) & 0x3ffffff) - x45 := ((uint64(x40) + (((uint64(arg1[0]) * uint64(arg2[4])) + ((uint64(arg1[1]) * uint64(arg2[3])) + ((uint64(arg1[2]) * uint64(arg2[2])) + ((uint64(arg1[3]) * uint64(arg2[1])) + (uint64(arg1[4]) * uint64(arg2[0])))))) + (uint64(x38) << 10))) + (uint64(x44) * uint64(0x3d10))) - x46 := uint32((x45 >> 26)) + x45 := ((x40 + (((uint64(arg1[0]) * uint64(arg2[4])) + ((uint64(arg1[1]) * uint64(arg2[3])) + ((uint64(arg1[2]) * uint64(arg2[2])) + ((uint64(arg1[3]) * uint64(arg2[1])) + (uint64(arg1[4]) * uint64(arg2[0])))))) + (uint64(x38) << 10))) + (uint64(x44) * uint64(0x3d10))) + x46 := (x45 >> 26) x47 := (uint32(x45) & 0x3ffffff) - x48 := (uint64(x43) + ((uint64(arg1[6]) * uint64(arg2[9])) + ((uint64(arg1[7]) * uint64(arg2[8])) + ((uint64(arg1[8]) * uint64(arg2[7])) + (uint64(arg1[9]) * uint64(arg2[6])))))) - x49 := uint32((x48 >> 26)) + x48 := (x43 + ((uint64(arg1[6]) * uint64(arg2[9])) + ((uint64(arg1[7]) * uint64(arg2[8])) + ((uint64(arg1[8]) * uint64(arg2[7])) + (uint64(arg1[9]) * uint64(arg2[6])))))) + x49 := (x48 >> 26) x50 := (uint32(x48) & 0x3ffffff) - x51 := ((uint64(x46) + (((uint64(arg1[0]) * uint64(arg2[5])) + ((uint64(arg1[1]) * uint64(arg2[4])) + ((uint64(arg1[2]) * uint64(arg2[3])) + ((uint64(arg1[3]) * uint64(arg2[2])) + ((uint64(arg1[4]) * uint64(arg2[1])) + (uint64(arg1[5]) * uint64(arg2[0]))))))) + (uint64(x44) << 10))) + (uint64(x50) * uint64(0x3d10))) - x52 := uint32((x51 >> 26)) + x51 := ((x46 + (((uint64(arg1[0]) * uint64(arg2[5])) + ((uint64(arg1[1]) * uint64(arg2[4])) + ((uint64(arg1[2]) * uint64(arg2[3])) + ((uint64(arg1[3]) * uint64(arg2[2])) + ((uint64(arg1[4]) * uint64(arg2[1])) + (uint64(arg1[5]) * uint64(arg2[0]))))))) + (uint64(x44) << 10))) + (uint64(x50) * uint64(0x3d10))) + x52 := (x51 >> 26) x53 := (uint32(x51) & 0x3ffffff) - x54 := (uint64(x49) + ((uint64(arg1[7]) * uint64(arg2[9])) + ((uint64(arg1[8]) * uint64(arg2[8])) + (uint64(arg1[9]) * uint64(arg2[7]))))) + x54 := (x49 + ((uint64(arg1[7]) * uint64(arg2[9])) + ((uint64(arg1[8]) * uint64(arg2[8])) + (uint64(arg1[9]) * uint64(arg2[7]))))) x55 := uint32((x54 >> 32)) x56 := (uint32(x54) & 0xffffffff) - x57 := ((uint64(x52) + (((uint64(arg1[0]) * uint64(arg2[6])) + ((uint64(arg1[1]) * uint64(arg2[5])) + ((uint64(arg1[2]) * uint64(arg2[4])) + ((uint64(arg1[3]) * uint64(arg2[3])) + ((uint64(arg1[4]) * uint64(arg2[2])) + ((uint64(arg1[5]) * uint64(arg2[1])) + (uint64(arg1[6]) * uint64(arg2[0])))))))) + (uint64(x50) << 10))) + (uint64(x56) * uint64(0x3d10))) - x58 := uint32((x57 >> 26)) + x57 := ((x52 + (((uint64(arg1[0]) * uint64(arg2[6])) + ((uint64(arg1[1]) * uint64(arg2[5])) + ((uint64(arg1[2]) * uint64(arg2[4])) + ((uint64(arg1[3]) * uint64(arg2[3])) + ((uint64(arg1[4]) * uint64(arg2[2])) + ((uint64(arg1[5]) * uint64(arg2[1])) + (uint64(arg1[6]) * uint64(arg2[0])))))))) + (uint64(x50) << 10))) + (uint64(x56) * uint64(0x3d10))) + x58 := (x57 >> 26) x59 := (uint32(x57) & 0x3ffffff) - x60 := ((uint64(x58) + (uint64(x6) + (uint64(x56) << 10))) + (uint64(x55) * uint64(0xf4400))) + x60 := ((x58 + (uint64(x6) + (uint64(x56) << 10))) + (uint64(x55) * uint64(0xf4400))) x61 := uint32((x60 >> 26)) x62 := (uint32(x60) & 0x3ffffff) x63 := (uint64(x61) + (uint64(x12) + (uint64(x55) << 16))) @@ -122,9 +122,9 @@ func Mul(out1 *[10]uint32, arg1 *[10]uint32, arg2 *[10]uint32) { // eval out1 mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 = (eval arg1 * eval arg1) mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 // // Input Bounds: -// arg1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] +// arg1: [[0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3fffff0]] // Output Bounds: -// out1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x5fffff]] +// out1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] func Square(out1 *[10]uint32, arg1 *[10]uint32) { x1 := (arg1[8] * 0x2) x2 := (arg1[7] * 0x2) @@ -139,62 +139,62 @@ func Square(out1 *[10]uint32, arg1 *[10]uint32) { x11 := uint32((x10 >> 26)) x12 := (uint32(x10) & 0x3ffffff) x13 := (((uint64(x9) * uint64(arg1[7])) + ((uint64(x8) * uint64(arg1[6])) + ((uint64(x7) * uint64(arg1[5])) + (uint64(x6) * uint64(arg1[4]))))) + (uint64(x12) * uint64(0x3d10))) - x14 := uint32((x13 >> 26)) + x14 := (x13 >> 26) x15 := (uint32(x13) & 0x3ffffff) x16 := (uint64(x11) + (uint64(arg1[9]) * uint64(arg1[9]))) x17 := uint32((x16 >> 32)) x18 := (uint32(x16) & 0xffffffff) - x19 := ((uint64(x14) + (((uint64(x9) * uint64(arg1[8])) + ((uint64(x8) * uint64(arg1[7])) + ((uint64(x7) * uint64(arg1[6])) + ((uint64(x6) * uint64(arg1[5])) + (uint64(arg1[4]) * uint64(arg1[4])))))) + (uint64(x12) << 10))) + (uint64(x18) * uint64(0x3d10))) - x20 := uint32((x19 >> 26)) + x19 := ((x14 + (((uint64(x9) * uint64(arg1[8])) + ((uint64(x8) * uint64(arg1[7])) + ((uint64(x7) * uint64(arg1[6])) + ((uint64(x6) * uint64(arg1[5])) + (uint64(arg1[4]) * uint64(arg1[4])))))) + (uint64(x12) << 10))) + (uint64(x18) * uint64(0x3d10))) + x20 := (x19 >> 26) x21 := (uint32(x19) & 0x3ffffff) - x22 := ((uint64(x20) + (((uint64(x9) * uint64(arg1[9])) + ((uint64(x8) * uint64(arg1[8])) + ((uint64(x7) * uint64(arg1[7])) + ((uint64(x6) * uint64(arg1[6])) + (uint64(x5) * uint64(arg1[5])))))) + (uint64(x18) << 10))) + (uint64(x17) * uint64(0xf4400))) - x23 := uint32((x22 >> 26)) + x22 := ((x20 + (((uint64(x9) * uint64(arg1[9])) + ((uint64(x8) * uint64(arg1[8])) + ((uint64(x7) * uint64(arg1[7])) + ((uint64(x6) * uint64(arg1[6])) + (uint64(x5) * uint64(arg1[5])))))) + (uint64(x18) << 10))) + (uint64(x17) * uint64(0xf4400))) + x23 := (x22 >> 26) x24 := (uint32(x22) & 0x3ffffff) - x25 := (uint64(x23) + (((uint64(x8) * uint64(arg1[9])) + ((uint64(x7) * uint64(arg1[8])) + ((uint64(x6) * uint64(arg1[7])) + ((uint64(x5) * uint64(arg1[6])) + (uint64(arg1[5]) * uint64(arg1[5])))))) + uint64((x17 << 16)))) - x26 := uint32((x25 >> 26)) + x25 := (x23 + (((uint64(x8) * uint64(arg1[9])) + ((uint64(x7) * uint64(arg1[8])) + ((uint64(x6) * uint64(arg1[7])) + ((uint64(x5) * uint64(arg1[6])) + (uint64(arg1[5]) * uint64(arg1[5])))))) + (uint64(x17) << 16))) + x26 := (x25 >> 26) x27 := (uint32(x25) & 0x3ffffff) x28 := (x24 >> 22) x29 := (x24 & 0x3fffff) x30 := ((uint64(arg1[0]) * uint64(arg1[0])) + (uint64((x28 + (x27 << 4))) * uint64(0x3d1))) - x31 := uint32((x30 >> 26)) + x31 := (x30 >> 26) x32 := (uint32(x30) & 0x3ffffff) - x33 := (uint64(x26) + ((uint64(x7) * uint64(arg1[9])) + ((uint64(x6) * uint64(arg1[8])) + ((uint64(x5) * uint64(arg1[7])) + (uint64(x4) * uint64(arg1[6])))))) - x34 := uint32((x33 >> 26)) + x33 := (x26 + ((uint64(x7) * uint64(arg1[9])) + ((uint64(x6) * uint64(arg1[8])) + ((uint64(x5) * uint64(arg1[7])) + (uint64(x4) * uint64(arg1[6])))))) + x34 := (x33 >> 26) x35 := (uint32(x33) & 0x3ffffff) - x36 := ((uint64(x31) + ((uint64(x9) * uint64(arg1[1])) + (uint64((x28 + (x27 << 4))) << 6))) + (uint64(x35) * uint64(0x3d10))) - x37 := uint32((x36 >> 26)) + x36 := ((x31 + ((uint64(x9) * uint64(arg1[1])) + (uint64((x28 + (x27 << 4))) << 6))) + (uint64(x35) * uint64(0x3d10))) + x37 := (x36 >> 26) x38 := (uint32(x36) & 0x3ffffff) - x39 := (uint64(x34) + ((uint64(x6) * uint64(arg1[9])) + ((uint64(x5) * uint64(arg1[8])) + ((uint64(x4) * uint64(arg1[7])) + (uint64(arg1[6]) * uint64(arg1[6])))))) - x40 := uint32((x39 >> 26)) + x39 := (x34 + ((uint64(x6) * uint64(arg1[9])) + ((uint64(x5) * uint64(arg1[8])) + ((uint64(x4) * uint64(arg1[7])) + (uint64(arg1[6]) * uint64(arg1[6])))))) + x40 := (x39 >> 26) x41 := (uint32(x39) & 0x3ffffff) - x42 := ((uint64(x37) + (((uint64(x9) * uint64(arg1[2])) + (uint64(arg1[1]) * uint64(arg1[1]))) + (uint64(x35) << 10))) + (uint64(x41) * uint64(0x3d10))) - x43 := uint32((x42 >> 26)) + x42 := ((x37 + (((uint64(x9) * uint64(arg1[2])) + (uint64(arg1[1]) * uint64(arg1[1]))) + (uint64(x35) << 10))) + (uint64(x41) * uint64(0x3d10))) + x43 := (x42 >> 26) x44 := (uint32(x42) & 0x3ffffff) - x45 := (uint64(x40) + ((uint64(x5) * uint64(arg1[9])) + ((uint64(x4) * uint64(arg1[8])) + (uint64(x3) * uint64(arg1[7]))))) - x46 := uint32((x45 >> 26)) + x45 := (x40 + ((uint64(x5) * uint64(arg1[9])) + ((uint64(x4) * uint64(arg1[8])) + (uint64(x3) * uint64(arg1[7]))))) + x46 := (x45 >> 26) x47 := (uint32(x45) & 0x3ffffff) - x48 := ((uint64(x43) + (((uint64(x9) * uint64(arg1[3])) + (uint64(x8) * uint64(arg1[2]))) + (uint64(x41) << 10))) + (uint64(x47) * uint64(0x3d10))) - x49 := uint32((x48 >> 26)) + x48 := ((x43 + (((uint64(x9) * uint64(arg1[3])) + (uint64(x8) * uint64(arg1[2]))) + (uint64(x41) << 10))) + (uint64(x47) * uint64(0x3d10))) + x49 := (x48 >> 26) x50 := (uint32(x48) & 0x3ffffff) - x51 := (uint64(x46) + ((uint64(x4) * uint64(arg1[9])) + ((uint64(x3) * uint64(arg1[8])) + (uint64(arg1[7]) * uint64(arg1[7]))))) - x52 := uint32((x51 >> 26)) + x51 := (x46 + ((uint64(x4) * uint64(arg1[9])) + ((uint64(x3) * uint64(arg1[8])) + (uint64(arg1[7]) * uint64(arg1[7]))))) + x52 := (x51 >> 26) x53 := (uint32(x51) & 0x3ffffff) - x54 := ((uint64(x49) + (((uint64(x9) * uint64(arg1[4])) + ((uint64(x8) * uint64(arg1[3])) + (uint64(arg1[2]) * uint64(arg1[2])))) + (uint64(x47) << 10))) + (uint64(x53) * uint64(0x3d10))) - x55 := uint32((x54 >> 26)) + x54 := ((x49 + (((uint64(x9) * uint64(arg1[4])) + ((uint64(x8) * uint64(arg1[3])) + (uint64(arg1[2]) * uint64(arg1[2])))) + (uint64(x47) << 10))) + (uint64(x53) * uint64(0x3d10))) + x55 := (x54 >> 26) x56 := (uint32(x54) & 0x3ffffff) - x57 := (uint64(x52) + ((uint64(x3) * uint64(arg1[9])) + (uint64(x2) * uint64(arg1[8])))) - x58 := uint32((x57 >> 26)) + x57 := (x52 + ((uint64(x3) * uint64(arg1[9])) + (uint64(x2) * uint64(arg1[8])))) + x58 := (x57 >> 26) x59 := (uint32(x57) & 0x3ffffff) - x60 := ((uint64(x55) + (((uint64(x9) * uint64(arg1[5])) + ((uint64(x8) * uint64(arg1[4])) + (uint64(x7) * uint64(arg1[3])))) + (uint64(x53) << 10))) + (uint64(x59) * uint64(0x3d10))) - x61 := uint32((x60 >> 26)) + x60 := ((x55 + (((uint64(x9) * uint64(arg1[5])) + ((uint64(x8) * uint64(arg1[4])) + (uint64(x7) * uint64(arg1[3])))) + (uint64(x53) << 10))) + (uint64(x59) * uint64(0x3d10))) + x61 := (x60 >> 26) x62 := (uint32(x60) & 0x3ffffff) - x63 := (uint64(x58) + ((uint64(x2) * uint64(arg1[9])) + (uint64(arg1[8]) * uint64(arg1[8])))) + x63 := (x58 + ((uint64(x2) * uint64(arg1[9])) + (uint64(arg1[8]) * uint64(arg1[8])))) x64 := uint32((x63 >> 32)) x65 := (uint32(x63) & 0xffffffff) - x66 := ((uint64(x61) + (((uint64(x9) * uint64(arg1[6])) + ((uint64(x8) * uint64(arg1[5])) + ((uint64(x7) * uint64(arg1[4])) + (uint64(arg1[3]) * uint64(arg1[3]))))) + (uint64(x59) << 10))) + (uint64(x65) * uint64(0x3d10))) - x67 := uint32((x66 >> 26)) + x66 := ((x61 + (((uint64(x9) * uint64(arg1[6])) + ((uint64(x8) * uint64(arg1[5])) + ((uint64(x7) * uint64(arg1[4])) + (uint64(arg1[3]) * uint64(arg1[3]))))) + (uint64(x59) << 10))) + (uint64(x65) * uint64(0x3d10))) + x67 := (x66 >> 26) x68 := (uint32(x66) & 0x3ffffff) - x69 := ((uint64(x67) + (uint64(x15) + (uint64(x65) << 10))) + (uint64(x64) * uint64(0xf4400))) + x69 := ((x67 + (uint64(x15) + (uint64(x65) << 10))) + (uint64(x64) * uint64(0xf4400))) x70 := uint32((x69 >> 26)) x71 := (uint32(x69) & 0x3ffffff) x72 := (uint64(x70) + (uint64(x21) + (uint64(x64) << 16))) diff --git a/fiat-go/64/secp256k1dettman/secp256k1dettman.go b/fiat-go/64/secp256k1dettman/secp256k1dettman.go index 5e9d016dd5..7414525c1b 100644 --- a/fiat-go/64/secp256k1dettman/secp256k1dettman.go +++ b/fiat-go/64/secp256k1dettman/secp256k1dettman.go @@ -38,10 +38,10 @@ type int1 int64 // We use uint64 instead of a more narrow type for performance r // eval out1 mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 = (eval arg1 * eval arg2) mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 // // Input Bounds: -// arg1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] -// arg2: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] +// arg1: [[0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xffffffffffff0]] +// arg2: [[0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xffffffffffff0]] // Output Bounds: -// out1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x17fffffffffff]] +// out1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] func Mul(out1 *[5]uint64, arg1 *[5]uint64, arg2 *[5]uint64) { var x1 uint64 var x2 uint64 @@ -301,9 +301,9 @@ func Mul(out1 *[5]uint64, arg1 *[5]uint64, arg2 *[5]uint64) { // eval out1 mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 = (eval arg1 * eval arg1) mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 // // Input Bounds: -// arg1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] +// arg1: [[0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xffffffffffff0]] // Output Bounds: -// out1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x17fffffffffff]] +// out1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] func Square(out1 *[5]uint64, arg1 *[5]uint64) { x1 := (arg1[3] * 0x2) x2 := (arg1[2] * 0x2) diff --git a/fiat-java/src/FiatSecp256K1Dettman.java b/fiat-java/src/FiatSecp256K1Dettman.java index 993b1c81c2..4df4733823 100644 --- a/fiat-java/src/FiatSecp256K1Dettman.java +++ b/fiat-java/src/FiatSecp256K1Dettman.java @@ -32,72 +32,72 @@ static class Box { * eval out1 mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 = (eval arg1 * eval arg2) mod 115792089237316195423570985008687907853269984665640564039457584007908834671663

*

* Input Bounds:

- * arg1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]]

- * arg2: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]]

+ * arg1: [[0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3fffff0]]

+ * arg2: [[0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3fffff0]]

* Output Bounds:

- * out1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x5fffff]]

+ * out1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]]

*/ public static void fiat_Secp256K1Dettman_mul(int[] out1, final int[] arg1, final int[] arg2) { long x1 = (((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[9]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[8]))).intValue()))); int x2 = (int) Integer.toUnsignedLong(((Number) ((x1 >>> 26))).intValue()); int x3 = ((int) Integer.toUnsignedLong(((Number) (x1)).intValue()) & 0x3ffffff); long x4 = ((((long) Integer.toUnsignedLong(((Number) ((arg1[0]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[6]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[5]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[4]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[3]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[2]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[1]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[0]))).intValue()))))))))) + ((long) Integer.toUnsignedLong(((Number) (x3)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); - int x5 = (int) Integer.toUnsignedLong(((Number) ((x4 >>> 26))).intValue()); + long x5 = (x4 >>> 26); int x6 = ((int) Integer.toUnsignedLong(((Number) (x4)).intValue()) & 0x3ffffff); long x7 = ((long) Integer.toUnsignedLong(((Number) (x2)).intValue()) + ((long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[9]))).intValue()))); int x8 = (int) Integer.toUnsignedLong(((Number) ((x7 >>> 32))).intValue()); int x9 = ((int) Integer.toUnsignedLong(((Number) (x7)).intValue()) & 0xffffffff); - long x10 = (((long) Integer.toUnsignedLong(((Number) (x5)).intValue()) + ((((long) Integer.toUnsignedLong(((Number) ((arg1[0]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[6]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[5]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[4]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[3]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[2]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[1]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[0]))).intValue())))))))))) + ((long) Integer.toUnsignedLong(((Number) (x3)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); - int x11 = (int) Integer.toUnsignedLong(((Number) ((x10 >>> 26))).intValue()); + long x10 = ((x5 + ((((long) Integer.toUnsignedLong(((Number) ((arg1[0]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[6]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[5]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[4]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[3]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[2]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[1]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[0]))).intValue())))))))))) + ((long) Integer.toUnsignedLong(((Number) (x3)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); + long x11 = (x10 >>> 26); int x12 = ((int) Integer.toUnsignedLong(((Number) (x10)).intValue()) & 0x3ffffff); - long x13 = (((long) Integer.toUnsignedLong(((Number) (x11)).intValue()) + ((((long) Integer.toUnsignedLong(((Number) ((arg1[0]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[6]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[5]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[4]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[3]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[2]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[1]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[0]))).intValue()))))))))))) + ((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x8)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0xf4400)).intValue()))); - int x14 = (int) Integer.toUnsignedLong(((Number) ((x13 >>> 26))).intValue()); + long x13 = ((x11 + ((((long) Integer.toUnsignedLong(((Number) ((arg1[0]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[6]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[5]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[4]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[3]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[2]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[1]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[0]))).intValue()))))))))))) + ((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x8)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0xf4400)).intValue()))); + long x14 = (x13 >>> 26); int x15 = ((int) Integer.toUnsignedLong(((Number) (x13)).intValue()) & 0x3ffffff); - long x16 = ((long) Integer.toUnsignedLong(((Number) (x14)).intValue()) + ((((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[6]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[5]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[4]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[3]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[2]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[1]))).intValue())))))))))) + (long) Integer.toUnsignedLong(((Number) ((x8 << 16))).intValue()))); - int x17 = (int) Integer.toUnsignedLong(((Number) ((x16 >>> 26))).intValue()); + long x16 = (x14 + ((((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[6]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[5]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[4]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[3]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[2]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[1]))).intValue())))))))))) + ((long) Integer.toUnsignedLong(((Number) (x8)).intValue()) << 16))); + long x17 = (x16 >>> 26); int x18 = ((int) Integer.toUnsignedLong(((Number) (x16)).intValue()) & 0x3ffffff); int x19 = (x15 >>> 22); int x20 = (x15 & 0x3fffff); long x21 = (((long) Integer.toUnsignedLong(((Number) ((arg1[0]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[0]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((x19 + (x18 << 4)))).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d1)).intValue()))); - int x22 = (int) Integer.toUnsignedLong(((Number) ((x21 >>> 26))).intValue()); + long x22 = (x21 >>> 26); int x23 = ((int) Integer.toUnsignedLong(((Number) (x21)).intValue()) & 0x3ffffff); - long x24 = ((long) Integer.toUnsignedLong(((Number) (x17)).intValue()) + (((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[6]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[5]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[4]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[3]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[2]))).intValue())))))))))); - int x25 = (int) Integer.toUnsignedLong(((Number) ((x24 >>> 26))).intValue()); + long x24 = (x17 + (((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[6]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[5]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[4]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[3]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[2]))).intValue())))))))))); + long x25 = (x24 >>> 26); int x26 = ((int) Integer.toUnsignedLong(((Number) (x24)).intValue()) & 0x3ffffff); - long x27 = (((long) Integer.toUnsignedLong(((Number) (x22)).intValue()) + ((((long) Integer.toUnsignedLong(((Number) ((arg1[0]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[1]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[0]))).intValue()))) + ((long) Integer.toUnsignedLong(((Number) ((x19 + (x18 << 4)))).intValue()) << 6))) + ((long) Integer.toUnsignedLong(((Number) (x26)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); - int x28 = (int) Integer.toUnsignedLong(((Number) ((x27 >>> 26))).intValue()); + long x27 = ((x22 + ((((long) Integer.toUnsignedLong(((Number) ((arg1[0]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[1]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[0]))).intValue()))) + ((long) Integer.toUnsignedLong(((Number) ((x19 + (x18 << 4)))).intValue()) << 6))) + ((long) Integer.toUnsignedLong(((Number) (x26)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); + long x28 = (x27 >>> 26); int x29 = ((int) Integer.toUnsignedLong(((Number) (x27)).intValue()) & 0x3ffffff); - long x30 = ((long) Integer.toUnsignedLong(((Number) (x25)).intValue()) + (((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[6]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[5]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[4]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[3]))).intValue()))))))))); - int x31 = (int) Integer.toUnsignedLong(((Number) ((x30 >>> 26))).intValue()); + long x30 = (x25 + (((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[6]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[5]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[4]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[3]))).intValue()))))))))); + long x31 = (x30 >>> 26); int x32 = ((int) Integer.toUnsignedLong(((Number) (x30)).intValue()) & 0x3ffffff); - long x33 = (((long) Integer.toUnsignedLong(((Number) (x28)).intValue()) + ((((long) Integer.toUnsignedLong(((Number) ((arg1[0]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[2]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[1]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[0]))).intValue())))) + ((long) Integer.toUnsignedLong(((Number) (x26)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x32)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); - int x34 = (int) Integer.toUnsignedLong(((Number) ((x33 >>> 26))).intValue()); + long x33 = ((x28 + ((((long) Integer.toUnsignedLong(((Number) ((arg1[0]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[2]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[1]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[0]))).intValue())))) + ((long) Integer.toUnsignedLong(((Number) (x26)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x32)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); + long x34 = (x33 >>> 26); int x35 = ((int) Integer.toUnsignedLong(((Number) (x33)).intValue()) & 0x3ffffff); - long x36 = ((long) Integer.toUnsignedLong(((Number) (x31)).intValue()) + (((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[6]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[5]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[4]))).intValue())))))))); - int x37 = (int) Integer.toUnsignedLong(((Number) ((x36 >>> 26))).intValue()); + long x36 = (x31 + (((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[6]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[5]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[4]))).intValue())))))))); + long x37 = (x36 >>> 26); int x38 = ((int) Integer.toUnsignedLong(((Number) (x36)).intValue()) & 0x3ffffff); - long x39 = (((long) Integer.toUnsignedLong(((Number) (x34)).intValue()) + ((((long) Integer.toUnsignedLong(((Number) ((arg1[0]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[3]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[2]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[1]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[0]))).intValue()))))) + ((long) Integer.toUnsignedLong(((Number) (x32)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x38)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); - int x40 = (int) Integer.toUnsignedLong(((Number) ((x39 >>> 26))).intValue()); + long x39 = ((x34 + ((((long) Integer.toUnsignedLong(((Number) ((arg1[0]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[3]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[2]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[1]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[0]))).intValue()))))) + ((long) Integer.toUnsignedLong(((Number) (x32)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x38)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); + long x40 = (x39 >>> 26); int x41 = ((int) Integer.toUnsignedLong(((Number) (x39)).intValue()) & 0x3ffffff); - long x42 = ((long) Integer.toUnsignedLong(((Number) (x37)).intValue()) + (((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[6]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[5]))).intValue()))))))); - int x43 = (int) Integer.toUnsignedLong(((Number) ((x42 >>> 26))).intValue()); + long x42 = (x37 + (((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[6]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[5]))).intValue()))))))); + long x43 = (x42 >>> 26); int x44 = ((int) Integer.toUnsignedLong(((Number) (x42)).intValue()) & 0x3ffffff); - long x45 = (((long) Integer.toUnsignedLong(((Number) (x40)).intValue()) + ((((long) Integer.toUnsignedLong(((Number) ((arg1[0]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[4]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[3]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[2]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[1]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[0]))).intValue())))))) + ((long) Integer.toUnsignedLong(((Number) (x38)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x44)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); - int x46 = (int) Integer.toUnsignedLong(((Number) ((x45 >>> 26))).intValue()); + long x45 = ((x40 + ((((long) Integer.toUnsignedLong(((Number) ((arg1[0]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[4]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[3]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[2]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[1]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[0]))).intValue())))))) + ((long) Integer.toUnsignedLong(((Number) (x38)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x44)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); + long x46 = (x45 >>> 26); int x47 = ((int) Integer.toUnsignedLong(((Number) (x45)).intValue()) & 0x3ffffff); - long x48 = ((long) Integer.toUnsignedLong(((Number) (x43)).intValue()) + (((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[7]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[6]))).intValue())))))); - int x49 = (int) Integer.toUnsignedLong(((Number) ((x48 >>> 26))).intValue()); + long x48 = (x43 + (((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[7]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[6]))).intValue())))))); + long x49 = (x48 >>> 26); int x50 = ((int) Integer.toUnsignedLong(((Number) (x48)).intValue()) & 0x3ffffff); - long x51 = (((long) Integer.toUnsignedLong(((Number) (x46)).intValue()) + ((((long) Integer.toUnsignedLong(((Number) ((arg1[0]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[5]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[4]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[3]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[2]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[1]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[0]))).intValue()))))))) + ((long) Integer.toUnsignedLong(((Number) (x44)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x50)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); - int x52 = (int) Integer.toUnsignedLong(((Number) ((x51 >>> 26))).intValue()); + long x51 = ((x46 + ((((long) Integer.toUnsignedLong(((Number) ((arg1[0]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[5]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[4]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[3]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[2]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[1]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[0]))).intValue()))))))) + ((long) Integer.toUnsignedLong(((Number) (x44)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x50)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); + long x52 = (x51 >>> 26); int x53 = ((int) Integer.toUnsignedLong(((Number) (x51)).intValue()) & 0x3ffffff); - long x54 = ((long) Integer.toUnsignedLong(((Number) (x49)).intValue()) + (((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[8]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[7]))).intValue()))))); + long x54 = (x49 + (((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[8]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[7]))).intValue()))))); int x55 = (int) Integer.toUnsignedLong(((Number) ((x54 >>> 32))).intValue()); int x56 = ((int) Integer.toUnsignedLong(((Number) (x54)).intValue()) & 0xffffffff); - long x57 = (((long) Integer.toUnsignedLong(((Number) (x52)).intValue()) + ((((long) Integer.toUnsignedLong(((Number) ((arg1[0]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[6]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[5]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[4]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[3]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[2]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[1]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[0]))).intValue())))))))) + ((long) Integer.toUnsignedLong(((Number) (x50)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x56)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); - int x58 = (int) Integer.toUnsignedLong(((Number) ((x57 >>> 26))).intValue()); + long x57 = ((x52 + ((((long) Integer.toUnsignedLong(((Number) ((arg1[0]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[6]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[5]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[4]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[3]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[2]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[1]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg2[0]))).intValue())))))))) + ((long) Integer.toUnsignedLong(((Number) (x50)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x56)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); + long x58 = (x57 >>> 26); int x59 = ((int) Integer.toUnsignedLong(((Number) (x57)).intValue()) & 0x3ffffff); - long x60 = (((long) Integer.toUnsignedLong(((Number) (x58)).intValue()) + ((long) Integer.toUnsignedLong(((Number) (x6)).intValue()) + ((long) Integer.toUnsignedLong(((Number) (x56)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x55)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0xf4400)).intValue()))); + long x60 = ((x58 + ((long) Integer.toUnsignedLong(((Number) (x6)).intValue()) + ((long) Integer.toUnsignedLong(((Number) (x56)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x55)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0xf4400)).intValue()))); int x61 = (int) Integer.toUnsignedLong(((Number) ((x60 >>> 26))).intValue()); int x62 = ((int) Integer.toUnsignedLong(((Number) (x60)).intValue()) & 0x3ffffff); long x63 = ((long) Integer.toUnsignedLong(((Number) (x61)).intValue()) + ((long) Integer.toUnsignedLong(((Number) (x12)).intValue()) + ((long) Integer.toUnsignedLong(((Number) (x55)).intValue()) << 16))); @@ -123,9 +123,9 @@ public static void fiat_Secp256K1Dettman_mul(int[] out1, final int[] arg1, final * eval out1 mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 = (eval arg1 * eval arg1) mod 115792089237316195423570985008687907853269984665640564039457584007908834671663

*

* Input Bounds:

- * arg1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]]

+ * arg1: [[0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3fffff0]]

* Output Bounds:

- * out1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x5fffff]]

+ * out1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]]

*/ public static void fiat_Secp256K1Dettman_square(int[] out1, final int[] arg1) { int x1 = ((arg1[8]) * 0x2); @@ -141,62 +141,62 @@ public static void fiat_Secp256K1Dettman_square(int[] out1, final int[] arg1) { int x11 = (int) Integer.toUnsignedLong(((Number) ((x10 >>> 26))).intValue()); int x12 = ((int) Integer.toUnsignedLong(((Number) (x10)).intValue()) & 0x3ffffff); long x13 = ((((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x8)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x7)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) (x6)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()))))) + ((long) Integer.toUnsignedLong(((Number) (x12)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); - int x14 = (int) Integer.toUnsignedLong(((Number) ((x13 >>> 26))).intValue()); + long x14 = (x13 >>> 26); int x15 = ((int) Integer.toUnsignedLong(((Number) (x13)).intValue()) & 0x3ffffff); long x16 = ((long) Integer.toUnsignedLong(((Number) (x11)).intValue()) + ((long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue()))); int x17 = (int) Integer.toUnsignedLong(((Number) ((x16 >>> 32))).intValue()); int x18 = ((int) Integer.toUnsignedLong(((Number) (x16)).intValue()) & 0xffffffff); - long x19 = (((long) Integer.toUnsignedLong(((Number) (x14)).intValue()) + ((((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x8)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x7)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x6)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue())))))) + ((long) Integer.toUnsignedLong(((Number) (x12)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x18)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); - int x20 = (int) Integer.toUnsignedLong(((Number) ((x19 >>> 26))).intValue()); + long x19 = ((x14 + ((((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x8)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x7)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x6)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue())))))) + ((long) Integer.toUnsignedLong(((Number) (x12)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x18)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); + long x20 = (x19 >>> 26); int x21 = ((int) Integer.toUnsignedLong(((Number) (x19)).intValue()) & 0x3ffffff); - long x22 = (((long) Integer.toUnsignedLong(((Number) (x20)).intValue()) + ((((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x8)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x7)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x6)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) (x5)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue())))))) + ((long) Integer.toUnsignedLong(((Number) (x18)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x17)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0xf4400)).intValue()))); - int x23 = (int) Integer.toUnsignedLong(((Number) ((x22 >>> 26))).intValue()); + long x22 = ((x20 + ((((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x8)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x7)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x6)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) (x5)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue())))))) + ((long) Integer.toUnsignedLong(((Number) (x18)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x17)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0xf4400)).intValue()))); + long x23 = (x22 >>> 26); int x24 = ((int) Integer.toUnsignedLong(((Number) (x22)).intValue()) & 0x3ffffff); - long x25 = ((long) Integer.toUnsignedLong(((Number) (x23)).intValue()) + ((((long) Integer.toUnsignedLong(((Number) (x8)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x7)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x6)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x5)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue())))))) + (long) Integer.toUnsignedLong(((Number) ((x17 << 16))).intValue()))); - int x26 = (int) Integer.toUnsignedLong(((Number) ((x25 >>> 26))).intValue()); + long x25 = (x23 + ((((long) Integer.toUnsignedLong(((Number) (x8)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x7)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x6)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x5)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue())))))) + ((long) Integer.toUnsignedLong(((Number) (x17)).intValue()) << 16))); + long x26 = (x25 >>> 26); int x27 = ((int) Integer.toUnsignedLong(((Number) (x25)).intValue()) & 0x3ffffff); int x28 = (x24 >>> 22); int x29 = (x24 & 0x3fffff); long x30 = (((long) Integer.toUnsignedLong(((Number) ((arg1[0]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[0]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((x28 + (x27 << 4)))).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d1)).intValue()))); - int x31 = (int) Integer.toUnsignedLong(((Number) ((x30 >>> 26))).intValue()); + long x31 = (x30 >>> 26); int x32 = ((int) Integer.toUnsignedLong(((Number) (x30)).intValue()) & 0x3ffffff); - long x33 = ((long) Integer.toUnsignedLong(((Number) (x26)).intValue()) + (((long) Integer.toUnsignedLong(((Number) (x7)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x6)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x5)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) (x4)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue())))))); - int x34 = (int) Integer.toUnsignedLong(((Number) ((x33 >>> 26))).intValue()); + long x33 = (x26 + (((long) Integer.toUnsignedLong(((Number) (x7)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x6)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x5)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) (x4)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue())))))); + long x34 = (x33 >>> 26); int x35 = ((int) Integer.toUnsignedLong(((Number) (x33)).intValue()) & 0x3ffffff); - long x36 = (((long) Integer.toUnsignedLong(((Number) (x31)).intValue()) + (((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((x28 + (x27 << 4)))).intValue()) << 6))) + ((long) Integer.toUnsignedLong(((Number) (x35)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); - int x37 = (int) Integer.toUnsignedLong(((Number) ((x36 >>> 26))).intValue()); + long x36 = ((x31 + (((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((x28 + (x27 << 4)))).intValue()) << 6))) + ((long) Integer.toUnsignedLong(((Number) (x35)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); + long x37 = (x36 >>> 26); int x38 = ((int) Integer.toUnsignedLong(((Number) (x36)).intValue()) & 0x3ffffff); - long x39 = ((long) Integer.toUnsignedLong(((Number) (x34)).intValue()) + (((long) Integer.toUnsignedLong(((Number) (x6)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x5)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x4)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue())))))); - int x40 = (int) Integer.toUnsignedLong(((Number) ((x39 >>> 26))).intValue()); + long x39 = (x34 + (((long) Integer.toUnsignedLong(((Number) (x6)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x5)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x4)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue())))))); + long x40 = (x39 >>> 26); int x41 = ((int) Integer.toUnsignedLong(((Number) (x39)).intValue()) & 0x3ffffff); - long x42 = (((long) Integer.toUnsignedLong(((Number) (x37)).intValue()) + ((((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()))) + ((long) Integer.toUnsignedLong(((Number) (x35)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x41)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); - int x43 = (int) Integer.toUnsignedLong(((Number) ((x42 >>> 26))).intValue()); + long x42 = ((x37 + ((((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[1]))).intValue()))) + ((long) Integer.toUnsignedLong(((Number) (x35)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x41)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); + long x43 = (x42 >>> 26); int x44 = ((int) Integer.toUnsignedLong(((Number) (x42)).intValue()) & 0x3ffffff); - long x45 = ((long) Integer.toUnsignedLong(((Number) (x40)).intValue()) + (((long) Integer.toUnsignedLong(((Number) (x5)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x4)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) (x3)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()))))); - int x46 = (int) Integer.toUnsignedLong(((Number) ((x45 >>> 26))).intValue()); + long x45 = (x40 + (((long) Integer.toUnsignedLong(((Number) (x5)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x4)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) (x3)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()))))); + long x46 = (x45 >>> 26); int x47 = ((int) Integer.toUnsignedLong(((Number) (x45)).intValue()) & 0x3ffffff); - long x48 = (((long) Integer.toUnsignedLong(((Number) (x43)).intValue()) + ((((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) (x8)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()))) + ((long) Integer.toUnsignedLong(((Number) (x41)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x47)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); - int x49 = (int) Integer.toUnsignedLong(((Number) ((x48 >>> 26))).intValue()); + long x48 = ((x43 + ((((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) (x8)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()))) + ((long) Integer.toUnsignedLong(((Number) (x41)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x47)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); + long x49 = (x48 >>> 26); int x50 = ((int) Integer.toUnsignedLong(((Number) (x48)).intValue()) & 0x3ffffff); - long x51 = ((long) Integer.toUnsignedLong(((Number) (x46)).intValue()) + (((long) Integer.toUnsignedLong(((Number) (x4)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x3)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()))))); - int x52 = (int) Integer.toUnsignedLong(((Number) ((x51 >>> 26))).intValue()); + long x51 = (x46 + (((long) Integer.toUnsignedLong(((Number) (x4)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x3)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[7]))).intValue()))))); + long x52 = (x51 >>> 26); int x53 = ((int) Integer.toUnsignedLong(((Number) (x51)).intValue()) & 0x3ffffff); - long x54 = (((long) Integer.toUnsignedLong(((Number) (x49)).intValue()) + ((((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x8)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue())))) + ((long) Integer.toUnsignedLong(((Number) (x47)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x53)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); - int x55 = (int) Integer.toUnsignedLong(((Number) ((x54 >>> 26))).intValue()); + long x54 = ((x49 + ((((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x8)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[2]))).intValue())))) + ((long) Integer.toUnsignedLong(((Number) (x47)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x53)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); + long x55 = (x54 >>> 26); int x56 = ((int) Integer.toUnsignedLong(((Number) (x54)).intValue()) & 0x3ffffff); - long x57 = ((long) Integer.toUnsignedLong(((Number) (x52)).intValue()) + (((long) Integer.toUnsignedLong(((Number) (x3)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) (x2)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue())))); - int x58 = (int) Integer.toUnsignedLong(((Number) ((x57 >>> 26))).intValue()); + long x57 = (x52 + (((long) Integer.toUnsignedLong(((Number) (x3)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) (x2)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue())))); + long x58 = (x57 >>> 26); int x59 = ((int) Integer.toUnsignedLong(((Number) (x57)).intValue()) & 0x3ffffff); - long x60 = (((long) Integer.toUnsignedLong(((Number) (x55)).intValue()) + ((((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x8)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) (x7)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue())))) + ((long) Integer.toUnsignedLong(((Number) (x53)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x59)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); - int x61 = (int) Integer.toUnsignedLong(((Number) ((x60 >>> 26))).intValue()); + long x60 = ((x55 + ((((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x8)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) (x7)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue())))) + ((long) Integer.toUnsignedLong(((Number) (x53)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x59)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); + long x61 = (x60 >>> 26); int x62 = ((int) Integer.toUnsignedLong(((Number) (x60)).intValue()) & 0x3ffffff); - long x63 = ((long) Integer.toUnsignedLong(((Number) (x58)).intValue()) + (((long) Integer.toUnsignedLong(((Number) (x2)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue())))); + long x63 = (x58 + (((long) Integer.toUnsignedLong(((Number) (x2)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[9]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[8]))).intValue())))); int x64 = (int) Integer.toUnsignedLong(((Number) ((x63 >>> 32))).intValue()); int x65 = ((int) Integer.toUnsignedLong(((Number) (x63)).intValue()) & 0xffffffff); - long x66 = (((long) Integer.toUnsignedLong(((Number) (x61)).intValue()) + ((((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x8)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x7)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()))))) + ((long) Integer.toUnsignedLong(((Number) (x59)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x65)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); - int x67 = (int) Integer.toUnsignedLong(((Number) ((x66 >>> 26))).intValue()); + long x66 = ((x61 + ((((long) Integer.toUnsignedLong(((Number) (x9)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[6]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x8)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[5]))).intValue())) + (((long) Integer.toUnsignedLong(((Number) (x7)).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[4]))).intValue())) + ((long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()) * (long) Integer.toUnsignedLong(((Number) ((arg1[3]))).intValue()))))) + ((long) Integer.toUnsignedLong(((Number) (x59)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x65)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0x3d10)).intValue()))); + long x67 = (x66 >>> 26); int x68 = ((int) Integer.toUnsignedLong(((Number) (x66)).intValue()) & 0x3ffffff); - long x69 = (((long) Integer.toUnsignedLong(((Number) (x67)).intValue()) + ((long) Integer.toUnsignedLong(((Number) (x15)).intValue()) + ((long) Integer.toUnsignedLong(((Number) (x65)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x64)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0xf4400)).intValue()))); + long x69 = ((x67 + ((long) Integer.toUnsignedLong(((Number) (x15)).intValue()) + ((long) Integer.toUnsignedLong(((Number) (x65)).intValue()) << 10))) + ((long) Integer.toUnsignedLong(((Number) (x64)).intValue()) * (long) Integer.toUnsignedLong(((Number) (0xf4400)).intValue()))); int x70 = (int) Integer.toUnsignedLong(((Number) ((x69 >>> 26))).intValue()); int x71 = ((int) Integer.toUnsignedLong(((Number) (x69)).intValue()) & 0x3ffffff); long x72 = ((long) Integer.toUnsignedLong(((Number) (x70)).intValue()) + ((long) Integer.toUnsignedLong(((Number) (x21)).intValue()) + ((long) Integer.toUnsignedLong(((Number) (x64)).intValue()) << 16))); diff --git a/fiat-json/src/secp256k1_dettman_32.json b/fiat-json/src/secp256k1_dettman_32.json index 0d7173b189..a340f45c43 100644 --- a/fiat-json/src/secp256k1_dettman_32.json +++ b/fiat-json/src/secp256k1_dettman_32.json @@ -18,16 +18,16 @@ "0x0" ], "ubound": [ - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7ffffe" + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3fffff0" ] }, { @@ -46,16 +46,16 @@ "0x0" ], "ubound": [ - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7ffffe" + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3fffff0" ] } ], @@ -85,7 +85,7 @@ "0x7fffffe", "0x7fffffe", "0x7fffffe", - "0x5fffff" + "0x7ffffe" ] } ], @@ -594,14 +594,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x5" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -770,7 +770,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -1228,14 +1228,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x11" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -1300,7 +1300,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -1802,14 +1802,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x14" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -1864,7 +1864,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -2264,12 +2264,12 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "<<", "arguments": [ @@ -2295,14 +2295,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x17" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -2501,14 +2501,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x22" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -2563,7 +2563,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -2913,14 +2913,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x25" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -2985,7 +2985,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -3172,14 +3172,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x28" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -3234,7 +3234,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -3540,14 +3540,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x31" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -3612,7 +3612,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -3806,14 +3806,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x34" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -3868,7 +3868,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -4130,14 +4130,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x37" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -4202,7 +4202,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -4440,14 +4440,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x40" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -4502,7 +4502,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -4720,14 +4720,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x43" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -4792,7 +4792,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -5074,14 +5074,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x46" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -5136,7 +5136,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -5310,14 +5310,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x49" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -5382,7 +5382,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -5708,14 +5708,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x52" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -5770,7 +5770,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -5972,7 +5972,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -6342,14 +6342,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x58" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -6414,7 +6414,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -6819,16 +6819,16 @@ "0x0" ], "ubound": [ - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7fffffe", - "0x7ffffe" + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3ffffff0", + "0x3fffff0" ] } ], @@ -6858,7 +6858,7 @@ "0x7fffffe", "0x7fffffe", "0x7fffffe", - "0x5fffff" + "0x7ffffe" ] } ], @@ -7372,14 +7372,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x14" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -7548,7 +7548,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -7830,14 +7830,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x20" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -7902,7 +7902,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -8184,14 +8184,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x23" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -8246,7 +8246,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -8470,12 +8470,12 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "<<", "arguments": [ @@ -8501,14 +8501,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x26" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -8707,14 +8707,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x31" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -8769,7 +8769,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -8943,14 +8943,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x34" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -9015,7 +9015,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -9158,14 +9158,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x37" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -9220,7 +9220,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -9394,14 +9394,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x40" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -9466,7 +9466,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -9616,14 +9616,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x43" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -9678,7 +9678,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -9808,14 +9808,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x46" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -9880,7 +9880,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -10030,14 +10030,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x49" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -10092,7 +10092,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -10222,14 +10222,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x52" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -10294,7 +10294,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -10488,14 +10488,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x55" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -10550,7 +10550,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -10636,14 +10636,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x58" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -10708,7 +10708,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -10902,14 +10902,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x61" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -10964,7 +10964,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -11122,7 +11122,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ @@ -11360,14 +11360,14 @@ ] }, { - "datatype": "u32", + "datatype": "u64", "name": [ "x67" ], "operation": "static_cast", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": ">>", "arguments": [ @@ -11432,7 +11432,7 @@ "operation": "+", "arguments": [ { - "datatype": "u32", + "datatype": "u64", "name": [], "operation": "static_cast", "arguments": [ diff --git a/fiat-json/src/secp256k1_dettman_64.json b/fiat-json/src/secp256k1_dettman_64.json index c4cb9df1cd..f15ee11052 100644 --- a/fiat-json/src/secp256k1_dettman_64.json +++ b/fiat-json/src/secp256k1_dettman_64.json @@ -13,11 +13,11 @@ "0x0" ], "ubound": [ - "0x1ffffffffffffe", - "0x1ffffffffffffe", - "0x1ffffffffffffe", - "0x1ffffffffffffe", - "0x1fffffffffffe" + "0xfffffffffffff0", + "0xfffffffffffff0", + "0xfffffffffffff0", + "0xfffffffffffff0", + "0xffffffffffff0" ] }, { @@ -31,11 +31,11 @@ "0x0" ], "ubound": [ - "0x1ffffffffffffe", - "0x1ffffffffffffe", - "0x1ffffffffffffe", - "0x1ffffffffffffe", - "0x1fffffffffffe" + "0xfffffffffffff0", + "0xfffffffffffff0", + "0xfffffffffffff0", + "0xfffffffffffff0", + "0xffffffffffff0" ] } ], @@ -55,7 +55,7 @@ "0x1ffffffffffffe", "0x1ffffffffffffe", "0x1ffffffffffffe", - "0x17fffffffffff" + "0x1fffffffffffe" ] } ], @@ -2123,11 +2123,11 @@ "0x0" ], "ubound": [ - "0x1ffffffffffffe", - "0x1ffffffffffffe", - "0x1ffffffffffffe", - "0x1ffffffffffffe", - "0x1fffffffffffe" + "0xfffffffffffff0", + "0xfffffffffffff0", + "0xfffffffffffff0", + "0xfffffffffffff0", + "0xffffffffffff0" ] } ], @@ -2147,7 +2147,7 @@ "0x1ffffffffffffe", "0x1ffffffffffffe", "0x1ffffffffffffe", - "0x17fffffffffff" + "0x1fffffffffffe" ] } ], diff --git a/fiat-rust/src/secp256k1_dettman_32.rs b/fiat-rust/src/secp256k1_dettman_32.rs index 3386ed5208..0de0a1074d 100644 --- a/fiat-rust/src/secp256k1_dettman_32.rs +++ b/fiat-rust/src/secp256k1_dettman_32.rs @@ -23,72 +23,72 @@ /// eval out1 mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 = (eval arg1 * eval arg2) mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 /// /// Input Bounds: -/// arg1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] -/// arg2: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] +/// arg1: [[0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3fffff0]] +/// arg2: [[0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3fffff0]] /// Output Bounds: -/// out1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x5fffff]] +/// out1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] #[inline] pub fn fiat_secp256k1_dettman_mul(out1: &mut [u32; 10], arg1: &[u32; 10], arg2: &[u32; 10]) -> () { let x1: u64 = ((((arg1[8]) as u64) * ((arg2[9]) as u64)) + (((arg1[9]) as u64) * ((arg2[8]) as u64))); let x2: u32 = ((x1 >> 26) as u32); let x3: u32 = ((x1 & (0x3ffffff as u64)) as u32); let x4: u64 = (((((arg1[0]) as u64) * ((arg2[7]) as u64)) + ((((arg1[1]) as u64) * ((arg2[6]) as u64)) + ((((arg1[2]) as u64) * ((arg2[5]) as u64)) + ((((arg1[3]) as u64) * ((arg2[4]) as u64)) + ((((arg1[4]) as u64) * ((arg2[3]) as u64)) + ((((arg1[5]) as u64) * ((arg2[2]) as u64)) + ((((arg1[6]) as u64) * ((arg2[1]) as u64)) + (((arg1[7]) as u64) * ((arg2[0]) as u64))))))))) + ((x3 as u64) * (0x3d10 as u64))); - let x5: u32 = ((x4 >> 26) as u32); + let x5: u64 = (x4 >> 26); let x6: u32 = ((x4 & (0x3ffffff as u64)) as u32); let x7: u64 = ((x2 as u64) + (((arg1[9]) as u64) * ((arg2[9]) as u64))); let x8: u32 = ((x7 >> 32) as u32); let x9: u32 = ((x7 & (0xffffffff as u64)) as u32); - let x10: u64 = (((x5 as u64) + (((((arg1[0]) as u64) * ((arg2[8]) as u64)) + ((((arg1[1]) as u64) * ((arg2[7]) as u64)) + ((((arg1[2]) as u64) * ((arg2[6]) as u64)) + ((((arg1[3]) as u64) * ((arg2[5]) as u64)) + ((((arg1[4]) as u64) * ((arg2[4]) as u64)) + ((((arg1[5]) as u64) * ((arg2[3]) as u64)) + ((((arg1[6]) as u64) * ((arg2[2]) as u64)) + ((((arg1[7]) as u64) * ((arg2[1]) as u64)) + (((arg1[8]) as u64) * ((arg2[0]) as u64)))))))))) + ((x3 as u64) << 10))) + ((x9 as u64) * (0x3d10 as u64))); - let x11: u32 = ((x10 >> 26) as u32); + let x10: u64 = ((x5 + (((((arg1[0]) as u64) * ((arg2[8]) as u64)) + ((((arg1[1]) as u64) * ((arg2[7]) as u64)) + ((((arg1[2]) as u64) * ((arg2[6]) as u64)) + ((((arg1[3]) as u64) * ((arg2[5]) as u64)) + ((((arg1[4]) as u64) * ((arg2[4]) as u64)) + ((((arg1[5]) as u64) * ((arg2[3]) as u64)) + ((((arg1[6]) as u64) * ((arg2[2]) as u64)) + ((((arg1[7]) as u64) * ((arg2[1]) as u64)) + (((arg1[8]) as u64) * ((arg2[0]) as u64)))))))))) + ((x3 as u64) << 10))) + ((x9 as u64) * (0x3d10 as u64))); + let x11: u64 = (x10 >> 26); let x12: u32 = ((x10 & (0x3ffffff as u64)) as u32); - let x13: u64 = (((x11 as u64) + (((((arg1[0]) as u64) * ((arg2[9]) as u64)) + ((((arg1[1]) as u64) * ((arg2[8]) as u64)) + ((((arg1[2]) as u64) * ((arg2[7]) as u64)) + ((((arg1[3]) as u64) * ((arg2[6]) as u64)) + ((((arg1[4]) as u64) * ((arg2[5]) as u64)) + ((((arg1[5]) as u64) * ((arg2[4]) as u64)) + ((((arg1[6]) as u64) * ((arg2[3]) as u64)) + ((((arg1[7]) as u64) * ((arg2[2]) as u64)) + ((((arg1[8]) as u64) * ((arg2[1]) as u64)) + (((arg1[9]) as u64) * ((arg2[0]) as u64))))))))))) + ((x9 as u64) << 10))) + ((x8 as u64) * (0xf4400 as u64))); - let x14: u32 = ((x13 >> 26) as u32); + let x13: u64 = ((x11 + (((((arg1[0]) as u64) * ((arg2[9]) as u64)) + ((((arg1[1]) as u64) * ((arg2[8]) as u64)) + ((((arg1[2]) as u64) * ((arg2[7]) as u64)) + ((((arg1[3]) as u64) * ((arg2[6]) as u64)) + ((((arg1[4]) as u64) * ((arg2[5]) as u64)) + ((((arg1[5]) as u64) * ((arg2[4]) as u64)) + ((((arg1[6]) as u64) * ((arg2[3]) as u64)) + ((((arg1[7]) as u64) * ((arg2[2]) as u64)) + ((((arg1[8]) as u64) * ((arg2[1]) as u64)) + (((arg1[9]) as u64) * ((arg2[0]) as u64))))))))))) + ((x9 as u64) << 10))) + ((x8 as u64) * (0xf4400 as u64))); + let x14: u64 = (x13 >> 26); let x15: u32 = ((x13 & (0x3ffffff as u64)) as u32); - let x16: u64 = ((x14 as u64) + (((((arg1[1]) as u64) * ((arg2[9]) as u64)) + ((((arg1[2]) as u64) * ((arg2[8]) as u64)) + ((((arg1[3]) as u64) * ((arg2[7]) as u64)) + ((((arg1[4]) as u64) * ((arg2[6]) as u64)) + ((((arg1[5]) as u64) * ((arg2[5]) as u64)) + ((((arg1[6]) as u64) * ((arg2[4]) as u64)) + ((((arg1[7]) as u64) * ((arg2[3]) as u64)) + ((((arg1[8]) as u64) * ((arg2[2]) as u64)) + (((arg1[9]) as u64) * ((arg2[1]) as u64)))))))))) + ((x8 << 16) as u64))); - let x17: u32 = ((x16 >> 26) as u32); + let x16: u64 = (x14 + (((((arg1[1]) as u64) * ((arg2[9]) as u64)) + ((((arg1[2]) as u64) * ((arg2[8]) as u64)) + ((((arg1[3]) as u64) * ((arg2[7]) as u64)) + ((((arg1[4]) as u64) * ((arg2[6]) as u64)) + ((((arg1[5]) as u64) * ((arg2[5]) as u64)) + ((((arg1[6]) as u64) * ((arg2[4]) as u64)) + ((((arg1[7]) as u64) * ((arg2[3]) as u64)) + ((((arg1[8]) as u64) * ((arg2[2]) as u64)) + (((arg1[9]) as u64) * ((arg2[1]) as u64)))))))))) + ((x8 as u64) << 16))); + let x17: u64 = (x16 >> 26); let x18: u32 = ((x16 & (0x3ffffff as u64)) as u32); let x19: u32 = (x15 >> 22); let x20: u32 = (x15 & 0x3fffff); let x21: u64 = ((((arg1[0]) as u64) * ((arg2[0]) as u64)) + (((x19 + (x18 << 4)) as u64) * (0x3d1 as u64))); - let x22: u32 = ((x21 >> 26) as u32); + let x22: u64 = (x21 >> 26); let x23: u32 = ((x21 & (0x3ffffff as u64)) as u32); - let x24: u64 = ((x17 as u64) + ((((arg1[2]) as u64) * ((arg2[9]) as u64)) + ((((arg1[3]) as u64) * ((arg2[8]) as u64)) + ((((arg1[4]) as u64) * ((arg2[7]) as u64)) + ((((arg1[5]) as u64) * ((arg2[6]) as u64)) + ((((arg1[6]) as u64) * ((arg2[5]) as u64)) + ((((arg1[7]) as u64) * ((arg2[4]) as u64)) + ((((arg1[8]) as u64) * ((arg2[3]) as u64)) + (((arg1[9]) as u64) * ((arg2[2]) as u64)))))))))); - let x25: u32 = ((x24 >> 26) as u32); + let x24: u64 = (x17 + ((((arg1[2]) as u64) * ((arg2[9]) as u64)) + ((((arg1[3]) as u64) * ((arg2[8]) as u64)) + ((((arg1[4]) as u64) * ((arg2[7]) as u64)) + ((((arg1[5]) as u64) * ((arg2[6]) as u64)) + ((((arg1[6]) as u64) * ((arg2[5]) as u64)) + ((((arg1[7]) as u64) * ((arg2[4]) as u64)) + ((((arg1[8]) as u64) * ((arg2[3]) as u64)) + (((arg1[9]) as u64) * ((arg2[2]) as u64)))))))))); + let x25: u64 = (x24 >> 26); let x26: u32 = ((x24 & (0x3ffffff as u64)) as u32); - let x27: u64 = (((x22 as u64) + (((((arg1[0]) as u64) * ((arg2[1]) as u64)) + (((arg1[1]) as u64) * ((arg2[0]) as u64))) + (((x19 + (x18 << 4)) as u64) << 6))) + ((x26 as u64) * (0x3d10 as u64))); - let x28: u32 = ((x27 >> 26) as u32); + let x27: u64 = ((x22 + (((((arg1[0]) as u64) * ((arg2[1]) as u64)) + (((arg1[1]) as u64) * ((arg2[0]) as u64))) + (((x19 + (x18 << 4)) as u64) << 6))) + ((x26 as u64) * (0x3d10 as u64))); + let x28: u64 = (x27 >> 26); let x29: u32 = ((x27 & (0x3ffffff as u64)) as u32); - let x30: u64 = ((x25 as u64) + ((((arg1[3]) as u64) * ((arg2[9]) as u64)) + ((((arg1[4]) as u64) * ((arg2[8]) as u64)) + ((((arg1[5]) as u64) * ((arg2[7]) as u64)) + ((((arg1[6]) as u64) * ((arg2[6]) as u64)) + ((((arg1[7]) as u64) * ((arg2[5]) as u64)) + ((((arg1[8]) as u64) * ((arg2[4]) as u64)) + (((arg1[9]) as u64) * ((arg2[3]) as u64))))))))); - let x31: u32 = ((x30 >> 26) as u32); + let x30: u64 = (x25 + ((((arg1[3]) as u64) * ((arg2[9]) as u64)) + ((((arg1[4]) as u64) * ((arg2[8]) as u64)) + ((((arg1[5]) as u64) * ((arg2[7]) as u64)) + ((((arg1[6]) as u64) * ((arg2[6]) as u64)) + ((((arg1[7]) as u64) * ((arg2[5]) as u64)) + ((((arg1[8]) as u64) * ((arg2[4]) as u64)) + (((arg1[9]) as u64) * ((arg2[3]) as u64))))))))); + let x31: u64 = (x30 >> 26); let x32: u32 = ((x30 & (0x3ffffff as u64)) as u32); - let x33: u64 = (((x28 as u64) + (((((arg1[0]) as u64) * ((arg2[2]) as u64)) + ((((arg1[1]) as u64) * ((arg2[1]) as u64)) + (((arg1[2]) as u64) * ((arg2[0]) as u64)))) + ((x26 as u64) << 10))) + ((x32 as u64) * (0x3d10 as u64))); - let x34: u32 = ((x33 >> 26) as u32); + let x33: u64 = ((x28 + (((((arg1[0]) as u64) * ((arg2[2]) as u64)) + ((((arg1[1]) as u64) * ((arg2[1]) as u64)) + (((arg1[2]) as u64) * ((arg2[0]) as u64)))) + ((x26 as u64) << 10))) + ((x32 as u64) * (0x3d10 as u64))); + let x34: u64 = (x33 >> 26); let x35: u32 = ((x33 & (0x3ffffff as u64)) as u32); - let x36: u64 = ((x31 as u64) + ((((arg1[4]) as u64) * ((arg2[9]) as u64)) + ((((arg1[5]) as u64) * ((arg2[8]) as u64)) + ((((arg1[6]) as u64) * ((arg2[7]) as u64)) + ((((arg1[7]) as u64) * ((arg2[6]) as u64)) + ((((arg1[8]) as u64) * ((arg2[5]) as u64)) + (((arg1[9]) as u64) * ((arg2[4]) as u64)))))))); - let x37: u32 = ((x36 >> 26) as u32); + let x36: u64 = (x31 + ((((arg1[4]) as u64) * ((arg2[9]) as u64)) + ((((arg1[5]) as u64) * ((arg2[8]) as u64)) + ((((arg1[6]) as u64) * ((arg2[7]) as u64)) + ((((arg1[7]) as u64) * ((arg2[6]) as u64)) + ((((arg1[8]) as u64) * ((arg2[5]) as u64)) + (((arg1[9]) as u64) * ((arg2[4]) as u64)))))))); + let x37: u64 = (x36 >> 26); let x38: u32 = ((x36 & (0x3ffffff as u64)) as u32); - let x39: u64 = (((x34 as u64) + (((((arg1[0]) as u64) * ((arg2[3]) as u64)) + ((((arg1[1]) as u64) * ((arg2[2]) as u64)) + ((((arg1[2]) as u64) * ((arg2[1]) as u64)) + (((arg1[3]) as u64) * ((arg2[0]) as u64))))) + ((x32 as u64) << 10))) + ((x38 as u64) * (0x3d10 as u64))); - let x40: u32 = ((x39 >> 26) as u32); + let x39: u64 = ((x34 + (((((arg1[0]) as u64) * ((arg2[3]) as u64)) + ((((arg1[1]) as u64) * ((arg2[2]) as u64)) + ((((arg1[2]) as u64) * ((arg2[1]) as u64)) + (((arg1[3]) as u64) * ((arg2[0]) as u64))))) + ((x32 as u64) << 10))) + ((x38 as u64) * (0x3d10 as u64))); + let x40: u64 = (x39 >> 26); let x41: u32 = ((x39 & (0x3ffffff as u64)) as u32); - let x42: u64 = ((x37 as u64) + ((((arg1[5]) as u64) * ((arg2[9]) as u64)) + ((((arg1[6]) as u64) * ((arg2[8]) as u64)) + ((((arg1[7]) as u64) * ((arg2[7]) as u64)) + ((((arg1[8]) as u64) * ((arg2[6]) as u64)) + (((arg1[9]) as u64) * ((arg2[5]) as u64))))))); - let x43: u32 = ((x42 >> 26) as u32); + let x42: u64 = (x37 + ((((arg1[5]) as u64) * ((arg2[9]) as u64)) + ((((arg1[6]) as u64) * ((arg2[8]) as u64)) + ((((arg1[7]) as u64) * ((arg2[7]) as u64)) + ((((arg1[8]) as u64) * ((arg2[6]) as u64)) + (((arg1[9]) as u64) * ((arg2[5]) as u64))))))); + let x43: u64 = (x42 >> 26); let x44: u32 = ((x42 & (0x3ffffff as u64)) as u32); - let x45: u64 = (((x40 as u64) + (((((arg1[0]) as u64) * ((arg2[4]) as u64)) + ((((arg1[1]) as u64) * ((arg2[3]) as u64)) + ((((arg1[2]) as u64) * ((arg2[2]) as u64)) + ((((arg1[3]) as u64) * ((arg2[1]) as u64)) + (((arg1[4]) as u64) * ((arg2[0]) as u64)))))) + ((x38 as u64) << 10))) + ((x44 as u64) * (0x3d10 as u64))); - let x46: u32 = ((x45 >> 26) as u32); + let x45: u64 = ((x40 + (((((arg1[0]) as u64) * ((arg2[4]) as u64)) + ((((arg1[1]) as u64) * ((arg2[3]) as u64)) + ((((arg1[2]) as u64) * ((arg2[2]) as u64)) + ((((arg1[3]) as u64) * ((arg2[1]) as u64)) + (((arg1[4]) as u64) * ((arg2[0]) as u64)))))) + ((x38 as u64) << 10))) + ((x44 as u64) * (0x3d10 as u64))); + let x46: u64 = (x45 >> 26); let x47: u32 = ((x45 & (0x3ffffff as u64)) as u32); - let x48: u64 = ((x43 as u64) + ((((arg1[6]) as u64) * ((arg2[9]) as u64)) + ((((arg1[7]) as u64) * ((arg2[8]) as u64)) + ((((arg1[8]) as u64) * ((arg2[7]) as u64)) + (((arg1[9]) as u64) * ((arg2[6]) as u64)))))); - let x49: u32 = ((x48 >> 26) as u32); + let x48: u64 = (x43 + ((((arg1[6]) as u64) * ((arg2[9]) as u64)) + ((((arg1[7]) as u64) * ((arg2[8]) as u64)) + ((((arg1[8]) as u64) * ((arg2[7]) as u64)) + (((arg1[9]) as u64) * ((arg2[6]) as u64)))))); + let x49: u64 = (x48 >> 26); let x50: u32 = ((x48 & (0x3ffffff as u64)) as u32); - let x51: u64 = (((x46 as u64) + (((((arg1[0]) as u64) * ((arg2[5]) as u64)) + ((((arg1[1]) as u64) * ((arg2[4]) as u64)) + ((((arg1[2]) as u64) * ((arg2[3]) as u64)) + ((((arg1[3]) as u64) * ((arg2[2]) as u64)) + ((((arg1[4]) as u64) * ((arg2[1]) as u64)) + (((arg1[5]) as u64) * ((arg2[0]) as u64))))))) + ((x44 as u64) << 10))) + ((x50 as u64) * (0x3d10 as u64))); - let x52: u32 = ((x51 >> 26) as u32); + let x51: u64 = ((x46 + (((((arg1[0]) as u64) * ((arg2[5]) as u64)) + ((((arg1[1]) as u64) * ((arg2[4]) as u64)) + ((((arg1[2]) as u64) * ((arg2[3]) as u64)) + ((((arg1[3]) as u64) * ((arg2[2]) as u64)) + ((((arg1[4]) as u64) * ((arg2[1]) as u64)) + (((arg1[5]) as u64) * ((arg2[0]) as u64))))))) + ((x44 as u64) << 10))) + ((x50 as u64) * (0x3d10 as u64))); + let x52: u64 = (x51 >> 26); let x53: u32 = ((x51 & (0x3ffffff as u64)) as u32); - let x54: u64 = ((x49 as u64) + ((((arg1[7]) as u64) * ((arg2[9]) as u64)) + ((((arg1[8]) as u64) * ((arg2[8]) as u64)) + (((arg1[9]) as u64) * ((arg2[7]) as u64))))); + let x54: u64 = (x49 + ((((arg1[7]) as u64) * ((arg2[9]) as u64)) + ((((arg1[8]) as u64) * ((arg2[8]) as u64)) + (((arg1[9]) as u64) * ((arg2[7]) as u64))))); let x55: u32 = ((x54 >> 32) as u32); let x56: u32 = ((x54 & (0xffffffff as u64)) as u32); - let x57: u64 = (((x52 as u64) + (((((arg1[0]) as u64) * ((arg2[6]) as u64)) + ((((arg1[1]) as u64) * ((arg2[5]) as u64)) + ((((arg1[2]) as u64) * ((arg2[4]) as u64)) + ((((arg1[3]) as u64) * ((arg2[3]) as u64)) + ((((arg1[4]) as u64) * ((arg2[2]) as u64)) + ((((arg1[5]) as u64) * ((arg2[1]) as u64)) + (((arg1[6]) as u64) * ((arg2[0]) as u64)))))))) + ((x50 as u64) << 10))) + ((x56 as u64) * (0x3d10 as u64))); - let x58: u32 = ((x57 >> 26) as u32); + let x57: u64 = ((x52 + (((((arg1[0]) as u64) * ((arg2[6]) as u64)) + ((((arg1[1]) as u64) * ((arg2[5]) as u64)) + ((((arg1[2]) as u64) * ((arg2[4]) as u64)) + ((((arg1[3]) as u64) * ((arg2[3]) as u64)) + ((((arg1[4]) as u64) * ((arg2[2]) as u64)) + ((((arg1[5]) as u64) * ((arg2[1]) as u64)) + (((arg1[6]) as u64) * ((arg2[0]) as u64)))))))) + ((x50 as u64) << 10))) + ((x56 as u64) * (0x3d10 as u64))); + let x58: u64 = (x57 >> 26); let x59: u32 = ((x57 & (0x3ffffff as u64)) as u32); - let x60: u64 = (((x58 as u64) + ((x6 as u64) + ((x56 as u64) << 10))) + ((x55 as u64) * (0xf4400 as u64))); + let x60: u64 = ((x58 + ((x6 as u64) + ((x56 as u64) << 10))) + ((x55 as u64) * (0xf4400 as u64))); let x61: u32 = ((x60 >> 26) as u32); let x62: u32 = ((x60 & (0x3ffffff as u64)) as u32); let x63: u64 = ((x61 as u64) + ((x12 as u64) + ((x55 as u64) << 16))); @@ -113,9 +113,9 @@ pub fn fiat_secp256k1_dettman_mul(out1: &mut [u32; 10], arg1: &[u32; 10], arg2: /// eval out1 mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 = (eval arg1 * eval arg1) mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 /// /// Input Bounds: -/// arg1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] +/// arg1: [[0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3fffff0]] /// Output Bounds: -/// out1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x5fffff]] +/// out1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] #[inline] pub fn fiat_secp256k1_dettman_square(out1: &mut [u32; 10], arg1: &[u32; 10]) -> () { let x1: u32 = ((arg1[8]) * 0x2); @@ -131,62 +131,62 @@ pub fn fiat_secp256k1_dettman_square(out1: &mut [u32; 10], arg1: &[u32; 10]) -> let x11: u32 = ((x10 >> 26) as u32); let x12: u32 = ((x10 & (0x3ffffff as u64)) as u32); let x13: u64 = ((((x9 as u64) * ((arg1[7]) as u64)) + (((x8 as u64) * ((arg1[6]) as u64)) + (((x7 as u64) * ((arg1[5]) as u64)) + ((x6 as u64) * ((arg1[4]) as u64))))) + ((x12 as u64) * (0x3d10 as u64))); - let x14: u32 = ((x13 >> 26) as u32); + let x14: u64 = (x13 >> 26); let x15: u32 = ((x13 & (0x3ffffff as u64)) as u32); let x16: u64 = ((x11 as u64) + (((arg1[9]) as u64) * ((arg1[9]) as u64))); let x17: u32 = ((x16 >> 32) as u32); let x18: u32 = ((x16 & (0xffffffff as u64)) as u32); - let x19: u64 = (((x14 as u64) + ((((x9 as u64) * ((arg1[8]) as u64)) + (((x8 as u64) * ((arg1[7]) as u64)) + (((x7 as u64) * ((arg1[6]) as u64)) + (((x6 as u64) * ((arg1[5]) as u64)) + (((arg1[4]) as u64) * ((arg1[4]) as u64)))))) + ((x12 as u64) << 10))) + ((x18 as u64) * (0x3d10 as u64))); - let x20: u32 = ((x19 >> 26) as u32); + let x19: u64 = ((x14 + ((((x9 as u64) * ((arg1[8]) as u64)) + (((x8 as u64) * ((arg1[7]) as u64)) + (((x7 as u64) * ((arg1[6]) as u64)) + (((x6 as u64) * ((arg1[5]) as u64)) + (((arg1[4]) as u64) * ((arg1[4]) as u64)))))) + ((x12 as u64) << 10))) + ((x18 as u64) * (0x3d10 as u64))); + let x20: u64 = (x19 >> 26); let x21: u32 = ((x19 & (0x3ffffff as u64)) as u32); - let x22: u64 = (((x20 as u64) + ((((x9 as u64) * ((arg1[9]) as u64)) + (((x8 as u64) * ((arg1[8]) as u64)) + (((x7 as u64) * ((arg1[7]) as u64)) + (((x6 as u64) * ((arg1[6]) as u64)) + ((x5 as u64) * ((arg1[5]) as u64)))))) + ((x18 as u64) << 10))) + ((x17 as u64) * (0xf4400 as u64))); - let x23: u32 = ((x22 >> 26) as u32); + let x22: u64 = ((x20 + ((((x9 as u64) * ((arg1[9]) as u64)) + (((x8 as u64) * ((arg1[8]) as u64)) + (((x7 as u64) * ((arg1[7]) as u64)) + (((x6 as u64) * ((arg1[6]) as u64)) + ((x5 as u64) * ((arg1[5]) as u64)))))) + ((x18 as u64) << 10))) + ((x17 as u64) * (0xf4400 as u64))); + let x23: u64 = (x22 >> 26); let x24: u32 = ((x22 & (0x3ffffff as u64)) as u32); - let x25: u64 = ((x23 as u64) + ((((x8 as u64) * ((arg1[9]) as u64)) + (((x7 as u64) * ((arg1[8]) as u64)) + (((x6 as u64) * ((arg1[7]) as u64)) + (((x5 as u64) * ((arg1[6]) as u64)) + (((arg1[5]) as u64) * ((arg1[5]) as u64)))))) + ((x17 << 16) as u64))); - let x26: u32 = ((x25 >> 26) as u32); + let x25: u64 = (x23 + ((((x8 as u64) * ((arg1[9]) as u64)) + (((x7 as u64) * ((arg1[8]) as u64)) + (((x6 as u64) * ((arg1[7]) as u64)) + (((x5 as u64) * ((arg1[6]) as u64)) + (((arg1[5]) as u64) * ((arg1[5]) as u64)))))) + ((x17 as u64) << 16))); + let x26: u64 = (x25 >> 26); let x27: u32 = ((x25 & (0x3ffffff as u64)) as u32); let x28: u32 = (x24 >> 22); let x29: u32 = (x24 & 0x3fffff); let x30: u64 = ((((arg1[0]) as u64) * ((arg1[0]) as u64)) + (((x28 + (x27 << 4)) as u64) * (0x3d1 as u64))); - let x31: u32 = ((x30 >> 26) as u32); + let x31: u64 = (x30 >> 26); let x32: u32 = ((x30 & (0x3ffffff as u64)) as u32); - let x33: u64 = ((x26 as u64) + (((x7 as u64) * ((arg1[9]) as u64)) + (((x6 as u64) * ((arg1[8]) as u64)) + (((x5 as u64) * ((arg1[7]) as u64)) + ((x4 as u64) * ((arg1[6]) as u64)))))); - let x34: u32 = ((x33 >> 26) as u32); + let x33: u64 = (x26 + (((x7 as u64) * ((arg1[9]) as u64)) + (((x6 as u64) * ((arg1[8]) as u64)) + (((x5 as u64) * ((arg1[7]) as u64)) + ((x4 as u64) * ((arg1[6]) as u64)))))); + let x34: u64 = (x33 >> 26); let x35: u32 = ((x33 & (0x3ffffff as u64)) as u32); - let x36: u64 = (((x31 as u64) + (((x9 as u64) * ((arg1[1]) as u64)) + (((x28 + (x27 << 4)) as u64) << 6))) + ((x35 as u64) * (0x3d10 as u64))); - let x37: u32 = ((x36 >> 26) as u32); + let x36: u64 = ((x31 + (((x9 as u64) * ((arg1[1]) as u64)) + (((x28 + (x27 << 4)) as u64) << 6))) + ((x35 as u64) * (0x3d10 as u64))); + let x37: u64 = (x36 >> 26); let x38: u32 = ((x36 & (0x3ffffff as u64)) as u32); - let x39: u64 = ((x34 as u64) + (((x6 as u64) * ((arg1[9]) as u64)) + (((x5 as u64) * ((arg1[8]) as u64)) + (((x4 as u64) * ((arg1[7]) as u64)) + (((arg1[6]) as u64) * ((arg1[6]) as u64)))))); - let x40: u32 = ((x39 >> 26) as u32); + let x39: u64 = (x34 + (((x6 as u64) * ((arg1[9]) as u64)) + (((x5 as u64) * ((arg1[8]) as u64)) + (((x4 as u64) * ((arg1[7]) as u64)) + (((arg1[6]) as u64) * ((arg1[6]) as u64)))))); + let x40: u64 = (x39 >> 26); let x41: u32 = ((x39 & (0x3ffffff as u64)) as u32); - let x42: u64 = (((x37 as u64) + ((((x9 as u64) * ((arg1[2]) as u64)) + (((arg1[1]) as u64) * ((arg1[1]) as u64))) + ((x35 as u64) << 10))) + ((x41 as u64) * (0x3d10 as u64))); - let x43: u32 = ((x42 >> 26) as u32); + let x42: u64 = ((x37 + ((((x9 as u64) * ((arg1[2]) as u64)) + (((arg1[1]) as u64) * ((arg1[1]) as u64))) + ((x35 as u64) << 10))) + ((x41 as u64) * (0x3d10 as u64))); + let x43: u64 = (x42 >> 26); let x44: u32 = ((x42 & (0x3ffffff as u64)) as u32); - let x45: u64 = ((x40 as u64) + (((x5 as u64) * ((arg1[9]) as u64)) + (((x4 as u64) * ((arg1[8]) as u64)) + ((x3 as u64) * ((arg1[7]) as u64))))); - let x46: u32 = ((x45 >> 26) as u32); + let x45: u64 = (x40 + (((x5 as u64) * ((arg1[9]) as u64)) + (((x4 as u64) * ((arg1[8]) as u64)) + ((x3 as u64) * ((arg1[7]) as u64))))); + let x46: u64 = (x45 >> 26); let x47: u32 = ((x45 & (0x3ffffff as u64)) as u32); - let x48: u64 = (((x43 as u64) + ((((x9 as u64) * ((arg1[3]) as u64)) + ((x8 as u64) * ((arg1[2]) as u64))) + ((x41 as u64) << 10))) + ((x47 as u64) * (0x3d10 as u64))); - let x49: u32 = ((x48 >> 26) as u32); + let x48: u64 = ((x43 + ((((x9 as u64) * ((arg1[3]) as u64)) + ((x8 as u64) * ((arg1[2]) as u64))) + ((x41 as u64) << 10))) + ((x47 as u64) * (0x3d10 as u64))); + let x49: u64 = (x48 >> 26); let x50: u32 = ((x48 & (0x3ffffff as u64)) as u32); - let x51: u64 = ((x46 as u64) + (((x4 as u64) * ((arg1[9]) as u64)) + (((x3 as u64) * ((arg1[8]) as u64)) + (((arg1[7]) as u64) * ((arg1[7]) as u64))))); - let x52: u32 = ((x51 >> 26) as u32); + let x51: u64 = (x46 + (((x4 as u64) * ((arg1[9]) as u64)) + (((x3 as u64) * ((arg1[8]) as u64)) + (((arg1[7]) as u64) * ((arg1[7]) as u64))))); + let x52: u64 = (x51 >> 26); let x53: u32 = ((x51 & (0x3ffffff as u64)) as u32); - let x54: u64 = (((x49 as u64) + ((((x9 as u64) * ((arg1[4]) as u64)) + (((x8 as u64) * ((arg1[3]) as u64)) + (((arg1[2]) as u64) * ((arg1[2]) as u64)))) + ((x47 as u64) << 10))) + ((x53 as u64) * (0x3d10 as u64))); - let x55: u32 = ((x54 >> 26) as u32); + let x54: u64 = ((x49 + ((((x9 as u64) * ((arg1[4]) as u64)) + (((x8 as u64) * ((arg1[3]) as u64)) + (((arg1[2]) as u64) * ((arg1[2]) as u64)))) + ((x47 as u64) << 10))) + ((x53 as u64) * (0x3d10 as u64))); + let x55: u64 = (x54 >> 26); let x56: u32 = ((x54 & (0x3ffffff as u64)) as u32); - let x57: u64 = ((x52 as u64) + (((x3 as u64) * ((arg1[9]) as u64)) + ((x2 as u64) * ((arg1[8]) as u64)))); - let x58: u32 = ((x57 >> 26) as u32); + let x57: u64 = (x52 + (((x3 as u64) * ((arg1[9]) as u64)) + ((x2 as u64) * ((arg1[8]) as u64)))); + let x58: u64 = (x57 >> 26); let x59: u32 = ((x57 & (0x3ffffff as u64)) as u32); - let x60: u64 = (((x55 as u64) + ((((x9 as u64) * ((arg1[5]) as u64)) + (((x8 as u64) * ((arg1[4]) as u64)) + ((x7 as u64) * ((arg1[3]) as u64)))) + ((x53 as u64) << 10))) + ((x59 as u64) * (0x3d10 as u64))); - let x61: u32 = ((x60 >> 26) as u32); + let x60: u64 = ((x55 + ((((x9 as u64) * ((arg1[5]) as u64)) + (((x8 as u64) * ((arg1[4]) as u64)) + ((x7 as u64) * ((arg1[3]) as u64)))) + ((x53 as u64) << 10))) + ((x59 as u64) * (0x3d10 as u64))); + let x61: u64 = (x60 >> 26); let x62: u32 = ((x60 & (0x3ffffff as u64)) as u32); - let x63: u64 = ((x58 as u64) + (((x2 as u64) * ((arg1[9]) as u64)) + (((arg1[8]) as u64) * ((arg1[8]) as u64)))); + let x63: u64 = (x58 + (((x2 as u64) * ((arg1[9]) as u64)) + (((arg1[8]) as u64) * ((arg1[8]) as u64)))); let x64: u32 = ((x63 >> 32) as u32); let x65: u32 = ((x63 & (0xffffffff as u64)) as u32); - let x66: u64 = (((x61 as u64) + ((((x9 as u64) * ((arg1[6]) as u64)) + (((x8 as u64) * ((arg1[5]) as u64)) + (((x7 as u64) * ((arg1[4]) as u64)) + (((arg1[3]) as u64) * ((arg1[3]) as u64))))) + ((x59 as u64) << 10))) + ((x65 as u64) * (0x3d10 as u64))); - let x67: u32 = ((x66 >> 26) as u32); + let x66: u64 = ((x61 + ((((x9 as u64) * ((arg1[6]) as u64)) + (((x8 as u64) * ((arg1[5]) as u64)) + (((x7 as u64) * ((arg1[4]) as u64)) + (((arg1[3]) as u64) * ((arg1[3]) as u64))))) + ((x59 as u64) << 10))) + ((x65 as u64) * (0x3d10 as u64))); + let x67: u64 = (x66 >> 26); let x68: u32 = ((x66 & (0x3ffffff as u64)) as u32); - let x69: u64 = (((x67 as u64) + ((x15 as u64) + ((x65 as u64) << 10))) + ((x64 as u64) * (0xf4400 as u64))); + let x69: u64 = ((x67 + ((x15 as u64) + ((x65 as u64) << 10))) + ((x64 as u64) * (0xf4400 as u64))); let x70: u32 = ((x69 >> 26) as u32); let x71: u32 = ((x69 & (0x3ffffff as u64)) as u32); let x72: u64 = ((x70 as u64) + ((x21 as u64) + ((x64 as u64) << 16))); diff --git a/fiat-rust/src/secp256k1_dettman_64.rs b/fiat-rust/src/secp256k1_dettman_64.rs index 3dad5631ce..d6e9e92179 100644 --- a/fiat-rust/src/secp256k1_dettman_64.rs +++ b/fiat-rust/src/secp256k1_dettman_64.rs @@ -23,10 +23,10 @@ /// eval out1 mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 = (eval arg1 * eval arg2) mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 /// /// Input Bounds: -/// arg1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] -/// arg2: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] +/// arg1: [[0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xffffffffffff0]] +/// arg2: [[0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xffffffffffff0]] /// Output Bounds: -/// out1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x17fffffffffff]] +/// out1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] #[inline] pub fn fiat_secp256k1_dettman_mul(out1: &mut [u64; 5], arg1: &[u64; 5], arg2: &[u64; 5]) -> () { let x1: u128 = (((arg1[4]) as u128) * ((arg2[4]) as u128)); @@ -75,9 +75,9 @@ pub fn fiat_secp256k1_dettman_mul(out1: &mut [u64; 5], arg1: &[u64; 5], arg2: &[ /// eval out1 mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 = (eval arg1 * eval arg1) mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 /// /// Input Bounds: -/// arg1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] +/// arg1: [[0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xffffffffffff0]] /// Output Bounds: -/// out1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x17fffffffffff]] +/// out1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] #[inline] pub fn fiat_secp256k1_dettman_square(out1: &mut [u64; 5], arg1: &[u64; 5]) -> () { let x1: u64 = ((arg1[3]) * 0x2); diff --git a/fiat-zig/src/secp256k1_dettman_32.zig b/fiat-zig/src/secp256k1_dettman_32.zig index 8668e81be0..6b81a39c51 100644 --- a/fiat-zig/src/secp256k1_dettman_32.zig +++ b/fiat-zig/src/secp256k1_dettman_32.zig @@ -34,10 +34,10 @@ inline fn cast(comptime DestType: type, target: anytype) DestType { /// eval out1 mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 = (eval arg1 * eval arg2) mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 /// /// Input Bounds: -/// arg1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] -/// arg2: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] +/// arg1: [[0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3fffff0]] +/// arg2: [[0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3fffff0]] /// Output Bounds: -/// out1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x5fffff]] +/// out1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] pub fn mul(out1: *[10]u32, arg1: [10]u32, arg2: [10]u32) void { @setRuntimeSafety(mode == .Debug); @@ -45,62 +45,62 @@ pub fn mul(out1: *[10]u32, arg1: [10]u32, arg2: [10]u32) void { const x2 = cast(u32, (x1 >> 26)); const x3 = cast(u32, (x1 & cast(u64, 0x3ffffff))); const x4 = (((cast(u64, (arg1[0])) * cast(u64, (arg2[7]))) + ((cast(u64, (arg1[1])) * cast(u64, (arg2[6]))) + ((cast(u64, (arg1[2])) * cast(u64, (arg2[5]))) + ((cast(u64, (arg1[3])) * cast(u64, (arg2[4]))) + ((cast(u64, (arg1[4])) * cast(u64, (arg2[3]))) + ((cast(u64, (arg1[5])) * cast(u64, (arg2[2]))) + ((cast(u64, (arg1[6])) * cast(u64, (arg2[1]))) + (cast(u64, (arg1[7])) * cast(u64, (arg2[0])))))))))) + (cast(u64, x3) * cast(u64, 0x3d10))); - const x5 = cast(u32, (x4 >> 26)); + const x5 = (x4 >> 26); const x6 = cast(u32, (x4 & cast(u64, 0x3ffffff))); const x7 = (cast(u64, x2) + (cast(u64, (arg1[9])) * cast(u64, (arg2[9])))); const x8 = cast(u32, (x7 >> 32)); const x9 = cast(u32, (x7 & cast(u64, 0xffffffff))); - const x10 = ((cast(u64, x5) + (((cast(u64, (arg1[0])) * cast(u64, (arg2[8]))) + ((cast(u64, (arg1[1])) * cast(u64, (arg2[7]))) + ((cast(u64, (arg1[2])) * cast(u64, (arg2[6]))) + ((cast(u64, (arg1[3])) * cast(u64, (arg2[5]))) + ((cast(u64, (arg1[4])) * cast(u64, (arg2[4]))) + ((cast(u64, (arg1[5])) * cast(u64, (arg2[3]))) + ((cast(u64, (arg1[6])) * cast(u64, (arg2[2]))) + ((cast(u64, (arg1[7])) * cast(u64, (arg2[1]))) + (cast(u64, (arg1[8])) * cast(u64, (arg2[0]))))))))))) + (cast(u64, x3) << 10))) + (cast(u64, x9) * cast(u64, 0x3d10))); - const x11 = cast(u32, (x10 >> 26)); + const x10 = ((x5 + (((cast(u64, (arg1[0])) * cast(u64, (arg2[8]))) + ((cast(u64, (arg1[1])) * cast(u64, (arg2[7]))) + ((cast(u64, (arg1[2])) * cast(u64, (arg2[6]))) + ((cast(u64, (arg1[3])) * cast(u64, (arg2[5]))) + ((cast(u64, (arg1[4])) * cast(u64, (arg2[4]))) + ((cast(u64, (arg1[5])) * cast(u64, (arg2[3]))) + ((cast(u64, (arg1[6])) * cast(u64, (arg2[2]))) + ((cast(u64, (arg1[7])) * cast(u64, (arg2[1]))) + (cast(u64, (arg1[8])) * cast(u64, (arg2[0]))))))))))) + (cast(u64, x3) << 10))) + (cast(u64, x9) * cast(u64, 0x3d10))); + const x11 = (x10 >> 26); const x12 = cast(u32, (x10 & cast(u64, 0x3ffffff))); - const x13 = ((cast(u64, x11) + (((cast(u64, (arg1[0])) * cast(u64, (arg2[9]))) + ((cast(u64, (arg1[1])) * cast(u64, (arg2[8]))) + ((cast(u64, (arg1[2])) * cast(u64, (arg2[7]))) + ((cast(u64, (arg1[3])) * cast(u64, (arg2[6]))) + ((cast(u64, (arg1[4])) * cast(u64, (arg2[5]))) + ((cast(u64, (arg1[5])) * cast(u64, (arg2[4]))) + ((cast(u64, (arg1[6])) * cast(u64, (arg2[3]))) + ((cast(u64, (arg1[7])) * cast(u64, (arg2[2]))) + ((cast(u64, (arg1[8])) * cast(u64, (arg2[1]))) + (cast(u64, (arg1[9])) * cast(u64, (arg2[0])))))))))))) + (cast(u64, x9) << 10))) + (cast(u64, x8) * cast(u64, 0xf4400))); - const x14 = cast(u32, (x13 >> 26)); + const x13 = ((x11 + (((cast(u64, (arg1[0])) * cast(u64, (arg2[9]))) + ((cast(u64, (arg1[1])) * cast(u64, (arg2[8]))) + ((cast(u64, (arg1[2])) * cast(u64, (arg2[7]))) + ((cast(u64, (arg1[3])) * cast(u64, (arg2[6]))) + ((cast(u64, (arg1[4])) * cast(u64, (arg2[5]))) + ((cast(u64, (arg1[5])) * cast(u64, (arg2[4]))) + ((cast(u64, (arg1[6])) * cast(u64, (arg2[3]))) + ((cast(u64, (arg1[7])) * cast(u64, (arg2[2]))) + ((cast(u64, (arg1[8])) * cast(u64, (arg2[1]))) + (cast(u64, (arg1[9])) * cast(u64, (arg2[0])))))))))))) + (cast(u64, x9) << 10))) + (cast(u64, x8) * cast(u64, 0xf4400))); + const x14 = (x13 >> 26); const x15 = cast(u32, (x13 & cast(u64, 0x3ffffff))); - const x16 = (cast(u64, x14) + (((cast(u64, (arg1[1])) * cast(u64, (arg2[9]))) + ((cast(u64, (arg1[2])) * cast(u64, (arg2[8]))) + ((cast(u64, (arg1[3])) * cast(u64, (arg2[7]))) + ((cast(u64, (arg1[4])) * cast(u64, (arg2[6]))) + ((cast(u64, (arg1[5])) * cast(u64, (arg2[5]))) + ((cast(u64, (arg1[6])) * cast(u64, (arg2[4]))) + ((cast(u64, (arg1[7])) * cast(u64, (arg2[3]))) + ((cast(u64, (arg1[8])) * cast(u64, (arg2[2]))) + (cast(u64, (arg1[9])) * cast(u64, (arg2[1]))))))))))) + cast(u64, (x8 << 16)))); - const x17 = cast(u32, (x16 >> 26)); + const x16 = (x14 + (((cast(u64, (arg1[1])) * cast(u64, (arg2[9]))) + ((cast(u64, (arg1[2])) * cast(u64, (arg2[8]))) + ((cast(u64, (arg1[3])) * cast(u64, (arg2[7]))) + ((cast(u64, (arg1[4])) * cast(u64, (arg2[6]))) + ((cast(u64, (arg1[5])) * cast(u64, (arg2[5]))) + ((cast(u64, (arg1[6])) * cast(u64, (arg2[4]))) + ((cast(u64, (arg1[7])) * cast(u64, (arg2[3]))) + ((cast(u64, (arg1[8])) * cast(u64, (arg2[2]))) + (cast(u64, (arg1[9])) * cast(u64, (arg2[1]))))))))))) + (cast(u64, x8) << 16))); + const x17 = (x16 >> 26); const x18 = cast(u32, (x16 & cast(u64, 0x3ffffff))); const x19 = (x15 >> 22); const x20 = (x15 & 0x3fffff); const x21 = ((cast(u64, (arg1[0])) * cast(u64, (arg2[0]))) + (cast(u64, (x19 + (x18 << 4))) * cast(u64, 0x3d1))); - const x22 = cast(u32, (x21 >> 26)); + const x22 = (x21 >> 26); const x23 = cast(u32, (x21 & cast(u64, 0x3ffffff))); - const x24 = (cast(u64, x17) + ((cast(u64, (arg1[2])) * cast(u64, (arg2[9]))) + ((cast(u64, (arg1[3])) * cast(u64, (arg2[8]))) + ((cast(u64, (arg1[4])) * cast(u64, (arg2[7]))) + ((cast(u64, (arg1[5])) * cast(u64, (arg2[6]))) + ((cast(u64, (arg1[6])) * cast(u64, (arg2[5]))) + ((cast(u64, (arg1[7])) * cast(u64, (arg2[4]))) + ((cast(u64, (arg1[8])) * cast(u64, (arg2[3]))) + (cast(u64, (arg1[9])) * cast(u64, (arg2[2]))))))))))); - const x25 = cast(u32, (x24 >> 26)); + const x24 = (x17 + ((cast(u64, (arg1[2])) * cast(u64, (arg2[9]))) + ((cast(u64, (arg1[3])) * cast(u64, (arg2[8]))) + ((cast(u64, (arg1[4])) * cast(u64, (arg2[7]))) + ((cast(u64, (arg1[5])) * cast(u64, (arg2[6]))) + ((cast(u64, (arg1[6])) * cast(u64, (arg2[5]))) + ((cast(u64, (arg1[7])) * cast(u64, (arg2[4]))) + ((cast(u64, (arg1[8])) * cast(u64, (arg2[3]))) + (cast(u64, (arg1[9])) * cast(u64, (arg2[2]))))))))))); + const x25 = (x24 >> 26); const x26 = cast(u32, (x24 & cast(u64, 0x3ffffff))); - const x27 = ((cast(u64, x22) + (((cast(u64, (arg1[0])) * cast(u64, (arg2[1]))) + (cast(u64, (arg1[1])) * cast(u64, (arg2[0])))) + (cast(u64, (x19 + (x18 << 4))) << 6))) + (cast(u64, x26) * cast(u64, 0x3d10))); - const x28 = cast(u32, (x27 >> 26)); + const x27 = ((x22 + (((cast(u64, (arg1[0])) * cast(u64, (arg2[1]))) + (cast(u64, (arg1[1])) * cast(u64, (arg2[0])))) + (cast(u64, (x19 + (x18 << 4))) << 6))) + (cast(u64, x26) * cast(u64, 0x3d10))); + const x28 = (x27 >> 26); const x29 = cast(u32, (x27 & cast(u64, 0x3ffffff))); - const x30 = (cast(u64, x25) + ((cast(u64, (arg1[3])) * cast(u64, (arg2[9]))) + ((cast(u64, (arg1[4])) * cast(u64, (arg2[8]))) + ((cast(u64, (arg1[5])) * cast(u64, (arg2[7]))) + ((cast(u64, (arg1[6])) * cast(u64, (arg2[6]))) + ((cast(u64, (arg1[7])) * cast(u64, (arg2[5]))) + ((cast(u64, (arg1[8])) * cast(u64, (arg2[4]))) + (cast(u64, (arg1[9])) * cast(u64, (arg2[3])))))))))); - const x31 = cast(u32, (x30 >> 26)); + const x30 = (x25 + ((cast(u64, (arg1[3])) * cast(u64, (arg2[9]))) + ((cast(u64, (arg1[4])) * cast(u64, (arg2[8]))) + ((cast(u64, (arg1[5])) * cast(u64, (arg2[7]))) + ((cast(u64, (arg1[6])) * cast(u64, (arg2[6]))) + ((cast(u64, (arg1[7])) * cast(u64, (arg2[5]))) + ((cast(u64, (arg1[8])) * cast(u64, (arg2[4]))) + (cast(u64, (arg1[9])) * cast(u64, (arg2[3])))))))))); + const x31 = (x30 >> 26); const x32 = cast(u32, (x30 & cast(u64, 0x3ffffff))); - const x33 = ((cast(u64, x28) + (((cast(u64, (arg1[0])) * cast(u64, (arg2[2]))) + ((cast(u64, (arg1[1])) * cast(u64, (arg2[1]))) + (cast(u64, (arg1[2])) * cast(u64, (arg2[0]))))) + (cast(u64, x26) << 10))) + (cast(u64, x32) * cast(u64, 0x3d10))); - const x34 = cast(u32, (x33 >> 26)); + const x33 = ((x28 + (((cast(u64, (arg1[0])) * cast(u64, (arg2[2]))) + ((cast(u64, (arg1[1])) * cast(u64, (arg2[1]))) + (cast(u64, (arg1[2])) * cast(u64, (arg2[0]))))) + (cast(u64, x26) << 10))) + (cast(u64, x32) * cast(u64, 0x3d10))); + const x34 = (x33 >> 26); const x35 = cast(u32, (x33 & cast(u64, 0x3ffffff))); - const x36 = (cast(u64, x31) + ((cast(u64, (arg1[4])) * cast(u64, (arg2[9]))) + ((cast(u64, (arg1[5])) * cast(u64, (arg2[8]))) + ((cast(u64, (arg1[6])) * cast(u64, (arg2[7]))) + ((cast(u64, (arg1[7])) * cast(u64, (arg2[6]))) + ((cast(u64, (arg1[8])) * cast(u64, (arg2[5]))) + (cast(u64, (arg1[9])) * cast(u64, (arg2[4]))))))))); - const x37 = cast(u32, (x36 >> 26)); + const x36 = (x31 + ((cast(u64, (arg1[4])) * cast(u64, (arg2[9]))) + ((cast(u64, (arg1[5])) * cast(u64, (arg2[8]))) + ((cast(u64, (arg1[6])) * cast(u64, (arg2[7]))) + ((cast(u64, (arg1[7])) * cast(u64, (arg2[6]))) + ((cast(u64, (arg1[8])) * cast(u64, (arg2[5]))) + (cast(u64, (arg1[9])) * cast(u64, (arg2[4]))))))))); + const x37 = (x36 >> 26); const x38 = cast(u32, (x36 & cast(u64, 0x3ffffff))); - const x39 = ((cast(u64, x34) + (((cast(u64, (arg1[0])) * cast(u64, (arg2[3]))) + ((cast(u64, (arg1[1])) * cast(u64, (arg2[2]))) + ((cast(u64, (arg1[2])) * cast(u64, (arg2[1]))) + (cast(u64, (arg1[3])) * cast(u64, (arg2[0])))))) + (cast(u64, x32) << 10))) + (cast(u64, x38) * cast(u64, 0x3d10))); - const x40 = cast(u32, (x39 >> 26)); + const x39 = ((x34 + (((cast(u64, (arg1[0])) * cast(u64, (arg2[3]))) + ((cast(u64, (arg1[1])) * cast(u64, (arg2[2]))) + ((cast(u64, (arg1[2])) * cast(u64, (arg2[1]))) + (cast(u64, (arg1[3])) * cast(u64, (arg2[0])))))) + (cast(u64, x32) << 10))) + (cast(u64, x38) * cast(u64, 0x3d10))); + const x40 = (x39 >> 26); const x41 = cast(u32, (x39 & cast(u64, 0x3ffffff))); - const x42 = (cast(u64, x37) + ((cast(u64, (arg1[5])) * cast(u64, (arg2[9]))) + ((cast(u64, (arg1[6])) * cast(u64, (arg2[8]))) + ((cast(u64, (arg1[7])) * cast(u64, (arg2[7]))) + ((cast(u64, (arg1[8])) * cast(u64, (arg2[6]))) + (cast(u64, (arg1[9])) * cast(u64, (arg2[5])))))))); - const x43 = cast(u32, (x42 >> 26)); + const x42 = (x37 + ((cast(u64, (arg1[5])) * cast(u64, (arg2[9]))) + ((cast(u64, (arg1[6])) * cast(u64, (arg2[8]))) + ((cast(u64, (arg1[7])) * cast(u64, (arg2[7]))) + ((cast(u64, (arg1[8])) * cast(u64, (arg2[6]))) + (cast(u64, (arg1[9])) * cast(u64, (arg2[5])))))))); + const x43 = (x42 >> 26); const x44 = cast(u32, (x42 & cast(u64, 0x3ffffff))); - const x45 = ((cast(u64, x40) + (((cast(u64, (arg1[0])) * cast(u64, (arg2[4]))) + ((cast(u64, (arg1[1])) * cast(u64, (arg2[3]))) + ((cast(u64, (arg1[2])) * cast(u64, (arg2[2]))) + ((cast(u64, (arg1[3])) * cast(u64, (arg2[1]))) + (cast(u64, (arg1[4])) * cast(u64, (arg2[0]))))))) + (cast(u64, x38) << 10))) + (cast(u64, x44) * cast(u64, 0x3d10))); - const x46 = cast(u32, (x45 >> 26)); + const x45 = ((x40 + (((cast(u64, (arg1[0])) * cast(u64, (arg2[4]))) + ((cast(u64, (arg1[1])) * cast(u64, (arg2[3]))) + ((cast(u64, (arg1[2])) * cast(u64, (arg2[2]))) + ((cast(u64, (arg1[3])) * cast(u64, (arg2[1]))) + (cast(u64, (arg1[4])) * cast(u64, (arg2[0]))))))) + (cast(u64, x38) << 10))) + (cast(u64, x44) * cast(u64, 0x3d10))); + const x46 = (x45 >> 26); const x47 = cast(u32, (x45 & cast(u64, 0x3ffffff))); - const x48 = (cast(u64, x43) + ((cast(u64, (arg1[6])) * cast(u64, (arg2[9]))) + ((cast(u64, (arg1[7])) * cast(u64, (arg2[8]))) + ((cast(u64, (arg1[8])) * cast(u64, (arg2[7]))) + (cast(u64, (arg1[9])) * cast(u64, (arg2[6]))))))); - const x49 = cast(u32, (x48 >> 26)); + const x48 = (x43 + ((cast(u64, (arg1[6])) * cast(u64, (arg2[9]))) + ((cast(u64, (arg1[7])) * cast(u64, (arg2[8]))) + ((cast(u64, (arg1[8])) * cast(u64, (arg2[7]))) + (cast(u64, (arg1[9])) * cast(u64, (arg2[6]))))))); + const x49 = (x48 >> 26); const x50 = cast(u32, (x48 & cast(u64, 0x3ffffff))); - const x51 = ((cast(u64, x46) + (((cast(u64, (arg1[0])) * cast(u64, (arg2[5]))) + ((cast(u64, (arg1[1])) * cast(u64, (arg2[4]))) + ((cast(u64, (arg1[2])) * cast(u64, (arg2[3]))) + ((cast(u64, (arg1[3])) * cast(u64, (arg2[2]))) + ((cast(u64, (arg1[4])) * cast(u64, (arg2[1]))) + (cast(u64, (arg1[5])) * cast(u64, (arg2[0])))))))) + (cast(u64, x44) << 10))) + (cast(u64, x50) * cast(u64, 0x3d10))); - const x52 = cast(u32, (x51 >> 26)); + const x51 = ((x46 + (((cast(u64, (arg1[0])) * cast(u64, (arg2[5]))) + ((cast(u64, (arg1[1])) * cast(u64, (arg2[4]))) + ((cast(u64, (arg1[2])) * cast(u64, (arg2[3]))) + ((cast(u64, (arg1[3])) * cast(u64, (arg2[2]))) + ((cast(u64, (arg1[4])) * cast(u64, (arg2[1]))) + (cast(u64, (arg1[5])) * cast(u64, (arg2[0])))))))) + (cast(u64, x44) << 10))) + (cast(u64, x50) * cast(u64, 0x3d10))); + const x52 = (x51 >> 26); const x53 = cast(u32, (x51 & cast(u64, 0x3ffffff))); - const x54 = (cast(u64, x49) + ((cast(u64, (arg1[7])) * cast(u64, (arg2[9]))) + ((cast(u64, (arg1[8])) * cast(u64, (arg2[8]))) + (cast(u64, (arg1[9])) * cast(u64, (arg2[7])))))); + const x54 = (x49 + ((cast(u64, (arg1[7])) * cast(u64, (arg2[9]))) + ((cast(u64, (arg1[8])) * cast(u64, (arg2[8]))) + (cast(u64, (arg1[9])) * cast(u64, (arg2[7])))))); const x55 = cast(u32, (x54 >> 32)); const x56 = cast(u32, (x54 & cast(u64, 0xffffffff))); - const x57 = ((cast(u64, x52) + (((cast(u64, (arg1[0])) * cast(u64, (arg2[6]))) + ((cast(u64, (arg1[1])) * cast(u64, (arg2[5]))) + ((cast(u64, (arg1[2])) * cast(u64, (arg2[4]))) + ((cast(u64, (arg1[3])) * cast(u64, (arg2[3]))) + ((cast(u64, (arg1[4])) * cast(u64, (arg2[2]))) + ((cast(u64, (arg1[5])) * cast(u64, (arg2[1]))) + (cast(u64, (arg1[6])) * cast(u64, (arg2[0]))))))))) + (cast(u64, x50) << 10))) + (cast(u64, x56) * cast(u64, 0x3d10))); - const x58 = cast(u32, (x57 >> 26)); + const x57 = ((x52 + (((cast(u64, (arg1[0])) * cast(u64, (arg2[6]))) + ((cast(u64, (arg1[1])) * cast(u64, (arg2[5]))) + ((cast(u64, (arg1[2])) * cast(u64, (arg2[4]))) + ((cast(u64, (arg1[3])) * cast(u64, (arg2[3]))) + ((cast(u64, (arg1[4])) * cast(u64, (arg2[2]))) + ((cast(u64, (arg1[5])) * cast(u64, (arg2[1]))) + (cast(u64, (arg1[6])) * cast(u64, (arg2[0]))))))))) + (cast(u64, x50) << 10))) + (cast(u64, x56) * cast(u64, 0x3d10))); + const x58 = (x57 >> 26); const x59 = cast(u32, (x57 & cast(u64, 0x3ffffff))); - const x60 = ((cast(u64, x58) + (cast(u64, x6) + (cast(u64, x56) << 10))) + (cast(u64, x55) * cast(u64, 0xf4400))); + const x60 = ((x58 + (cast(u64, x6) + (cast(u64, x56) << 10))) + (cast(u64, x55) * cast(u64, 0xf4400))); const x61 = cast(u32, (x60 >> 26)); const x62 = cast(u32, (x60 & cast(u64, 0x3ffffff))); const x63 = (cast(u64, x61) + (cast(u64, x12) + (cast(u64, x55) << 16))); @@ -125,9 +125,9 @@ pub fn mul(out1: *[10]u32, arg1: [10]u32, arg2: [10]u32) void { /// eval out1 mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 = (eval arg1 * eval arg1) mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 /// /// Input Bounds: -/// arg1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] +/// arg1: [[0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3ffffff0], [0x0 ~> 0x3fffff0]] /// Output Bounds: -/// out1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x5fffff]] +/// out1: [[0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7fffffe], [0x0 ~> 0x7ffffe]] pub fn square(out1: *[10]u32, arg1: [10]u32) void { @setRuntimeSafety(mode == .Debug); @@ -144,62 +144,62 @@ pub fn square(out1: *[10]u32, arg1: [10]u32) void { const x11 = cast(u32, (x10 >> 26)); const x12 = cast(u32, (x10 & cast(u64, 0x3ffffff))); const x13 = (((cast(u64, x9) * cast(u64, (arg1[7]))) + ((cast(u64, x8) * cast(u64, (arg1[6]))) + ((cast(u64, x7) * cast(u64, (arg1[5]))) + (cast(u64, x6) * cast(u64, (arg1[4])))))) + (cast(u64, x12) * cast(u64, 0x3d10))); - const x14 = cast(u32, (x13 >> 26)); + const x14 = (x13 >> 26); const x15 = cast(u32, (x13 & cast(u64, 0x3ffffff))); const x16 = (cast(u64, x11) + (cast(u64, (arg1[9])) * cast(u64, (arg1[9])))); const x17 = cast(u32, (x16 >> 32)); const x18 = cast(u32, (x16 & cast(u64, 0xffffffff))); - const x19 = ((cast(u64, x14) + (((cast(u64, x9) * cast(u64, (arg1[8]))) + ((cast(u64, x8) * cast(u64, (arg1[7]))) + ((cast(u64, x7) * cast(u64, (arg1[6]))) + ((cast(u64, x6) * cast(u64, (arg1[5]))) + (cast(u64, (arg1[4])) * cast(u64, (arg1[4]))))))) + (cast(u64, x12) << 10))) + (cast(u64, x18) * cast(u64, 0x3d10))); - const x20 = cast(u32, (x19 >> 26)); + const x19 = ((x14 + (((cast(u64, x9) * cast(u64, (arg1[8]))) + ((cast(u64, x8) * cast(u64, (arg1[7]))) + ((cast(u64, x7) * cast(u64, (arg1[6]))) + ((cast(u64, x6) * cast(u64, (arg1[5]))) + (cast(u64, (arg1[4])) * cast(u64, (arg1[4]))))))) + (cast(u64, x12) << 10))) + (cast(u64, x18) * cast(u64, 0x3d10))); + const x20 = (x19 >> 26); const x21 = cast(u32, (x19 & cast(u64, 0x3ffffff))); - const x22 = ((cast(u64, x20) + (((cast(u64, x9) * cast(u64, (arg1[9]))) + ((cast(u64, x8) * cast(u64, (arg1[8]))) + ((cast(u64, x7) * cast(u64, (arg1[7]))) + ((cast(u64, x6) * cast(u64, (arg1[6]))) + (cast(u64, x5) * cast(u64, (arg1[5]))))))) + (cast(u64, x18) << 10))) + (cast(u64, x17) * cast(u64, 0xf4400))); - const x23 = cast(u32, (x22 >> 26)); + const x22 = ((x20 + (((cast(u64, x9) * cast(u64, (arg1[9]))) + ((cast(u64, x8) * cast(u64, (arg1[8]))) + ((cast(u64, x7) * cast(u64, (arg1[7]))) + ((cast(u64, x6) * cast(u64, (arg1[6]))) + (cast(u64, x5) * cast(u64, (arg1[5]))))))) + (cast(u64, x18) << 10))) + (cast(u64, x17) * cast(u64, 0xf4400))); + const x23 = (x22 >> 26); const x24 = cast(u32, (x22 & cast(u64, 0x3ffffff))); - const x25 = (cast(u64, x23) + (((cast(u64, x8) * cast(u64, (arg1[9]))) + ((cast(u64, x7) * cast(u64, (arg1[8]))) + ((cast(u64, x6) * cast(u64, (arg1[7]))) + ((cast(u64, x5) * cast(u64, (arg1[6]))) + (cast(u64, (arg1[5])) * cast(u64, (arg1[5]))))))) + cast(u64, (x17 << 16)))); - const x26 = cast(u32, (x25 >> 26)); + const x25 = (x23 + (((cast(u64, x8) * cast(u64, (arg1[9]))) + ((cast(u64, x7) * cast(u64, (arg1[8]))) + ((cast(u64, x6) * cast(u64, (arg1[7]))) + ((cast(u64, x5) * cast(u64, (arg1[6]))) + (cast(u64, (arg1[5])) * cast(u64, (arg1[5]))))))) + (cast(u64, x17) << 16))); + const x26 = (x25 >> 26); const x27 = cast(u32, (x25 & cast(u64, 0x3ffffff))); const x28 = (x24 >> 22); const x29 = (x24 & 0x3fffff); const x30 = ((cast(u64, (arg1[0])) * cast(u64, (arg1[0]))) + (cast(u64, (x28 + (x27 << 4))) * cast(u64, 0x3d1))); - const x31 = cast(u32, (x30 >> 26)); + const x31 = (x30 >> 26); const x32 = cast(u32, (x30 & cast(u64, 0x3ffffff))); - const x33 = (cast(u64, x26) + ((cast(u64, x7) * cast(u64, (arg1[9]))) + ((cast(u64, x6) * cast(u64, (arg1[8]))) + ((cast(u64, x5) * cast(u64, (arg1[7]))) + (cast(u64, x4) * cast(u64, (arg1[6]))))))); - const x34 = cast(u32, (x33 >> 26)); + const x33 = (x26 + ((cast(u64, x7) * cast(u64, (arg1[9]))) + ((cast(u64, x6) * cast(u64, (arg1[8]))) + ((cast(u64, x5) * cast(u64, (arg1[7]))) + (cast(u64, x4) * cast(u64, (arg1[6]))))))); + const x34 = (x33 >> 26); const x35 = cast(u32, (x33 & cast(u64, 0x3ffffff))); - const x36 = ((cast(u64, x31) + ((cast(u64, x9) * cast(u64, (arg1[1]))) + (cast(u64, (x28 + (x27 << 4))) << 6))) + (cast(u64, x35) * cast(u64, 0x3d10))); - const x37 = cast(u32, (x36 >> 26)); + const x36 = ((x31 + ((cast(u64, x9) * cast(u64, (arg1[1]))) + (cast(u64, (x28 + (x27 << 4))) << 6))) + (cast(u64, x35) * cast(u64, 0x3d10))); + const x37 = (x36 >> 26); const x38 = cast(u32, (x36 & cast(u64, 0x3ffffff))); - const x39 = (cast(u64, x34) + ((cast(u64, x6) * cast(u64, (arg1[9]))) + ((cast(u64, x5) * cast(u64, (arg1[8]))) + ((cast(u64, x4) * cast(u64, (arg1[7]))) + (cast(u64, (arg1[6])) * cast(u64, (arg1[6]))))))); - const x40 = cast(u32, (x39 >> 26)); + const x39 = (x34 + ((cast(u64, x6) * cast(u64, (arg1[9]))) + ((cast(u64, x5) * cast(u64, (arg1[8]))) + ((cast(u64, x4) * cast(u64, (arg1[7]))) + (cast(u64, (arg1[6])) * cast(u64, (arg1[6]))))))); + const x40 = (x39 >> 26); const x41 = cast(u32, (x39 & cast(u64, 0x3ffffff))); - const x42 = ((cast(u64, x37) + (((cast(u64, x9) * cast(u64, (arg1[2]))) + (cast(u64, (arg1[1])) * cast(u64, (arg1[1])))) + (cast(u64, x35) << 10))) + (cast(u64, x41) * cast(u64, 0x3d10))); - const x43 = cast(u32, (x42 >> 26)); + const x42 = ((x37 + (((cast(u64, x9) * cast(u64, (arg1[2]))) + (cast(u64, (arg1[1])) * cast(u64, (arg1[1])))) + (cast(u64, x35) << 10))) + (cast(u64, x41) * cast(u64, 0x3d10))); + const x43 = (x42 >> 26); const x44 = cast(u32, (x42 & cast(u64, 0x3ffffff))); - const x45 = (cast(u64, x40) + ((cast(u64, x5) * cast(u64, (arg1[9]))) + ((cast(u64, x4) * cast(u64, (arg1[8]))) + (cast(u64, x3) * cast(u64, (arg1[7])))))); - const x46 = cast(u32, (x45 >> 26)); + const x45 = (x40 + ((cast(u64, x5) * cast(u64, (arg1[9]))) + ((cast(u64, x4) * cast(u64, (arg1[8]))) + (cast(u64, x3) * cast(u64, (arg1[7])))))); + const x46 = (x45 >> 26); const x47 = cast(u32, (x45 & cast(u64, 0x3ffffff))); - const x48 = ((cast(u64, x43) + (((cast(u64, x9) * cast(u64, (arg1[3]))) + (cast(u64, x8) * cast(u64, (arg1[2])))) + (cast(u64, x41) << 10))) + (cast(u64, x47) * cast(u64, 0x3d10))); - const x49 = cast(u32, (x48 >> 26)); + const x48 = ((x43 + (((cast(u64, x9) * cast(u64, (arg1[3]))) + (cast(u64, x8) * cast(u64, (arg1[2])))) + (cast(u64, x41) << 10))) + (cast(u64, x47) * cast(u64, 0x3d10))); + const x49 = (x48 >> 26); const x50 = cast(u32, (x48 & cast(u64, 0x3ffffff))); - const x51 = (cast(u64, x46) + ((cast(u64, x4) * cast(u64, (arg1[9]))) + ((cast(u64, x3) * cast(u64, (arg1[8]))) + (cast(u64, (arg1[7])) * cast(u64, (arg1[7])))))); - const x52 = cast(u32, (x51 >> 26)); + const x51 = (x46 + ((cast(u64, x4) * cast(u64, (arg1[9]))) + ((cast(u64, x3) * cast(u64, (arg1[8]))) + (cast(u64, (arg1[7])) * cast(u64, (arg1[7])))))); + const x52 = (x51 >> 26); const x53 = cast(u32, (x51 & cast(u64, 0x3ffffff))); - const x54 = ((cast(u64, x49) + (((cast(u64, x9) * cast(u64, (arg1[4]))) + ((cast(u64, x8) * cast(u64, (arg1[3]))) + (cast(u64, (arg1[2])) * cast(u64, (arg1[2]))))) + (cast(u64, x47) << 10))) + (cast(u64, x53) * cast(u64, 0x3d10))); - const x55 = cast(u32, (x54 >> 26)); + const x54 = ((x49 + (((cast(u64, x9) * cast(u64, (arg1[4]))) + ((cast(u64, x8) * cast(u64, (arg1[3]))) + (cast(u64, (arg1[2])) * cast(u64, (arg1[2]))))) + (cast(u64, x47) << 10))) + (cast(u64, x53) * cast(u64, 0x3d10))); + const x55 = (x54 >> 26); const x56 = cast(u32, (x54 & cast(u64, 0x3ffffff))); - const x57 = (cast(u64, x52) + ((cast(u64, x3) * cast(u64, (arg1[9]))) + (cast(u64, x2) * cast(u64, (arg1[8]))))); - const x58 = cast(u32, (x57 >> 26)); + const x57 = (x52 + ((cast(u64, x3) * cast(u64, (arg1[9]))) + (cast(u64, x2) * cast(u64, (arg1[8]))))); + const x58 = (x57 >> 26); const x59 = cast(u32, (x57 & cast(u64, 0x3ffffff))); - const x60 = ((cast(u64, x55) + (((cast(u64, x9) * cast(u64, (arg1[5]))) + ((cast(u64, x8) * cast(u64, (arg1[4]))) + (cast(u64, x7) * cast(u64, (arg1[3]))))) + (cast(u64, x53) << 10))) + (cast(u64, x59) * cast(u64, 0x3d10))); - const x61 = cast(u32, (x60 >> 26)); + const x60 = ((x55 + (((cast(u64, x9) * cast(u64, (arg1[5]))) + ((cast(u64, x8) * cast(u64, (arg1[4]))) + (cast(u64, x7) * cast(u64, (arg1[3]))))) + (cast(u64, x53) << 10))) + (cast(u64, x59) * cast(u64, 0x3d10))); + const x61 = (x60 >> 26); const x62 = cast(u32, (x60 & cast(u64, 0x3ffffff))); - const x63 = (cast(u64, x58) + ((cast(u64, x2) * cast(u64, (arg1[9]))) + (cast(u64, (arg1[8])) * cast(u64, (arg1[8]))))); + const x63 = (x58 + ((cast(u64, x2) * cast(u64, (arg1[9]))) + (cast(u64, (arg1[8])) * cast(u64, (arg1[8]))))); const x64 = cast(u32, (x63 >> 32)); const x65 = cast(u32, (x63 & cast(u64, 0xffffffff))); - const x66 = ((cast(u64, x61) + (((cast(u64, x9) * cast(u64, (arg1[6]))) + ((cast(u64, x8) * cast(u64, (arg1[5]))) + ((cast(u64, x7) * cast(u64, (arg1[4]))) + (cast(u64, (arg1[3])) * cast(u64, (arg1[3])))))) + (cast(u64, x59) << 10))) + (cast(u64, x65) * cast(u64, 0x3d10))); - const x67 = cast(u32, (x66 >> 26)); + const x66 = ((x61 + (((cast(u64, x9) * cast(u64, (arg1[6]))) + ((cast(u64, x8) * cast(u64, (arg1[5]))) + ((cast(u64, x7) * cast(u64, (arg1[4]))) + (cast(u64, (arg1[3])) * cast(u64, (arg1[3])))))) + (cast(u64, x59) << 10))) + (cast(u64, x65) * cast(u64, 0x3d10))); + const x67 = (x66 >> 26); const x68 = cast(u32, (x66 & cast(u64, 0x3ffffff))); - const x69 = ((cast(u64, x67) + (cast(u64, x15) + (cast(u64, x65) << 10))) + (cast(u64, x64) * cast(u64, 0xf4400))); + const x69 = ((x67 + (cast(u64, x15) + (cast(u64, x65) << 10))) + (cast(u64, x64) * cast(u64, 0xf4400))); const x70 = cast(u32, (x69 >> 26)); const x71 = cast(u32, (x69 & cast(u64, 0x3ffffff))); const x72 = (cast(u64, x70) + (cast(u64, x21) + (cast(u64, x64) << 16))); diff --git a/fiat-zig/src/secp256k1_dettman_64.zig b/fiat-zig/src/secp256k1_dettman_64.zig index bf35ca3190..409cf7d5d3 100644 --- a/fiat-zig/src/secp256k1_dettman_64.zig +++ b/fiat-zig/src/secp256k1_dettman_64.zig @@ -34,10 +34,10 @@ inline fn cast(comptime DestType: type, target: anytype) DestType { /// eval out1 mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 = (eval arg1 * eval arg2) mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 /// /// Input Bounds: -/// arg1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] -/// arg2: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] +/// arg1: [[0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xffffffffffff0]] +/// arg2: [[0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xffffffffffff0]] /// Output Bounds: -/// out1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x17fffffffffff]] +/// out1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] pub fn mul(out1: *[5]u64, arg1: [5]u64, arg2: [5]u64) void { @setRuntimeSafety(mode == .Debug); @@ -87,9 +87,9 @@ pub fn mul(out1: *[5]u64, arg1: [5]u64, arg2: [5]u64) void { /// eval out1 mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 = (eval arg1 * eval arg1) mod 115792089237316195423570985008687907853269984665640564039457584007908834671663 /// /// Input Bounds: -/// arg1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] +/// arg1: [[0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xfffffffffffff0], [0x0 ~> 0xffffffffffff0]] /// Output Bounds: -/// out1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x17fffffffffff]] +/// out1: [[0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1ffffffffffffe], [0x0 ~> 0x1fffffffffffe]] pub fn square(out1: *[5]u64, arg1: [5]u64) void { @setRuntimeSafety(mode == .Debug); diff --git a/src/PushButtonSynthesis/DettmanMultiplication.v b/src/PushButtonSynthesis/DettmanMultiplication.v index 78859ad1cf..28347e23bc 100644 --- a/src/PushButtonSynthesis/DettmanMultiplication.v +++ b/src/PushButtonSynthesis/DettmanMultiplication.v @@ -88,12 +88,11 @@ Section __. Local Notation possible_values := possible_values_of_machine_wordsize. - Definition input_magnitude := Option.value inbounds_multiplier 1. - Definition output_magnitude_first_limbs : Q := input_magnitude / 2 + 1 / 2. - Definition output_magnitude_last_limb : Q := input_magnitude / 2 + 1 / 4. + Definition input_magnitude := Option.value inbounds_multiplier 8. + Definition output_magnitude_first_limbs : Q := 1. + Definition output_magnitude_last_limb : Q := 1. (* Where these bounds came from: - https://github.com/bitcoin-core/secp256k1/blob/0eb3000417fcf996e3805d0eb00f0f32b8849315/src/field_5x52_impl.h#L545 - These bounds are correct, and reasonably tight, for the following parameters: + https://github.com/bitcoin-core/secp256k1/blob/26392da2fb7153addae0bd604495eb96f995d76c/src/field_impl.h#L329-L334 s = 2^256 c = 2^32 - 2^9 - 2^8 - 2^7 - 2^6 - 2^4 - 1 n = 5