Feat: Polynomial are displayed in nicer order!

This commit is contained in:
2019-10-30 21:12:58 +01:00
parent f8b24472d1
commit f12ec38746
7 changed files with 61 additions and 33 deletions

View File

@@ -95,10 +95,10 @@ def moscalar_momonomial(left, right):
>>> a = MOnumber(2)
>>> b = MOMonomial(3, 'x', 4)
>>> add(a, b)
<MOpolynomial 2 + 3x^4>
<MOpolynomial 3x^4 + 2>
>>> a = MOFraction(1, 5)
>>> add(a, b)
<MOpolynomial 1 / 5 + 3x^4>
<MOpolynomial 3x^4 + 1 / 5>
"""
return MOpolynomial(right.variable, {right.power: right.coefficient, 0: left})
@@ -126,10 +126,10 @@ def moscalar_mopolynomial(left, right):
>>> a = MOnumber(2)
>>> b = MOpolynomial('x', [0, 2, 3])
>>> add(a, b)
<MOpolynomial 2 + 3x^2 + 2x>
<MOpolynomial 3x^2 + 2x + 2>
>>> a = MOFraction(1, 5)
>>> add(a, b)
<MOpolynomial 1 / 5 + 3x^2 + 2x>
<MOpolynomial 3x^2 + 2x + 1 / 5>
"""
if 0 in right.coefficients.keys():
raise NotImplementedError(
@@ -237,7 +237,7 @@ def mostr_mopolynomial(left, right):
>>> a = MOstr("x")
>>> b = MOpolynomial('x', [1, 0, 3])
>>> add(a, b)
<MOpolynomial x + 3x^2 + 1>
<MOpolynomial 3x^2 + x + 1>
"""
if 1 in right.coefficients.keys():
raise NotImplementedError("Polynomial with no constant, calculus to do")
@@ -255,7 +255,7 @@ def mopolynomial_mostr(left, right):
>>> a = MOpolynomial('x', [1, 0, 3])
>>> b = MOstr("x")
>>> add(a, b)
<MOpolynomial 3x^2 + 1 + x>
<MOpolynomial 3x^2 + x + 1>
"""
if 1 in left.coefficients.keys():
raise NotImplementedError("Polynomial with no constant, calculus to do")
@@ -272,7 +272,7 @@ def mostrpower_mopolynomial(left, right):
>>> a = MOstrPower("x", 2)
>>> b = MOpolynomial('x', [1, 2, 0, 4])
>>> add(a, b)
<MOpolynomial x^2 + 4x^3 + 2x + 1>
<MOpolynomial 4x^3 + x^2 + 2x + 1>
"""
if left.power in right.coefficients.keys():
raise NotImplementedError("Degree in common, need to compute")
@@ -290,7 +290,7 @@ def mopolynomial_mostrpower(left, right):
>>> a = MOpolynomial('x', [1, 2, 0, 4])
>>> b = MOstrPower("x", 2)
>>> add(a, b)
<MOpolynomial 4x^3 + 2x + 1 + x^2>
<MOpolynomial 4x^3 + x^2 + 2x + 1>
"""
if right.power in left.coefficients.keys():
raise NotImplementedError("Degree in common, need to compute")
@@ -307,7 +307,7 @@ def momonomial_mopolynomial(left, right):
>>> a = MOMonomial(3, "x", 2)
>>> b = MOpolynomial('x', [1, 2, 0, 4])
>>> add(a, b)
<MOpolynomial 3x^2 + 4x^3 + 2x + 1>
<MOpolynomial 4x^3 + 3x^2 + 2x + 1>
"""
if left.power in right.coefficients.keys():
raise NotImplementedError("Degree in common, need to compute")
@@ -325,7 +325,7 @@ def mopolynomial_momonomial(left, right):
>>> a = MOpolynomial('x', [1, 2, 0, 4])
>>> b = MOMonomial(3, "x", 2)
>>> add(a, b)
<MOpolynomial 4x^3 + 2x + 1 + 3x^2>
<MOpolynomial 4x^3 + 3x^2 + 2x + 1>
"""
if right.power in left.coefficients.keys():
raise NotImplementedError("Degree in common, need to compute")
@@ -342,9 +342,9 @@ def mopolynomial_mopolynomial(left, right):
>>> a = MOpolynomial('x', [1, 0, 3])
>>> b = MOpolynomial('x', [0, 2, 0, 4])
>>> add(a, b)
<MOpolynomial 3x^2 + 1 + 4x^3 + 2x>
<MOpolynomial 4x^3 + 3x^2 + 2x + 1>
>>> add(b, a)
<MOpolynomial 4x^3 + 2x + 3x^2 + 1>
<MOpolynomial 4x^3 + 3x^2 + 2x + 1>
"""
common_degree = set(left.monomials.keys()).intersection(right.monomials.keys())
if common_degree:
@@ -361,7 +361,7 @@ def mostr_monomial(left, right):
>>> a = MOstr('x')
>>> b = MOMonomial(3, 'x', 4)
>>> add(a, b)
<MOpolynomial x + 3x^4>
<MOpolynomial 3x^4 + x>
"""
if right.power == 1:
raise NotImplementedError("Monomial is deg 1, need to compute")
@@ -391,7 +391,7 @@ def mostrpower_monomial(left, right):
>>> a = MOstrPower('x', 2)
>>> b = MOMonomial(3, 'x', 4)
>>> add(a, b)
<MOpolynomial x^2 + 3x^4>
<MOpolynomial 3x^4 + x^2>
"""
if left.power == right.power:
raise NotImplementedError(