My suggestion would be to continue with the matrixify solution and
write functions to fix up the expression tree as need be.  The whole
issue of making Add/Mul/Pow extensible is separate but the logic can
be transferred pretty easily.

-- Andy

On Wed, Jul 13, 2011 at 1:44 PM, Aaron Meurer <asmeu...@gmail.com> wrote:
> On Wed, Jul 13, 2011 at 1:19 PM, Ronan Lamy <ronan.l...@gmail.com> wrote:
>> Le mercredi 13 juillet 2011 à 10:51 -0700, Brian Granger a écrit :
>>> Matthew,
>>>
>>> Arron has provided a fantastic summary of the issues involve.  The
>>> summary is that even if you subclass Add/Mul/Pow, sympy will end up
>>> creating expressions that don't use your subclasses everywhere.  This
>>> can't be fixed without changing the core, which is outside the scope
>>> of your project.  I know I sound like a broken record, but you should
>>> resist the temptation to define your own Add/Mul/Pow classes.
>>
>> I'm not convinced. What other solution is there?
>>
>> Also, creating Add/Mul/Pow subclasses looks like the obvious way of
>> extending sympy, so we want to make it work at some point. Creating
>> MatrixAdd, etc. will help a lot with that by highlighting all the places
>> where we assume things like a + b == Add(a, b). So if Matthew thinks he
>> can make it work without too much pain, compared to the alternatives,
>> then I think he should go for it.
>
> Well, the dispatch solution only works for op.whatever, but as we
> know, reduce(op.whatever, list_of_args) is asymptotically less
> efficient than Whatever(*list_of_args).
>
> Actually, half of the problem isn't so much making Add/Mul/etc. work
> with dispatch rules, but making it *efficiently* work with dispatch
> rules.
>
> Aaron Meurer
>
>>
>> --
>> You received this message because you are subscribed to the Google Groups 
>> "sympy" group.
>> To post to this group, send email to sympy@googlegroups.com.
>> To unsubscribe from this group, send email to 
>> sympy+unsubscr...@googlegroups.com.
>> 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 sympy@googlegroups.com.
> To unsubscribe from this group, send email to 
> sympy+unsubscr...@googlegroups.com.
> 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 sympy@googlegroups.com.
To unsubscribe from this group, send email to 
sympy+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sympy?hl=en.

Reply via email to