Here's another idea for GSoC. I don't think there's as much doubt here as with the others, so I'll probably just go ahead and add it to the ideas list.
Many times, people ask how they can tell what some functions are doing. For example, they want to know step by step how diff(x*sin(x**2), x) works, or integrate(x*sin(x**2), x). For the former, the best you can do is to follow the code; for the latter, the algorithm doesn't work at all like you would do it by hand, so there's really no way. The idea is to implement a way to do this. It would be along the lines of WolframAlpha, where if you do certain operations (including the above two), there is a button "Show steps," which shows everything step by step. The question is what would be a good interface for this? For the most part, it would probably mean reimplementing the basic "by hand" algorithms, so that you can determine exactly what steps are used. What should the output look like, so that it is both readable and usable (e.g., maybe some kind of annotated objects representing operations that you can literally apply to an expression to do those things). Another question: for those operations where what SymPy does is pretty close to what you'd do by hand (e.g., differentiation), what is a good way to avoid code duplication and make things extensible? Of course, we don't have to answer these questions before we can put it on the ideas list: we can have the students interested in doing it try to come up with the best ways, but I think it's good to discuss ideas before hand. Aaron Meurer -- 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.
