commit db88f9116371c803128d240d3b16e9ea31ae6271
parent 1e28378cf2fe8b311e334df04276d843719d4a15
Author: Jared Tobin <jared@jtobin.io>
Date: Sun, 7 Dec 2025 07:15:29 +0400
lib: align on equals
Diffstat:
3 files changed, 183 insertions(+), 183 deletions(-)
diff --git a/lib/Data/Word/Wider.hs b/lib/Data/Word/Wider.hs
@@ -103,15 +103,15 @@ cmp#
-> Int#
cmp# (# l0, l1, l2, l3 #) (# r0, r1, r2, r3 #) =
let !(# w0, b0 #) = L.sub_b# r0 l0 (Limb 0##)
- !d0 = L.or# (Limb 0##) w0
+ !d0 = L.or# (Limb 0##) w0
!(# w1, b1 #) = L.sub_b# r1 l1 b0
- !d1 = L.or# d0 w1
+ !d1 = L.or# d0 w1
!(# w2, b2 #) = L.sub_b# r2 l2 b1
- !d2 = L.or# d1 w2
+ !d2 = L.or# d1 w2
!(# w3, b3 #) = L.sub_b# r3 l3 b2
- !d3 = L.or# d2 w3
- !(Limb w) = L.and# b3 (Limb 2##)
- !s = word2Int# w -# 1#
+ !d3 = L.or# d2 w3
+ !(Limb w) = L.and# b3 (Limb 2##)
+ !s = word2Int# w -# 1#
in (word2Int# (C.to_word# (L.nonzero# d3))) *# s
{-# INLINE cmp# #-}
@@ -388,31 +388,31 @@ sqr#
:: (# Limb, Limb, Limb, Limb #)
-> (# (# Limb, Limb, Limb, Limb #), (# Limb, Limb, Limb, Limb #) #)
sqr# (# x0, x1, x2, x3 #) =
- let !sh = case B.finiteBitSize (0 :: Word) of I# m -> m -# 1#
- !(# q1_0, c1_0 #) = L.mac# x1 x0 (Limb 0##) (Limb 0##)
- !r1 = c1_0
- !(# r2_0, c2_0 #) = L.mac# x2 x0 r1 (Limb 0##)
- !(# s2_1, c2_1 #) = L.mac# x2 x1 (Limb 0##) c2_0
- !t2 = c2_1
- !(# s3_0, c3_0 #) = L.mac# x3 x0 s2_1 (Limb 0##)
- !(# t3, c3_1 #) = L.mac# x3 x1 t2 c3_0
- !(# u3, c3_2 #) = L.mac# x3 x2 (Limb 0##) c3_1
- !v3 = c3_2
+ let !sh = case B.finiteBitSize (0 :: Word) of I# m -> m -# 1#
+ !(# q1_0, c1_0 #) = L.mac# x1 x0 (Limb 0##) (Limb 0##)
+ !r1 = c1_0
+ !(# r2_0, c2_0 #) = L.mac# x2 x0 r1 (Limb 0##)
+ !(# s2_1, c2_1 #) = L.mac# x2 x1 (Limb 0##) c2_0
+ !t2 = c2_1
+ !(# s3_0, c3_0 #) = L.mac# x3 x0 s2_1 (Limb 0##)
+ !(# t3, c3_1 #) = L.mac# x3 x1 t2 c3_0
+ !(# u3, c3_2 #) = L.mac# x3 x2 (Limb 0##) c3_1
+ !v3 = c3_2
!(# lo1, car0_1 #) = (# L.shl# q1_0 1#, L.shr# q1_0 sh #)
!(# lo2, car0_2 #) = (# L.or# (L.shl# r2_0 1#) car0_1, L.shr# r2_0 sh #)
!(# lo3, car0_3 #) = (# L.or# (L.shl# s3_0 1#) car0_2, L.shr# s3_0 sh #)
!(# hi0, car1_0 #) = (# L.or# (L.shl# t3 1#) car0_3, L.shr# t3 sh #)
!(# hi1, car1_1 #) = (# L.or# (L.shl# u3 1#) car1_0, L.shr# u3 sh #)
!(# hi2, car1_2 #) = (# L.or# (L.shl# v3 1#) car1_1, L.shr# v3 sh #)
- !hi3 = car1_2
- !(# pf, car2_0 #) = L.mac# x0 x0 (Limb 0##) (Limb 0##)
- !(# qf, car2_1 #) = L.add_c# lo1 car2_0 (Limb 0##)
- !(# rf, car2_2 #) = L.mac# x1 x1 lo2 car2_1
- !(# sf, car2_3 #) = L.add_c# lo3 car2_2 (Limb 0##)
- !(# tf, car2_4 #) = L.mac# x2 x2 hi0 car2_3
- !(# uf, car2_5 #) = L.add_c# hi1 car2_4 (Limb 0##)
- !(# vf, car2_6 #) = L.mac# x3 x3 hi2 car2_5
- !(# wf, _ #) = L.add_c# hi3 car2_6 (Limb 0##)
+ !hi3 = car1_2
+ !(# pf, car2_0 #) = L.mac# x0 x0 (Limb 0##) (Limb 0##)
+ !(# qf, car2_1 #) = L.add_c# lo1 car2_0 (Limb 0##)
+ !(# rf, car2_2 #) = L.mac# x1 x1 lo2 car2_1
+ !(# sf, car2_3 #) = L.add_c# lo3 car2_2 (Limb 0##)
+ !(# tf, car2_4 #) = L.mac# x2 x2 hi0 car2_3
+ !(# uf, car2_5 #) = L.add_c# hi1 car2_4 (Limb 0##)
+ !(# vf, car2_6 #) = L.mac# x3 x3 hi2 car2_5
+ !(# wf, _ #) = L.add_c# hi3 car2_6 (Limb 0##)
in (# (# pf, qf, rf, sf #), (# tf, uf, vf, wf #) #)
{-# INLINE sqr# #-}
diff --git a/lib/Numeric/Montgomery/Secp256k1/Curve.hs b/lib/Numeric/Montgomery/Secp256k1/Curve.hs
@@ -127,31 +127,31 @@ redc_inner# (# u0, u1, u2, u3 #) (# l0, l1, l2, l3 #) =
let !(# m0, m1, m2, m3 #) =
(# Limb 0xFFFFFFFEFFFFFC2F##, Limb 0xFFFFFFFFFFFFFFFF##
, Limb 0xFFFFFFFFFFFFFFFF##, Limb 0xFFFFFFFFFFFFFFFF## #)
- !n = Limb 0xD838091DD2253531##
- !w_0 = L.mul_w# l0 n
- !(# _, c_00 #) = L.mac# w_0 m0 l0 (Limb 0##)
+ !n = Limb 0xD838091DD2253531##
+ !w_0 = L.mul_w# l0 n
+ !(# _, c_00 #) = L.mac# w_0 m0 l0 (Limb 0##)
!(# l0_1, c_01 #) = L.mac# w_0 m1 l1 c_00
!(# l0_2, c_02 #) = L.mac# w_0 m2 l2 c_01
!(# l0_3, c_03 #) = L.mac# w_0 m3 l3 c_02
- !(# u_0, mc_0 #) = L.add_c# u0 c_03 (Limb 0##)
- !w_1 = L.mul_w# l0_1 n
- !(# _, c_10 #) = L.mac# w_1 m0 l0_1 (Limb 0##)
+ !(# u_0, mc_0 #) = L.add_c# u0 c_03 (Limb 0##)
+ !w_1 = L.mul_w# l0_1 n
+ !(# _, c_10 #) = L.mac# w_1 m0 l0_1 (Limb 0##)
!(# l1_1, c_11 #) = L.mac# w_1 m1 l0_2 c_10
!(# l1_2, c_12 #) = L.mac# w_1 m2 l0_3 c_11
!(# u1_3, c_13 #) = L.mac# w_1 m3 u_0 c_12
- !(# u_1, mc_1 #) = L.add_c# u1 c_13 mc_0
- !w_2 = L.mul_w# l1_1 n
- !(# _, c_20 #) = L.mac# w_2 m0 l1_1 (Limb 0##)
+ !(# u_1, mc_1 #) = L.add_c# u1 c_13 mc_0
+ !w_2 = L.mul_w# l1_1 n
+ !(# _, c_20 #) = L.mac# w_2 m0 l1_1 (Limb 0##)
!(# l2_1, c_21 #) = L.mac# w_2 m1 l1_2 c_20
!(# u2_2, c_22 #) = L.mac# w_2 m2 u1_3 c_21
!(# u2_3, c_23 #) = L.mac# w_2 m3 u_1 c_22
- !(# u_2, mc_2 #) = L.add_c# u2 c_23 mc_1
- !w_3 = L.mul_w# l2_1 n
- !(# _, c_30 #) = L.mac# w_3 m0 l2_1 (Limb 0##)
+ !(# u_2, mc_2 #) = L.add_c# u2 c_23 mc_1
+ !w_3 = L.mul_w# l2_1 n
+ !(# _, c_30 #) = L.mac# w_3 m0 l2_1 (Limb 0##)
!(# u3_1, c_31 #) = L.mac# w_3 m1 u2_2 c_30
!(# u3_2, c_32 #) = L.mac# w_3 m2 u2_3 c_31
!(# u3_3, c_33 #) = L.mac# w_3 m3 u_2 c_32
- !(# u_3, mc_3 #) = L.add_c# u3 c_33 mc_2
+ !(# u_3, mc_3 #) = L.add_c# u3 c_33 mc_2
in (# (# u3_1, u3_2, u3_3, u_3 #), mc_3 #)
{-# INLINE redc_inner# #-}
@@ -187,24 +187,24 @@ retr_inner# (# x0, x1, x2, x3 #) =
let !(# m0, m1, m2, m3 #) =
(# Limb 0xFFFFFFFEFFFFFC2F##, Limb 0xFFFFFFFFFFFFFFFF##
, Limb 0xFFFFFFFFFFFFFFFF##, Limb 0xFFFFFFFFFFFFFFFF## #)
- !n = Limb 0xD838091DD2253531##
- !u_0 = L.mul_w# x0 n
- !(# _, o0 #) = L.mac# u_0 m0 x0 (Limb 0##)
+ !n = Limb 0xD838091DD2253531##
+ !u_0 = L.mul_w# x0 n
+ !(# _, o0 #) = L.mac# u_0 m0 x0 (Limb 0##)
!(# o0_1, p0_1 #) = L.mac# u_0 m1 (Limb 0##) o0
!(# p0_2, q0_2 #) = L.mac# u_0 m2 (Limb 0##) p0_1
!(# q0_3, r0_3 #) = L.mac# u_0 m3 (Limb 0##) q0_2
- !u_1 = L.mul_w# (L.add_w# o0_1 x1) n
- !(# _, o1 #) = L.mac# u_1 m0 x1 o0_1
+ !u_1 = L.mul_w# (L.add_w# o0_1 x1) n
+ !(# _, o1 #) = L.mac# u_1 m0 x1 o0_1
!(# o1_1, p1_1 #) = L.mac# u_1 m1 p0_2 o1
!(# p1_2, q1_2 #) = L.mac# u_1 m2 q0_3 p1_1
!(# q1_3, r1_3 #) = L.mac# u_1 m3 r0_3 q1_2
- !u_2 = L.mul_w# (L.add_w# o1_1 x2) n
- !(# _, o2 #) = L.mac# u_2 m0 x2 o1_1
+ !u_2 = L.mul_w# (L.add_w# o1_1 x2) n
+ !(# _, o2 #) = L.mac# u_2 m0 x2 o1_1
!(# o2_1, p2_1 #) = L.mac# u_2 m1 p1_2 o2
!(# p2_2, q2_2 #) = L.mac# u_2 m2 q1_3 p2_1
!(# q2_3, r2_3 #) = L.mac# u_2 m3 r1_3 q2_2
- !u_3 = L.mul_w# (L.add_w# o2_1 x3) n
- !(# _, o3 #) = L.mac# u_3 m0 x3 o2_1
+ !u_3 = L.mul_w# (L.add_w# o2_1 x3) n
+ !(# _, o3 #) = L.mac# u_3 m0 x3 o2_1
!(# o3_1, p3_1 #) = L.mac# u_3 m1 p2_2 o3
!(# p3_2, q3_2 #) = L.mac# u_3 m2 q2_3 p3_1
!(# q3_3, r3_3 #) = L.mac# u_3 m3 r2_3 q3_2
@@ -235,75 +235,75 @@ mul_inner# (# x0, x1, x2, x3 #) (# y0, y1, y2, y3 #) =
let !(# m0, m1, m2, m3 #) =
(# Limb 0xFFFFFFFEFFFFFC2F##, Limb 0xFFFFFFFFFFFFFFFF##
, Limb 0xFFFFFFFFFFFFFFFF##, Limb 0xFFFFFFFFFFFFFFFF## #)
- !n = Limb 0xD838091DD2253531##
- !axy0 = L.mul_c# x0 y0
- !u0 = L.mul_w# (lo axy0) n
- !(# (# _, a0 #), c0 #) = W.add_o# (L.mul_c# u0 m0) axy0
- !carry0 = (# a0, c0 #)
- !axy0_1 = L.mul_c# x0 y1
- !umc0_1 = W.add_w# (L.mul_c# u0 m1) carry0
+ !n = Limb 0xD838091DD2253531##
+ !axy0 = L.mul_c# x0 y0
+ !u0 = L.mul_w# (lo axy0) n
+ !(# (# _, a0 #), c0 #) = W.add_o# (L.mul_c# u0 m0) axy0
+ !carry0 = (# a0, c0 #)
+ !axy0_1 = L.mul_c# x0 y1
+ !umc0_1 = W.add_w# (L.mul_c# u0 m1) carry0
!(# (# o0, ab0_1 #), c0_1 #) = W.add_o# axy0_1 umc0_1
- !carry0_1 = (# ab0_1, c0_1 #)
- !axy0_2 = L.mul_c# x0 y2
- !umc0_2 = W.add_w# (L.mul_c# u0 m2) carry0_1
+ !carry0_1 = (# ab0_1, c0_1 #)
+ !axy0_2 = L.mul_c# x0 y2
+ !umc0_2 = W.add_w# (L.mul_c# u0 m2) carry0_1
!(# (# p0, ab0_2 #), c0_2 #) = W.add_o# axy0_2 umc0_2
- !carry0_2 = (# ab0_2, c0_2 #)
- !axy0_3 = L.mul_c# x0 y3
- !umc0_3 = W.add_w# (L.mul_c# u0 m3) carry0_2
+ !carry0_2 = (# ab0_2, c0_2 #)
+ !axy0_3 = L.mul_c# x0 y3
+ !umc0_3 = W.add_w# (L.mul_c# u0 m3) carry0_2
!(# (# q0, ab0_3 #), c0_3 #) = W.add_o# axy0_3 umc0_3
- !carry0_3 = (# ab0_3, c0_3 #)
- !(# r0, mc0 #) = carry0_3
- !axy1 = wadd_w# (L.mul_c# x1 y0) o0
- !u1 = L.mul_w# (lo axy1) n
- !(# (# _, a1 #), c1 #) = W.add_o# (L.mul_c# u1 m0) axy1
- !carry1 = (# a1, c1 #)
- !axy1_1 = wadd_w# (L.mul_c# x1 y1) p0
- !umc1_1 = W.add_w# (L.mul_c# u1 m1) carry1
+ !carry0_3 = (# ab0_3, c0_3 #)
+ !(# r0, mc0 #) = carry0_3
+ !axy1 = wadd_w# (L.mul_c# x1 y0) o0
+ !u1 = L.mul_w# (lo axy1) n
+ !(# (# _, a1 #), c1 #) = W.add_o# (L.mul_c# u1 m0) axy1
+ !carry1 = (# a1, c1 #)
+ !axy1_1 = wadd_w# (L.mul_c# x1 y1) p0
+ !umc1_1 = W.add_w# (L.mul_c# u1 m1) carry1
!(# (# o1, ab1_1 #), c1_1 #) = W.add_o# axy1_1 umc1_1
- !carry1_1 = (# ab1_1, c1_1 #)
- !axy1_2 = wadd_w# (L.mul_c# x1 y2) q0
- !umc1_2 = W.add_w# (L.mul_c# u1 m2) carry1_1
+ !carry1_1 = (# ab1_1, c1_1 #)
+ !axy1_2 = wadd_w# (L.mul_c# x1 y2) q0
+ !umc1_2 = W.add_w# (L.mul_c# u1 m2) carry1_1
!(# (# p1, ab1_2 #), c1_2 #) = W.add_o# axy1_2 umc1_2
- !carry1_2 = (# ab1_2, c1_2 #)
- !axy1_3 = wadd_w# (L.mul_c# x1 y3) r0
- !umc1_3 = W.add_w# (L.mul_c# u1 m3) carry1_2
+ !carry1_2 = (# ab1_2, c1_2 #)
+ !axy1_3 = wadd_w# (L.mul_c# x1 y3) r0
+ !umc1_3 = W.add_w# (L.mul_c# u1 m3) carry1_2
!(# (# q1, ab1_3 #), c1_3 #) = W.add_o# axy1_3 umc1_3
- !carry1_3 = (# ab1_3, c1_3 #)
- !(# r1, mc1 #) = wadd_w# carry1_3 mc0
- !axy2 = wadd_w# (L.mul_c# x2 y0) o1
- !u2 = L.mul_w# (lo axy2) n
- !(# (# _, a2 #), c2 #) = W.add_o# (L.mul_c# u2 m0) axy2
- !carry2 = (# a2, c2 #)
- !axy2_1 = wadd_w# (L.mul_c# x2 y1) p1
- !umc2_1 = W.add_w# (L.mul_c# u2 m1) carry2
+ !carry1_3 = (# ab1_3, c1_3 #)
+ !(# r1, mc1 #) = wadd_w# carry1_3 mc0
+ !axy2 = wadd_w# (L.mul_c# x2 y0) o1
+ !u2 = L.mul_w# (lo axy2) n
+ !(# (# _, a2 #), c2 #) = W.add_o# (L.mul_c# u2 m0) axy2
+ !carry2 = (# a2, c2 #)
+ !axy2_1 = wadd_w# (L.mul_c# x2 y1) p1
+ !umc2_1 = W.add_w# (L.mul_c# u2 m1) carry2
!(# (# o2, ab2_1 #), c2_1 #) = W.add_o# axy2_1 umc2_1
- !carry2_1 = (# ab2_1, c2_1 #)
- !axy2_2 = wadd_w# (L.mul_c# x2 y2) q1
- !umc2_2 = W.add_w# (L.mul_c# u2 m2) carry2_1
+ !carry2_1 = (# ab2_1, c2_1 #)
+ !axy2_2 = wadd_w# (L.mul_c# x2 y2) q1
+ !umc2_2 = W.add_w# (L.mul_c# u2 m2) carry2_1
!(# (# p2, ab2_2 #), c2_2 #) = W.add_o# axy2_2 umc2_2
- !carry2_2 = (# ab2_2, c2_2 #)
- !axy2_3 = wadd_w# (L.mul_c# x2 y3) r1
- !umc2_3 = W.add_w# (L.mul_c# u2 m3) carry2_2
+ !carry2_2 = (# ab2_2, c2_2 #)
+ !axy2_3 = wadd_w# (L.mul_c# x2 y3) r1
+ !umc2_3 = W.add_w# (L.mul_c# u2 m3) carry2_2
!(# (# q2, ab2_3 #), c2_3 #) = W.add_o# axy2_3 umc2_3
- !carry2_3 = (# ab2_3, c2_3 #)
- !(# r2, mc2 #) = wadd_w# carry2_3 mc1
- !axy3 = wadd_w# (L.mul_c# x3 y0) o2
- !u3 = L.mul_w# (lo axy3) n
- !(# (# _, a3 #), c3 #) = W.add_o# (L.mul_c# u3 m0) axy3
- !carry3 = (# a3, c3 #)
- !axy3_1 = wadd_w# (L.mul_c# x3 y1) p2
- !umc3_1 = W.add_w# (L.mul_c# u3 m1) carry3
+ !carry2_3 = (# ab2_3, c2_3 #)
+ !(# r2, mc2 #) = wadd_w# carry2_3 mc1
+ !axy3 = wadd_w# (L.mul_c# x3 y0) o2
+ !u3 = L.mul_w# (lo axy3) n
+ !(# (# _, a3 #), c3 #) = W.add_o# (L.mul_c# u3 m0) axy3
+ !carry3 = (# a3, c3 #)
+ !axy3_1 = wadd_w# (L.mul_c# x3 y1) p2
+ !umc3_1 = W.add_w# (L.mul_c# u3 m1) carry3
!(# (# o3, ab3_1 #), c3_1 #) = W.add_o# axy3_1 umc3_1
- !carry3_1 = (# ab3_1, c3_1 #)
- !axy3_2 = wadd_w# (L.mul_c# x3 y2) q2
- !umc3_2 = W.add_w# (L.mul_c# u3 m2) carry3_1
+ !carry3_1 = (# ab3_1, c3_1 #)
+ !axy3_2 = wadd_w# (L.mul_c# x3 y2) q2
+ !umc3_2 = W.add_w# (L.mul_c# u3 m2) carry3_1
!(# (# p3, ab3_2 #), c3_2 #) = W.add_o# axy3_2 umc3_2
- !carry3_2 = (# ab3_2, c3_2 #)
- !axy3_3 = wadd_w# (L.mul_c# x3 y3) r2
- !umc3_3 = W.add_w# (L.mul_c# u3 m3) carry3_2
+ !carry3_2 = (# ab3_2, c3_2 #)
+ !axy3_3 = wadd_w# (L.mul_c# x3 y3) r2
+ !umc3_3 = W.add_w# (L.mul_c# u3 m3) carry3_2
!(# (# q3, ab3_3 #), c3_3 #) = W.add_o# axy3_3 umc3_3
- !carry3_3 = (# ab3_3, c3_3 #)
- !(# r3, mc3 #) = wadd_w# carry3_3 mc2
+ !carry3_3 = (# ab3_3, c3_3 #)
+ !(# r3, mc3 #) = wadd_w# carry3_3 mc2
in (# (# o3, p3, q3, r3 #), mc3 #)
{-# INLINE mul_inner# #-}
diff --git a/lib/Numeric/Montgomery/Secp256k1/Scalar.hs b/lib/Numeric/Montgomery/Secp256k1/Scalar.hs
@@ -127,31 +127,31 @@ redc_inner# (# u0, u1, u2, u3 #) (# l0, l1, l2, l3 #) =
let !(# m0, m1, m2, m3 #) =
(# Limb 0xBFD25E8CD0364141##, Limb 0xBAAEDCE6AF48A03B##
, Limb 0xFFFFFFFFFFFFFFFE##, Limb 0xFFFFFFFFFFFFFFFF## #)
- !n = Limb 0x4B0DFF665588B13F##
- !w_0 = L.mul_w# l0 n
- !(# _, c_00 #) = L.mac# w_0 m0 l0 (Limb 0##)
+ !n = Limb 0x4B0DFF665588B13F##
+ !w_0 = L.mul_w# l0 n
+ !(# _, c_00 #) = L.mac# w_0 m0 l0 (Limb 0##)
!(# l0_1, c_01 #) = L.mac# w_0 m1 l1 c_00
!(# l0_2, c_02 #) = L.mac# w_0 m2 l2 c_01
!(# l0_3, c_03 #) = L.mac# w_0 m3 l3 c_02
- !(# u_0, mc_0 #) = L.add_c# u0 c_03 (Limb 0##)
- !w_1 = L.mul_w# l0_1 n
- !(# _, c_10 #) = L.mac# w_1 m0 l0_1 (Limb 0##)
+ !(# u_0, mc_0 #) = L.add_c# u0 c_03 (Limb 0##)
+ !w_1 = L.mul_w# l0_1 n
+ !(# _, c_10 #) = L.mac# w_1 m0 l0_1 (Limb 0##)
!(# l1_1, c_11 #) = L.mac# w_1 m1 l0_2 c_10
!(# l1_2, c_12 #) = L.mac# w_1 m2 l0_3 c_11
!(# u1_3, c_13 #) = L.mac# w_1 m3 u_0 c_12
- !(# u_1, mc_1 #) = L.add_c# u1 c_13 mc_0
- !w_2 = L.mul_w# l1_1 n
- !(# _, c_20 #) = L.mac# w_2 m0 l1_1 (Limb 0##)
+ !(# u_1, mc_1 #) = L.add_c# u1 c_13 mc_0
+ !w_2 = L.mul_w# l1_1 n
+ !(# _, c_20 #) = L.mac# w_2 m0 l1_1 (Limb 0##)
!(# l2_1, c_21 #) = L.mac# w_2 m1 l1_2 c_20
!(# u2_2, c_22 #) = L.mac# w_2 m2 u1_3 c_21
!(# u2_3, c_23 #) = L.mac# w_2 m3 u_1 c_22
- !(# u_2, mc_2 #) = L.add_c# u2 c_23 mc_1
- !w_3 = L.mul_w# l2_1 n
- !(# _, c_30 #) = L.mac# w_3 m0 l2_1 (Limb 0##)
+ !(# u_2, mc_2 #) = L.add_c# u2 c_23 mc_1
+ !w_3 = L.mul_w# l2_1 n
+ !(# _, c_30 #) = L.mac# w_3 m0 l2_1 (Limb 0##)
!(# u3_1, c_31 #) = L.mac# w_3 m1 u2_2 c_30
!(# u3_2, c_32 #) = L.mac# w_3 m2 u2_3 c_31
!(# u3_3, c_33 #) = L.mac# w_3 m3 u_2 c_32
- !(# u_3, mc_3 #) = L.add_c# u3 c_33 mc_2
+ !(# u_3, mc_3 #) = L.add_c# u3 c_33 mc_2
in (# (# u3_1, u3_2, u3_3, u_3 #), mc_3 #)
{-# INLINE redc_inner# #-}
@@ -186,24 +186,24 @@ retr_inner# (# x0, x1, x2, x3 #) =
let !(# m0, m1, m2, m3 #) =
(# Limb 0xBFD25E8CD0364141##, Limb 0xBAAEDCE6AF48A03B##
, Limb 0xFFFFFFFFFFFFFFFE##, Limb 0xFFFFFFFFFFFFFFFF## #)
- !n = Limb 0x4B0DFF665588B13F##
- !u_0 = L.mul_w# x0 n
- !(# _, o0 #) = L.mac# u_0 m0 x0 (Limb 0##)
+ !n = Limb 0x4B0DFF665588B13F##
+ !u_0 = L.mul_w# x0 n
+ !(# _, o0 #) = L.mac# u_0 m0 x0 (Limb 0##)
!(# o0_1, p0_1 #) = L.mac# u_0 m1 (Limb 0##) o0
!(# p0_2, q0_2 #) = L.mac# u_0 m2 (Limb 0##) p0_1
!(# q0_3, r0_3 #) = L.mac# u_0 m3 (Limb 0##) q0_2
- !u_1 = L.mul_w# (L.add_w# o0_1 x1) n
- !(# _, o1 #) = L.mac# u_1 m0 x1 o0_1
+ !u_1 = L.mul_w# (L.add_w# o0_1 x1) n
+ !(# _, o1 #) = L.mac# u_1 m0 x1 o0_1
!(# o1_1, p1_1 #) = L.mac# u_1 m1 p0_2 o1
!(# p1_2, q1_2 #) = L.mac# u_1 m2 q0_3 p1_1
!(# q1_3, r1_3 #) = L.mac# u_1 m3 r0_3 q1_2
- !u_2 = L.mul_w# (L.add_w# o1_1 x2) n
- !(# _, o2 #) = L.mac# u_2 m0 x2 o1_1
+ !u_2 = L.mul_w# (L.add_w# o1_1 x2) n
+ !(# _, o2 #) = L.mac# u_2 m0 x2 o1_1
!(# o2_1, p2_1 #) = L.mac# u_2 m1 p1_2 o2
!(# p2_2, q2_2 #) = L.mac# u_2 m2 q1_3 p2_1
!(# q2_3, r2_3 #) = L.mac# u_2 m3 r1_3 q2_2
- !u_3 = L.mul_w# (L.add_w# o2_1 x3) n
- !(# _, o3 #) = L.mac# u_3 m0 x3 o2_1
+ !u_3 = L.mul_w# (L.add_w# o2_1 x3) n
+ !(# _, o3 #) = L.mac# u_3 m0 x3 o2_1
!(# o3_1, p3_1 #) = L.mac# u_3 m1 p2_2 o3
!(# p3_2, q3_2 #) = L.mac# u_3 m2 q2_3 p3_1
!(# q3_3, r3_3 #) = L.mac# u_3 m3 r2_3 q3_2
@@ -234,75 +234,75 @@ mul_inner# (# x0, x1, x2, x3 #) (# y0, y1, y2, y3 #) =
let !(# m0, m1, m2, m3 #) =
(# Limb 0xBFD25E8CD0364141##, Limb 0xBAAEDCE6AF48A03B##
, Limb 0xFFFFFFFFFFFFFFFE##, Limb 0xFFFFFFFFFFFFFFFF## #)
- !n = Limb 0x4B0DFF665588B13F##
- !axy0 = L.mul_c# x0 y0
- !u0 = L.mul_w# (lo axy0) n
- !(# (# _, a0 #), c0 #) = W.add_o# (L.mul_c# u0 m0) axy0
- !carry0 = (# a0, c0 #)
- !axy0_1 = L.mul_c# x0 y1
- !umc0_1 = W.add_w# (L.mul_c# u0 m1) carry0
+ !n = Limb 0x4B0DFF665588B13F##
+ !axy0 = L.mul_c# x0 y0
+ !u0 = L.mul_w# (lo axy0) n
+ !(# (# _, a0 #), c0 #) = W.add_o# (L.mul_c# u0 m0) axy0
+ !carry0 = (# a0, c0 #)
+ !axy0_1 = L.mul_c# x0 y1
+ !umc0_1 = W.add_w# (L.mul_c# u0 m1) carry0
!(# (# o0, ab0_1 #), c0_1 #) = W.add_o# axy0_1 umc0_1
- !carry0_1 = (# ab0_1, c0_1 #)
- !axy0_2 = L.mul_c# x0 y2
- !umc0_2 = W.add_w# (L.mul_c# u0 m2) carry0_1
+ !carry0_1 = (# ab0_1, c0_1 #)
+ !axy0_2 = L.mul_c# x0 y2
+ !umc0_2 = W.add_w# (L.mul_c# u0 m2) carry0_1
!(# (# p0, ab0_2 #), c0_2 #) = W.add_o# axy0_2 umc0_2
- !carry0_2 = (# ab0_2, c0_2 #)
- !axy0_3 = L.mul_c# x0 y3
- !umc0_3 = W.add_w# (L.mul_c# u0 m3) carry0_2
+ !carry0_2 = (# ab0_2, c0_2 #)
+ !axy0_3 = L.mul_c# x0 y3
+ !umc0_3 = W.add_w# (L.mul_c# u0 m3) carry0_2
!(# (# q0, ab0_3 #), c0_3 #) = W.add_o# axy0_3 umc0_3
- !carry0_3 = (# ab0_3, c0_3 #)
- !(# r0, mc0 #) = carry0_3
- !axy1 = wadd_w# (L.mul_c# x1 y0) o0
- !u1 = L.mul_w# (lo axy1) n
- !(# (# _, a1 #), c1 #) = W.add_o# (L.mul_c# u1 m0) axy1
- !carry1 = (# a1, c1 #)
- !axy1_1 = wadd_w# (L.mul_c# x1 y1) p0
- !umc1_1 = W.add_w# (L.mul_c# u1 m1) carry1
+ !carry0_3 = (# ab0_3, c0_3 #)
+ !(# r0, mc0 #) = carry0_3
+ !axy1 = wadd_w# (L.mul_c# x1 y0) o0
+ !u1 = L.mul_w# (lo axy1) n
+ !(# (# _, a1 #), c1 #) = W.add_o# (L.mul_c# u1 m0) axy1
+ !carry1 = (# a1, c1 #)
+ !axy1_1 = wadd_w# (L.mul_c# x1 y1) p0
+ !umc1_1 = W.add_w# (L.mul_c# u1 m1) carry1
!(# (# o1, ab1_1 #), c1_1 #) = W.add_o# axy1_1 umc1_1
- !carry1_1 = (# ab1_1, c1_1 #)
- !axy1_2 = wadd_w# (L.mul_c# x1 y2) q0
- !umc1_2 = W.add_w# (L.mul_c# u1 m2) carry1_1
+ !carry1_1 = (# ab1_1, c1_1 #)
+ !axy1_2 = wadd_w# (L.mul_c# x1 y2) q0
+ !umc1_2 = W.add_w# (L.mul_c# u1 m2) carry1_1
!(# (# p1, ab1_2 #), c1_2 #) = W.add_o# axy1_2 umc1_2
- !carry1_2 = (# ab1_2, c1_2 #)
- !axy1_3 = wadd_w# (L.mul_c# x1 y3) r0
- !umc1_3 = W.add_w# (L.mul_c# u1 m3) carry1_2
+ !carry1_2 = (# ab1_2, c1_2 #)
+ !axy1_3 = wadd_w# (L.mul_c# x1 y3) r0
+ !umc1_3 = W.add_w# (L.mul_c# u1 m3) carry1_2
!(# (# q1, ab1_3 #), c1_3 #) = W.add_o# axy1_3 umc1_3
- !carry1_3 = (# ab1_3, c1_3 #)
- !(# r1, mc1 #) = wadd_w# carry1_3 mc0
- !axy2 = wadd_w# (L.mul_c# x2 y0) o1
- !u2 = L.mul_w# (lo axy2) n
- !(# (# _, a2 #), c2 #) = W.add_o# (L.mul_c# u2 m0) axy2
- !carry2 = (# a2, c2 #)
- !axy2_1 = wadd_w# (L.mul_c# x2 y1) p1
- !umc2_1 = W.add_w# (L.mul_c# u2 m1) carry2
+ !carry1_3 = (# ab1_3, c1_3 #)
+ !(# r1, mc1 #) = wadd_w# carry1_3 mc0
+ !axy2 = wadd_w# (L.mul_c# x2 y0) o1
+ !u2 = L.mul_w# (lo axy2) n
+ !(# (# _, a2 #), c2 #) = W.add_o# (L.mul_c# u2 m0) axy2
+ !carry2 = (# a2, c2 #)
+ !axy2_1 = wadd_w# (L.mul_c# x2 y1) p1
+ !umc2_1 = W.add_w# (L.mul_c# u2 m1) carry2
!(# (# o2, ab2_1 #), c2_1 #) = W.add_o# axy2_1 umc2_1
- !carry2_1 = (# ab2_1, c2_1 #)
- !axy2_2 = wadd_w# (L.mul_c# x2 y2) q1
- !umc2_2 = W.add_w# (L.mul_c# u2 m2) carry2_1
+ !carry2_1 = (# ab2_1, c2_1 #)
+ !axy2_2 = wadd_w# (L.mul_c# x2 y2) q1
+ !umc2_2 = W.add_w# (L.mul_c# u2 m2) carry2_1
!(# (# p2, ab2_2 #), c2_2 #) = W.add_o# axy2_2 umc2_2
- !carry2_2 = (# ab2_2, c2_2 #)
- !axy2_3 = wadd_w# (L.mul_c# x2 y3) r1
- !umc2_3 = W.add_w# (L.mul_c# u2 m3) carry2_2
+ !carry2_2 = (# ab2_2, c2_2 #)
+ !axy2_3 = wadd_w# (L.mul_c# x2 y3) r1
+ !umc2_3 = W.add_w# (L.mul_c# u2 m3) carry2_2
!(# (# q2, ab2_3 #), c2_3 #) = W.add_o# axy2_3 umc2_3
- !carry2_3 = (# ab2_3, c2_3 #)
- !(# r2, mc2 #) = wadd_w# carry2_3 mc1
- !axy3 = wadd_w# (L.mul_c# x3 y0) o2
- !u3 = L.mul_w# (lo axy3) n
- !(# (# _, a3 #), c3 #) = W.add_o# (L.mul_c# u3 m0) axy3
- !carry3 = (# a3, c3 #)
- !axy3_1 = wadd_w# (L.mul_c# x3 y1) p2
- !umc3_1 = W.add_w# (L.mul_c# u3 m1) carry3
+ !carry2_3 = (# ab2_3, c2_3 #)
+ !(# r2, mc2 #) = wadd_w# carry2_3 mc1
+ !axy3 = wadd_w# (L.mul_c# x3 y0) o2
+ !u3 = L.mul_w# (lo axy3) n
+ !(# (# _, a3 #), c3 #) = W.add_o# (L.mul_c# u3 m0) axy3
+ !carry3 = (# a3, c3 #)
+ !axy3_1 = wadd_w# (L.mul_c# x3 y1) p2
+ !umc3_1 = W.add_w# (L.mul_c# u3 m1) carry3
!(# (# o3, ab3_1 #), c3_1 #) = W.add_o# axy3_1 umc3_1
- !carry3_1 = (# ab3_1, c3_1 #)
- !axy3_2 = wadd_w# (L.mul_c# x3 y2) q2
- !umc3_2 = W.add_w# (L.mul_c# u3 m2) carry3_1
+ !carry3_1 = (# ab3_1, c3_1 #)
+ !axy3_2 = wadd_w# (L.mul_c# x3 y2) q2
+ !umc3_2 = W.add_w# (L.mul_c# u3 m2) carry3_1
!(# (# p3, ab3_2 #), c3_2 #) = W.add_o# axy3_2 umc3_2
- !carry3_2 = (# ab3_2, c3_2 #)
- !axy3_3 = wadd_w# (L.mul_c# x3 y3) r2
- !umc3_3 = W.add_w# (L.mul_c# u3 m3) carry3_2
+ !carry3_2 = (# ab3_2, c3_2 #)
+ !axy3_3 = wadd_w# (L.mul_c# x3 y3) r2
+ !umc3_3 = W.add_w# (L.mul_c# u3 m3) carry3_2
!(# (# q3, ab3_3 #), c3_3 #) = W.add_o# axy3_3 umc3_3
- !carry3_3 = (# ab3_3, c3_3 #)
- !(# r3, mc3 #) = wadd_w# carry3_3 mc2
+ !carry3_3 = (# ab3_3, c3_3 #)
+ !(# r3, mc3 #) = wadd_w# carry3_3 mc2
in (# (# o3, p3, q3, r3 #), mc3 #)
{-# INLINE mul_inner# #-}