reduce 4-repeats of identical code down to 1 copy with indices in powmod.py
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Wed, 27 Sep 2023 18:44:43 +0000 (19:44 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Sat, 30 Sep 2023 13:36:32 +0000 (14:36 +0100)
src/openpower/test/bigint/powmod.py

index d25486d395910e22f32494c3e95b714b52cee2ea..7e17cc9ac244230c621e1a01ea65c3013347db6e 100644 (file)
@@ -97,29 +97,13 @@ def python_mul_algorithm2(a, b):
 
     y = [0] * 8
     t = [0] * 5
-    y[0], ca = addc(y[0], t[0])
-    for i in range(4):
-        y[1 + i], ca = adde(y[1 + i], t[1 + i], ca)
-    for i in range(4):
-        y[i], y[4] = maddedu(a[0], b[i], y[4])
-    t[4] = 0
-    for i in range(4):
-        t[i], t[4] = maddedu(a[1], b[i], t[4])
-    y[1], ca = addc(y[1], t[0])
-    for i in range(4):
-        y[2 + i], ca = adde(y[2 + i], t[1 + i], ca)
-    t[4] = 0
-    for i in range(4):
-        t[i], t[4] = maddedu(a[2], b[i], t[4])
-    y[2], ca = addc(y[2], t[0])
-    for i in range(4):
-        y[3 + i], ca = adde(y[3 + i], t[1 + i], ca)
-    t[4] = 0
-    for i in range(4):
-        t[i], t[4] = maddedu(a[3], b[i], t[4])
-    y[3], ca = addc(y[3], t[0])
-    for i in range(4):
-        y[4 + i], ca = adde(y[4 + i], t[1 + i], ca)
+    for iy in range(4):
+        t[4] = 0
+        for i in range(4):
+            t[i], t[4] = maddedu(a[iy], b[i], t[4])
+        y[iy], ca = addc(y[iy], t[0])
+        for i in range(4):
+            y[1 + iy + i], ca = adde(y[1 + iy + i], t[1 + i], ca)
     return y