Răsfoiți Sursa

delete x^0 and skip terms with 0 coefficients from multivariate polynomials

narodnik 5 ani în urmă
părinte
comite
6725b6c2d3
1 a modificat fișierele cu 11 adăugiri și 0 ștergeri
  1. 11 0
      scripts/halo/multipoly.py

+ 11 - 0
scripts/halo/multipoly.py

@@ -19,6 +19,11 @@ class MultiplyExpression:
         self.coeff = None
         self.symbols = {}
 
+    def clean(self):
+        for symbol in list(self.symbols.keys()):
+            if self.symbols[symbol] == 0:
+                del self.symbols[symbol]
+
     def set_symbol(self, var_name, power):
         self.symbols[var_name] = power
 
@@ -75,6 +80,12 @@ class MultivariatePolynomial:
         if isinstance(term, Variable):
             term = term.termify()
 
+        # Delete ^0 variables
+        term.clean()
+        # Skip zero terms
+        if term.coeff is None or term.coeff == 0:
+            return self
+
         result = MultivariatePolynomial(self.terms[:])
         result.terms.append(term)
         return result