The tests pass for me too. Could you explain a bit in the log what the
advantage of your patch is against the previous way? the current log
is:

"
    Modified _eval_expand_multinomial to call _eval_expand_multinomial
instead of .expand()
"

but no tests were changed, sp does it implement some new fuctionality,
or makes it faster, or something else?

Ondrej

On Wed, Sep 2, 2009 at 2:58 PM, Luke<hazelnu...@gmail.com> wrote:
>
> It has been a while since I looked at this, but I went ahead and
> implemented what Ronan suggested.  The branch is on my git hub:
> http://github.com/hazelnusse/sympy/tree/expand_neg_int_powers
>
> It passes all tests on my machine.
>
> Let me know what you think.
>
> ~Luke
>
> On Aug 9, 7:24 pm, "Aaron S. Meurer" <asmeu...@gmail.com> wrote:
>> On Aug 9, 2009, at 8:07 PM, Ronan Lamy wrote:
>>
>>
>>
>>
>>
>> > Le dimanche 09 août 2009 à 16:34 -0700, Luke a écrit :
>>
>> >>> * This line suggests that it would be helpful to create an 'inverse'
>> >>> property - less work is needed to create this inverse than for a
>> >>> generic
>> >>> Pow instance.
>>
>> >> Could you elaborate on what you mean here?  Do you mean an inverse
>> >> property to Pow instances which have a integer exponent?  Perhaps
>> >> 'reciprocal' instead of 'inverse'?
>> > Yes, I guess 'reciprocal' is better. I mean a class property defined
>> > for
>> > all instances that would look like:
>> > @property
>> > def reciprocal(self):
>> >    if self.exp == -1:
>> >        return self.base
>> >    else:
>> >        return Basic.__new__(self.__class__, self.base, -self.exp)
>>
>> >>> *I don't see the point of the third test: it's only testing that (x
>> >>> +y)**2*(x+y)**-4 == (x+y)**-2 which isn't related to expand.
>>
>> >> Yes, you are right, it isn't testing expand but I guess it probably
>> >> doesn't hurt to keep it in either.
>> > No, it doesn't hurt much, but each unneeded test makes running the
>> > full
>> > test suite a tiny bit more painful.
>>
>> Maybe we should replace it with something that doesn't have
>> automatically combining exponents, such as:
>>
>> (x + y)**(2 + x)*(x + y)**(-x - 4)
>>
>> Then it at least checks to see if multinomial is being called after
>> power_exp.  Actually this isn't guarantied, because expand hints are
>> applied in arbitrary order.  See the expand docstring.  So I am not
>> sure if this will even work, and if so if it will on every machine
>> (with different hash values and thus different orders in the hints
>> dict).  I forget how the expand functions are structured if
>> expand_power_exp will call expand_multinomial afterwords or not (with
>> the deep option set to True).
>>
>> Otherwise I agree.  It is highly unlikely that we are ever going to
>> change the fundamental automatic simplification of (x + y)**2*(x +
>> y)**(-4) to (x + y)**(-2), which is the same sort of thing as x*x ==
>> x**2.  And if it is broken, there are plenty of other tests that will
>> break instead (such as the specifically structured
>> test_Mul_doesnt_expand_exp() and others in test_arit.py.
>>
>> Aaron Meurer
>>
>>
>>
>>
> >
>

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

Reply via email to