Ticket #7660: trac_7660-inequality_arithmetic.patch

File trac_7660-inequality_arithmetic.patch, 8.0 KB (added by burcin, 9 years ago)

prototype patch

  • sage/symbolic/expression.pyx

    # HG changeset patch
    # User Burcin Erocal <burcin@erocal.org>
    # Date 1357729454 -3600
    # Node ID 3f48fc260356d410748c33ee88d8346b4ede202c
    # Parent  960df3da463d46c98242b364071cc1aaf35ed8b5
    [mq]: trac_7660-inequality_arithmetic.patch
    
    diff --git a/sage/symbolic/expression.pyx b/sage/symbolic/expression.pyx
    a b  
    24312431        cdef GEx x
    24322432        cdef Expression _right = <Expression>right
    24332433        cdef operators op
    2434         if is_a_relational(left._gobj):
    2435             if is_a_relational(_right._gobj):
     2434        if is_a_relational(left._gobj) and is_a_relational(_right._gobj):
    24362435                op = compatible_relation(relational_operator(left._gobj),
    24372436                                         relational_operator(_right._gobj))
    24382437                x = relational(gadd(left._gobj.lhs(), _right._gobj.lhs()),
    24392438                               gadd(left._gobj.rhs(), _right._gobj.rhs()),
    24402439                               op)
    2441             else:
    2442                 x = relational(gadd(left._gobj.lhs(), _right._gobj),
    2443                                gadd(left._gobj.rhs(), _right._gobj),
    2444                                relational_operator(left._gobj))
    2445         elif is_a_relational(_right._gobj):
    2446             x = relational(gadd(left._gobj, _right._gobj.lhs()),
    2447                            gadd(left._gobj, _right._gobj.rhs()),
    2448                            relational_operator(_right._gobj))
     2440        #    else:
     2441        #        x = relational(gadd(left._gobj.lhs(), _right._gobj),
     2442        #                       gadd(left._gobj.rhs(), _right._gobj),
     2443        #                       relational_operator(left._gobj))
     2444        #elif is_a_relational(_right._gobj):
     2445        #    x = relational(gadd(left._gobj, _right._gobj.lhs()),
     2446        #                   gadd(left._gobj, _right._gobj.rhs()),
     2447        #                   relational_operator(_right._gobj))
    24492448        else:
    24502449            x = gadd(left._gobj, _right._gobj)
    24512450        return new_Expression_from_GEx(left._parent, x)
     
    24832482        """
    24842483        cdef GEx x
    24852484        cdef Expression _right = <Expression>right
    2486         if is_a_relational(left._gobj):
    2487             if is_a_relational(_right._gobj):
     2485        if is_a_relational(left._gobj) and is_a_relational(_right._gobj):
    24882486                op = compatible_relation(relational_operator(left._gobj),
    24892487                                         relational_operator(_right._gobj))
    24902488                x = relational(gsub(left._gobj.lhs(), _right._gobj.lhs()),
    24912489                               gsub(left._gobj.rhs(), _right._gobj.rhs()),
    24922490                               op)
    2493             else:
    2494                 x = relational(gsub(left._gobj.lhs(), _right._gobj),
    2495                                gsub(left._gobj.rhs(), _right._gobj),
    2496                                relational_operator(left._gobj))
    2497         elif is_a_relational(_right._gobj):
    2498             x = relational(gsub(left._gobj, _right._gobj.lhs()),
    2499                            gsub(left._gobj, _right._gobj.rhs()),
    2500                            relational_operator(_right._gobj))
     2491        #    else:
     2492        #        x = relational(gsub(left._gobj.lhs(), _right._gobj),
     2493        #                       gsub(left._gobj.rhs(), _right._gobj),
     2494        #                       relational_operator(left._gobj))
     2495        #elif is_a_relational(_right._gobj):
     2496        #    x = relational(gsub(left._gobj, _right._gobj.lhs()),
     2497        #                   gsub(left._gobj, _right._gobj.rhs()),
     2498        #                   relational_operator(_right._gobj))
    25012499        else:
    25022500            x = gsub(left._gobj, _right._gobj)
    25032501        return new_Expression_from_GEx(left._parent, x)
     
    26792677        cdef GEx x
    26802678        cdef Expression _right = <Expression>right
    26812679        cdef operators o
    2682         if is_a_relational(left._gobj):
    2683             if is_a_relational(_right._gobj):
     2680        if is_a_relational(left._gobj) and is_a_relational(_right._gobj):
    26842681                op = compatible_relation(relational_operator(left._gobj),
    26852682                                         relational_operator(_right._gobj))
    26862683                x = relational(gmul(left._gobj.lhs(), _right._gobj.lhs()),
    26872684                               gmul(left._gobj.rhs(), _right._gobj.rhs()),
    26882685                               op)
    2689             else:
    2690                 o = relational_operator(left._gobj)
    2691                 x = relational(gmul(left._gobj.lhs(), _right._gobj),
    2692                                gmul(left._gobj.rhs(), _right._gobj),
    2693                                o)
    2694         elif is_a_relational(_right._gobj):
    2695             o = relational_operator(_right._gobj)
    2696             x = relational(gmul(left._gobj, _right._gobj.lhs()),
    2697                            gmul(left._gobj, _right._gobj.rhs()),
    2698                            o)
     2686        #    else:
     2687        #        o = relational_operator(left._gobj)
     2688        #        x = relational(gmul(left._gobj.lhs(), _right._gobj),
     2689        #                       gmul(left._gobj.rhs(), _right._gobj),
     2690        #                       o)
     2691        #elif is_a_relational(_right._gobj):
     2692        #    o = relational_operator(_right._gobj)
     2693        #    x = relational(gmul(left._gobj, _right._gobj.lhs()),
     2694        #                   gmul(left._gobj, _right._gobj.rhs()),
     2695        #                   o)
    26992696        else:
    27002697            x = gmul(left._gobj, _right._gobj)
    27012698        return new_Expression_from_GEx(left._parent, x)
     
    27822779        cdef Expression _right = <Expression>right
    27832780        cdef operators o
    27842781        try:
    2785             if is_a_relational(left._gobj):
    2786                 if is_a_relational(_right._gobj):
     2782            if is_a_relational(left._gobj) and is_a_relational(_right._gobj):
    27872783                    op = compatible_relation(relational_operator(left._gobj),
    27882784                                             relational_operator(_right._gobj))
    27892785                    x = relational(gdiv(left._gobj.lhs(), _right._gobj.lhs()),
    27902786                                   gdiv(left._gobj.rhs(), _right._gobj.rhs()),
    27912787                                   op)
    2792                 else:
    2793                     o = relational_operator(left._gobj)
    2794                     x = relational(gdiv(left._gobj.lhs(), _right._gobj),
    2795                                    gdiv(left._gobj.rhs(), _right._gobj),
    2796                                    o)
    2797             elif is_a_relational(_right._gobj):
    2798                 o = relational_operator(_right._gobj)
    2799                 x = relational(gdiv(left._gobj, _right._gobj.lhs()),
    2800                                gdiv(left._gobj, _right._gobj.rhs()),
    2801                                o)
     2788        #        else:
     2789        #            o = relational_operator(left._gobj)
     2790        #            x = relational(gdiv(left._gobj.lhs(), _right._gobj),
     2791        #                           gdiv(left._gobj.rhs(), _right._gobj),
     2792        #                           o)
     2793        #    elif is_a_relational(_right._gobj):
     2794        #        o = relational_operator(_right._gobj)
     2795        #        x = relational(gdiv(left._gobj, _right._gobj.lhs()),
     2796        #                       gdiv(left._gobj, _right._gobj.rhs()),
     2797        #                       o)
    28022798            else:
    28032799                x = gdiv(left._gobj, _right._gobj)
    28042800            return new_Expression_from_GEx(left._parent, x)
     
    29792975            nexp = exp
    29802976            base = nexp.coerce_in(self)
    29812977        cdef GEx x
    2982         if is_a_relational(base._gobj):
    2983             x = relational(g_pow(base._gobj.lhs(), nexp._gobj),
    2984                            g_pow(base._gobj.rhs(), nexp._gobj),
    2985                            relational_operator(base._gobj))
    2986         else:
    2987             x = g_pow(base._gobj, nexp._gobj)
     2978        #if is_a_relational(base._gobj):
     2979        #    x = relational(g_pow(base._gobj.lhs(), nexp._gobj),
     2980        #                   g_pow(base._gobj.rhs(), nexp._gobj),
     2981        #                   relational_operator(base._gobj))
     2982        #else:
     2983        x = g_pow(base._gobj, nexp._gobj)
    29882984        return new_Expression_from_GEx(base._parent, x)
    29892985
    29902986    def derivative(self, *args):