On Fri, Aug 12, 2011 at 12:09 AM, Mateusz Paprocki <[email protected]> wrote:
> Hi,
>
> On 12 August 2011 02:21, smichr <[email protected]> wrote:
>>
>> The following fails under 64 bit systems in my assert branch. I could
>> really use some help figuring out why. If someone could run the
>> following and post the results, I would appreciate it:
>>
>> Please run this in my (smichr) `assert` branch:
>>
>>    from sympy.abc import *
>>    from sympy import *
>>    from sympy.core.exprtools import (Factors, Term, _gcd_terms)
>>    f = 2*(x + 1)*(x + 4)/(5*x**2 + 5) + (2*x + 2)*(x + 5)/(x**2 +1)/5
>> + (2*x + 2)*(x + 6)/(5*x**2 + 5)
>>    print srepr((3*x + 6).primitive())
>>    print srepr(Term((2*x + 2)*(3*x + 6)**2))
>>    print srepr(_gcd_terms(f))
>>    try:assert (3*x + 6).primitive() == (3, x + 2)
>>    except:print 'fail1'
>>    try:assert Term((2*x + 2)*(3*x + 6)**2) == Term(18, Factors({x +
>> 1: 1,x + 2: 2}), Factors({}))
>>    except:print 'fail2'
>>    try:assert _gcd_terms(f) == ((S(6)/5)*((1 + x)/(1 + x**2)), 5 + x,
>> 1)
>>    except:print 'fail3'
>
> Apply this https://gist.github.com/1141548. Corner cases were handled
> improperly, so this is fixed (core tests pass on 64-bit). I also improved
> speed of new primitive() by avoiding indexing. Anyway, this patch just
> validates my previous doubts that we shouldn't hack SymPy this way. There
> should be method mul_coeff()/div_coeff() that would implement this
> optimization properly once for all applications.
>

Agreed.  This would be much better, than, e.g., making Mul.args[0]
always a Number.

I'm not so sure about div_coeff(), though.  What would that do?

Aaron Meurer

>>
>> Thanks.
>>
>> --
>> You received this message because you are subscribed to the Google Groups
>> "sympy" group.
>> To post to this group, send email to [email protected].
>> To unsubscribe from this group, send email to
>> [email protected].
>> For more options, visit this group at
>> http://groups.google.com/group/sympy?hl=en.
>>
>
> Mateusz
>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/sympy?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to