move pack/unpack_poly to separate file
authorJacob Lifshay <programmerjake@gmail.com>
Tue, 15 Mar 2022 05:24:12 +0000 (22:24 -0700)
committerJacob Lifshay <programmerjake@gmail.com>
Tue, 15 Mar 2022 05:24:12 +0000 (22:24 -0700)
openpower/sv/bitmanip.mdwn
openpower/sv/bitmanip/pack_poly.py [new file with mode: 0644]

index 75703e79e04ea49292ad84e99cb90d44e128a8e5..6ce42a9917d1800868c58c4aa1b224c8e26e3e82 100644 (file)
@@ -533,23 +533,7 @@ instruction is not provided since the `xor[i]` instruction can be used instead.
 These are operations on polynomials with coefficients in `GF(2)`, with the
 polynomial's coefficients packed into integers with the following algorithm:
 
-```python
-def pack_poly(poly):
-    """`poly` is a list where `poly[i]` is the coefficient for `x ** i`"""
-    retval = 0
-    for i, v in enumerate(poly):
-        retval |= v << i
-    return retval
-
-def unpack_poly(v):
-    """returns a list `poly`, where `poly[i]` is the coefficient for `x ** i`.
-    """
-    poly = []
-    while v != 0:
-        poly.append(v & 1)
-        v >>= 1
-    return poly
-```
+[[!inline pagenames="openpower/sv/bitmanip/pack_poly.py" raw="true" feeds="no" actions="yes"]]
 
 ## Carry-less Multiply Instructions
 
diff --git a/openpower/sv/bitmanip/pack_poly.py b/openpower/sv/bitmanip/pack_poly.py
new file mode 100644 (file)
index 0000000..f5ab644
--- /dev/null
@@ -0,0 +1,19 @@
+"""Polynomials with GF(2) coefficients."""
+
+
+def pack_poly(poly):
+    """`poly` is a list where `poly[i]` is the coefficient for `x ** i`"""
+    retval = 0
+    for i, v in enumerate(poly):
+        retval |= v << i
+    return retval
+
+
+def unpack_poly(v):
+    """returns a list `poly`, where `poly[i]` is the coefficient for `x ** i`.
+    """
+    poly = []
+    while v != 0:
+        poly.append(v & 1)
+        v >>= 1
+    return poly