|
6 | 6 | import numbers |
7 | 7 | import operator |
8 | 8 | from functools import reduce, cmp_to_key |
| 9 | +import sys |
9 | 10 |
|
10 | 11 | from sympy import ( |
11 | 12 | Symbol, Function, S, expand, Add, |
@@ -577,18 +578,15 @@ def __mul__(self, A): |
577 | 578 | def __rmul__(self, A): |
578 | 579 | return Mv(expand(A * self.obj), ga=self.Ga) |
579 | 580 |
|
580 | | - def __div__(self, A): |
581 | | - if isinstance(A,Mv): |
582 | | - return self * A.inv() |
583 | | - else: |
584 | | - return self * (S(1)/A) |
585 | | - |
586 | 581 | def __truediv__(self, A): |
587 | 582 | if isinstance(A,Mv): |
588 | 583 | return self * A.inv() |
589 | 584 | else: |
590 | 585 | return self * (S(1)/A) |
591 | 586 |
|
| 587 | + if sys.version_info.major < 3: |
| 588 | + __div__ = __truediv__ |
| 589 | + |
592 | 590 | def __str__(self): |
593 | 591 | if printer.GaLatexPrinter.latex_flg: |
594 | 592 | Printer = printer.GaLatexPrinter |
@@ -2199,23 +2197,19 @@ def TSimplify(self): |
2199 | 2197 | new_terms.append((metric.Simp.apply(coef), pdiff)) |
2200 | 2198 | return Dop(new_terms, ga=self.Ga) |
2201 | 2199 |
|
2202 | | - def __div__(self, a): |
2203 | | - if isinstance(a, (Mv, Dop)): |
2204 | | - raise TypeError('!!!!Can only divide Dop by sympy scalar expression!!!!') |
2205 | | - else: |
2206 | | - return (1/a) * self |
| 2200 | + def __truediv__(self, dopr): |
| 2201 | + if isinstance(dopr, (Dop, Mv)): |
| 2202 | + raise TypeError('In Dop.__truediv__ dopr must be a sympy scalar.') |
| 2203 | + return Dop([ |
| 2204 | + (coef / dopr, pdiff) for (coef, pdiff) in self.terms |
| 2205 | + ], ga=self.Ga) |
| 2206 | + |
| 2207 | + if sys.version_info.major < 3: |
| 2208 | + __div__ = __truediv__ |
2207 | 2209 |
|
2208 | 2210 | def __mul__(self, dopr): # * geometric product |
2209 | 2211 | return Dop.Mul(self, dopr, op='*') |
2210 | 2212 |
|
2211 | | - def __truediv__(self, dopr): |
2212 | | - if isinstance(dopr, (Dop, Mv)): |
2213 | | - raise ValueError('In Dop.__truediv__ dopr must be a sympy scalar.') |
2214 | | - terms = [] |
2215 | | - for term in self.terms: |
2216 | | - terms.append((term[0]/dopr,term[1])) |
2217 | | - return Dop(terms, ga= self.Ga) |
2218 | | - |
2219 | 2213 | def __rmul__(self, dopl): # * geometric product |
2220 | 2214 | return Dop.Mul(dopl, self, op='*') |
2221 | 2215 |
|
|
0 commit comments