On Mon, Mar 19, 2012 at 7:36 AM, Aaron Meurer <asmeu...@gmail.com> wrote:
> Hi.
>
> On Sun, Mar 18, 2012 at 9:23 AM, Ashwini Oruganti
> <ashwini.oruga...@gmail.com> wrote:
>> Hi,
>>
>> I am a sophomore undergraduate Computer Science and Engineering student.
>> I've done a substantial amount of Mathematics in high school, and so far in
>> my university (Differential Calculus, Integral Calculus, Linear Algebra,
>> Probability Theory) and am pretty comfortable learning new concepts. My Open
>> Source contribution so far has been a few patches in Evolution[1] [2] [3]
>> and a few bugs (yakuake [4] , Sugarlabs [5]).
>>
>> I would like to work on SymPy this summer and take it up as my GSoC project.
>> I went through the ideas page and was thinking over the implementation of
>> Step-by-step Expression Manipulation, and I felt it could be implemented the
>> way we do dry runs manually, e.g. for higher order derivatives, display the
>> result of fdiff() (i.e. 1st order derivative) at each step. This would also
>> help avoid code-duplication in cases where SymPy works in the way we would
>> too by hand. "show_steps" could be implemented as a separate function where,
>> when called by the user, it could be made it operation-specific.
>>
>> And as to what the output should look like, the readability part is easy,
>> what's tricky is the usability part. We could store each step in an object
>> (auto-name each step as step1. step2, etc) that when called, can print the
>> operations occurring in that step and then the user could use it as he/she
>> finds fit.
>
> Ideally, the way we store this information and the way we print it
> should be completely separate code (the way we print it could just be
> implemented as part of the printing system).  As you said, the more
> important part is to have it in a usable form.  Here are a few things
> to think about:
>
> - We may want to do different degrees of steps.  If I compute
> diff(x*sin(x), x, x), I may want this as two first order derivatives
> as you said, or I may want to break it up further and show the product
> rule and rules for the derivative of x and sin(x) shown.
>
> - Different steps may apply.  For example, if you have something that
> does integrals, you could compute Integral(sin(x)*exp(x), x) using
> integration by parts in two different ways.  Clearly the user should
> be able to pick u and dv to be whatever he wants (even if it doesn't
> work), but there should be smart defaults as well.
>
> - You should be able to apply steps to an expression. This was
> discussed in another thread on this mailing list about this topic.
>
> - Printing is important.  You need to have a good way to visualize
> what is going on, or it will be useless.
>
> Aaron Meurer
>
>>
>> Please do let me know your take on this, and if its feasible to implement.
>>
>> I also had a few ideas about the implementation of sparse matrix
>> representation for Matrix, in the linear algebra module.  I think we can use
>> a combination of both Dense & Sparse storage. We can create a list of
>> indices that holds the zero elements and modify other Matrix operations to
>> first see if the element is in this list, if so, then treat it as a zero,
>> else continue as before ( and refer to the Dense storage value); probably
>> implement this as a test_sparse() function and add it to the existing matrix
>> operations.
>> It's mentioned in the wiki that this project was partially worked upon by a
>> previous GSoC student. Given a reference, I could probably complete it
>> further.
>
> The unmerged work from that project is here:
> https://github.com/sympy/sympy/pulls/sherjilozair

Hi,

What is the plan to extend this un-merged work, are we required to
implement all the dense functions in the same sense as the sparse
functions ? That'll be fun :-)

Also, in the proposal there is a point which says: "Rewrite the
Matrices module to be more like the polys module, i.e., allow Matrix
to use the polys ground types ... ", what is the type of functionality
being expected here ?

Cheers
--Sanket

-- 
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