예제 #1
0
def my_compare(a, b):
   main_var = s
   p1, p2, p3 = Wild("p1"), Wild("p2"), Wild("p3")
   r_a = a.match(p1 * s**p3)
   r_b = b.match(p1 * s**p3)
   if r_a is not None and r_b is not None:
       c = Basic.compare(r_a[p3], r_b[p3])
       if c!=0:
           return c

   return Basic._compare_pretty(a,b)
예제 #2
0
    def _compare_terms(self, a, b):
        """Compare two terms using data from Printer.analyze(). """
        a_coeff, a_monom, a_ncpart, _ = a
        b_coeff, b_monom, b_ncpart, _ = b

        result = self.order(a_monom, b_monom)

        if not result:
            if not (a_ncpart or b_ncpart):
                result = cmp(a_coeff, b_coeff)
            else:
                result = Basic._compare_pretty(Mul(*a_ncpart), Mul(*b_ncpart))

                if not result:
                    result = cmp(a_coeff, b_coeff)

        if not self.reverse:
            return -result
        else:
            return result
예제 #3
0
파일: printer.py 프로젝트: tovrstra/sympy
    def _compare_terms(self, a, b):
        """Compare two terms using data from Printer.analyze(). """
        a_coeff, a_monom, a_ncpart, _ = a
        b_coeff, b_monom, b_ncpart, _ = b

        result = self.order(a_monom, b_monom)

        if not result:
            if not (a_ncpart or b_ncpart):
                result = cmp(a_coeff, b_coeff)
            else:
                result = Basic._compare_pretty(Mul(*a_ncpart), Mul(*b_ncpart))

                if not result:
                    result = cmp(a_coeff, b_coeff)

        if not self.reverse:
            return -result
        else:
            return result