simplify further,use max() on elements
authorLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 22 Apr 2019 12:29:50 +0000 (13:29 +0100)
committerLuke Kenneth Casson Leighton <lkcl@lkcl.net>
Mon, 22 Apr 2019 12:29:50 +0000 (13:29 +0100)
remove function, use elements=[0] to accumulate exponents

TLB/src/LFSR2.py

index 4baf2055db458fc58c17b78faa02caf1a14fe685..1bddc1a8c1797cb1ece5a0f49baf308e457c6f7c 100644 (file)
@@ -8,22 +8,18 @@ class LFSRPolynomial(set):
     """ implements a polynomial for use in LFSR
     """
     def __init__(self, exponents=()):
-        max_exponent = 0
-
-        def elements():
-            nonlocal max_exponent
-            yield 0  # 0 is always required
-            for e in exponents:
-                if not isinstance(e, int):
-                    raise TypeError("exponent %s must be an integer" % repr(e))
-                if e < 0:
-                    raise ValueError("exponent %d must not be negative" % e)
-                if e > max_exponent:
-                    max_exponent = e
-                if e != 0: # skip zeros
-                    yield e
-        set.__init__(self, elements())
-        self.max_exponent = max_exponent
+        self.max_exponent = 0
+        elements = [0] # 0 is always required
+        for e in exponents:
+            if not isinstance(e, int):
+                raise TypeError("exponent %s must be an integer" % repr(e))
+            if e < 0:
+                raise ValueError("exponent %d must not be negative" % e)
+            self.max_exponent = max(e, self.max_exponent)
+            if e != 0: # skip any zeros
+                elements.append(e)
+
+        set.__init__(self, elements)
 
     @property
     def exponents(self):