Vedansh Garg| Interested in CSymPy projects Implementing more elementary functions and fast series expansion.

67 views
Skip to first unread message

Vedansh Garg

unread,
Mar 3, 2014, 4:54:10 PM3/3/14
to sy...@googlegroups.com
Hi everyone,

Greetings!

I am Vedansh Garg ,3rd year Computer Science Engineering student.I am an avid programmer and I have participated in many coding competitions.My hackerrank profile - https://www.hackerrank.com/vedansh

I have worked on projects of cloud computing and scaling, also I have a good understanding about python and c .I have worked on django and also done some projects in python utilizing various libraries like nltk,libvirt ,facepy,pika ,beautiful soap and many more.I am interested in implementing fast series expansion and also  Implementation of more elementary functions catches my eye.

I like to know more about the 
.taylor_term() method and will the differential  be calculated using the already built-in functions.

I have thought of some ideas for implementation mainly related to search ,like generalizing a matrix type and then finding the shortest path through bfs,dfs,A* and other search techniques.


I like to know more about these projects and points on which I should work.

Thanks and Regards,
Vedansh

Ondřej Čertík

unread,
Mar 3, 2014, 6:08:55 PM3/3/14
to sympy
Hi Vedansh,

On Mon, Mar 3, 2014 at 2:54 PM, Vedansh Garg <vedans...@gmail.com> wrote:
> Hi everyone,
>
> Greetings!
>
> I am Vedansh Garg ,3rd year Computer Science Engineering student.I am an
> avid programmer and I have participated in many coding competitions.My
> hackerrank profile - https://www.hackerrank.com/vedansh
>
> I have worked on projects of cloud computing and scaling, also I have a good
> understanding about python and c.

Note that CSymPy is written in C++, so you will have to learn that for projects
related to CSymPy.

> I have worked on django and also done some
> projects in python utilizing various libraries like nltk,libvirt
> ,facepy,pika ,beautiful soap and many more.I am interested in implementing
> fast series expansion and also Implementation of more elementary functions
> catches my eye.
>
> I like to know more about the .taylor_term() method and will the
> differential be calculated using the already built-in functions.

The implementation should be similar to what is done in sympy:

https://github.com/sympy/sympy/blob/master/sympy/functions/elementary/trigonometric.py#L251

>
> I have thought of some ideas for implementation mainly related to search
> ,like generalizing a matrix type and then finding the shortest path through
> bfs,dfs,A* and other search techniques.

Can you elaborate on your ideas a bit? You want to implement something
like networkx?

http://networkx.lanl.gov/
http://networkx.github.io/documentation/networkx-1.8/reference/algorithms.shortest_paths.html

Is that related to symbolic mathematics? If not, it's probably out of scope.

If you enjoy dealing with data structures, then look into these issues:

https://github.com/certik/csympy/issues/117
https://github.com/certik/csympy/issues/116

It's dealing with various implementations of binary search trees.

>
> I like to know more about these projects and points on which I should work.

The goal of CSymPy is to provide very fast core, that can be used
together with SymPy to solve
problems where SymPy itself is too slow. You are welcome to propose
any idea you want.
The best is to take a real problem, that people were trying to solve
with SymPy, and speed it up.
The other is to carefully implement basic operations, and benchmark
against Mathematica, Sage,
GiNaC, SymPy and other libraries and make sure that CSymPy
implementation is among the fastest.

Ondrej

Vedansh Garg

unread,
Mar 4, 2014, 6:21:49 PM3/4/14
to sy...@googlegroups.com
Hi Ondrej,

Greetings!

I know C and Python and I have done some programming in c++  so learning that will not be a problem.

I went through the code for taylor term, and I have gathered a basic knowledge about it's implementation. I like to know if there are any more points on which I should work, while throughly going through the trignometric.py file . I also went through functions.h and I like to know that  whether I have to work only on the series expansion part using the already built in differential methods or do I have to make some new differential methods also.

I like to propose 2 ideas for  Impementation of some more functions.

Idea 1
In real world problems mostly a grid is present and the calculation of shortest path or applying similar techniques can be done by making a graph having a very large number of nodes.My idea is to implement search algorithms in a matrix  

There is a matrix of n*m size.(Insert values True /False depending whether a place is reachable or not)
Define a start and goal state and find all valid paths.
Generalization for user needs  like finding the shortest path /Finding a path in minimum time.
Calculation using user defined techniques like bfs, dfs, A*.
Finding leftmost, rightmost path defining user needs.


Idea 2
My second idea performing arithmetic on various symbol expressions using pattern matching ,regular expressions.
In this we can define rules for pattern matching during substitution and the we can use regular expressions to generalize it for complex patterns.

I like to know about the points on which I should work for the implementation of these ideas.

Thanks and Regards,
Vedansh

Ondřej Čertík

unread,
Mar 4, 2014, 6:57:51 PM3/4/14
to sympy
On Tue, Mar 4, 2014 at 4:21 PM, Vedansh Garg <vedans...@gmail.com> wrote:
> Hi Ondrej,
>
> Greetings!
>
> I know C and Python and I have done some programming in c++ so learning
> that will not be a problem.
>
> I went through the code for taylor term, and I have gathered a basic
> knowledge about it's implementation. I like to know if there are any more
> points on which I should work, while throughly going through the
> trignometric.py file . I also went through functions.h and I like to know
> that whether I have to work only on the series expansion part using the
> already built in differential methods or do I have to make some new
> differential methods also.

Whatever turns out to be the fastest at runtime and the most maintainable.

>
> I like to propose 2 ideas for Impementation of some more functions.
>
> Idea 1
> In real world problems mostly a grid is present and the calculation of
> shortest path or applying similar techniques can be done by making a graph
> having a very large number of nodes.My idea is to implement search
> algorithms in a matrix
>
> There is a matrix of n*m size.(Insert values True /False depending whether a
> place is reachable or not)
> Define a start and goal state and find all valid paths.
> Generalization for user needs like finding the shortest path /Finding a
> path in minimum time.
> Calculation using user defined techniques like bfs, dfs, A*.
> Finding leftmost, rightmost path defining user needs.

What application does this have? Is it related to symbolic computing somehow?
I.e. does this belong to SymPy?

>
>
> Idea 2
> My second idea performing arithmetic on various symbol expressions using
> pattern matching ,regular expressions.
> In this we can define rules for pattern matching during substitution and the
> we can use regular expressions to generalize it for complex patterns.

That is a good idea. You should look at pattern matching in sympy:

http://docs.sympy.org/dev/modules/core.html#sympy.core.basic.Basic.match

And see if you can improve it.

Ondrej

>
> I like to know about the points on which I should work for the
> implementation of these ideas.
>
> Thanks and Regards,
> Vedansh
>
> --
> You received this message because you are subscribed to the Google Groups
> "sympy" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to sympy+un...@googlegroups.com.
> To post to this group, send email to sy...@googlegroups.com.
> Visit this group at http://groups.google.com/group/sympy.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/sympy/927d4c71-bdaa-4772-a2d8-174888af34bd%40googlegroups.com.
>
> For more options, visit https://groups.google.com/groups/opt_out.
Reply all
Reply to author
Forward
0 new messages