On Sunday, March 25, 2012 2:45:43 AM UTC+5:30, Aaron Meurer wrote:
>
> On Sat, Mar 24, 2012 at 3:04 PM, krastanov.ste...@gmail.com
> <krastanov.ste...@gmail.com> wrote:
> > The important part:
> > About the backend: I suppose (not sure) that the community will be
> > mostly interested in the svgfig backend. Then about pyglet: rewrite
> > will definitely be useful, as the current code is in the form of
> > spaghetti, but it will not be a very interesting task. I would leave
> > it for the end of gsoc if I have the time. I doubt that Google Charts
> > API will be used much (as you said it is not for plotting functions).
>
> I agree with this.  matplotlib (and I guess svgfig) are the most
> important.  Pyglet can be translated, but put it at the end of the
> summer, as it's lower priority.
>

Thanks. I think I will mainly concentrate on matplotlib and svgfig for 
the GSOC project. Also, I will put the pyglet translation at the end of
the summer. 

I will also be using experimental lambdify for writing the backend for 
both matplotlib and svgfig. Will it be a problem? Because I think 
experimental_lambdify might change a lot. By using
experimental_lambdify we will have to make sure that experimental_lambdify
should be in our code base. 

Thanks,
Bharath M R 

>
> > A rant:
> > About lambdify and experimental_lambdify:
> >
> > IMO lambdify is an unpythonic abomination:
> > It tries to serve multiple unrelated and sometimes exclusive purposes
> > (1. compiler to numpy/mpmath, 2. useless additional syntax for `lambda
> > x: blah_x` 3. check all the other strange examples in the tests.).
> >
> > The tests and docstrings contradict each other (is it for "fast
> > _numerical_ calculations" or for this `lambda x :
> > UNevaluated_expression_of_x`)
> >
> > The code is unmaintainable: is it a compiler? If it is, where is the
> > AST tree processing? To what does it compile? The way that it uses
> > `exec` on an enormous uncontrolled namespace... Yes, I dislike this
> > piece of code very strongly.
> >
> > The lambdify function was created (according to git log) to be used
> > for fast(therefore not subs().evalf()) numerical(therefore numpy)
> > evaluation for use in the old plotting module. Then it got used in
> > other places for completely unrelated tasks. Then it evolved to take
> > care of those tasks (badly) but the documentation was not updated.
> >
> > My experimental_lambidify is slightly less ugly and it is good only
> > for numerical calculations (better than lambdify) but it can be
> > rewritten in a much cleaner way (using python AST). In the plotting
> > examples you can see all the cases where lambdify fails but
> > experimental_lambdify works.
> >
> > This all was just to point out how unsustainable the use of lambdify
> > is. I would like to see it removed (it will break some code). This is
> > my opinion on the question, but the core developers should decide.
> >
> > I propose to check all the places where lambdify is used in our
> > codebase (mostly numerical stuff like nsolve and the old plotting
> > module). Then test it with one of the many trivial expressions that
> > make it crash and the see what must be done to substitute it with
> > experimental_lambidify in this particular place (which has many rough
> > edges, but much less than lambidfy). That way lambdify can be removed.
> > This way there will be an api change in the next version, but it will
> > work better.
>
> Aside from our code base, a *lot* of people use lambdify, mostly to go
> from sympy to numpy.  So I would try to get community input (probably
> on another thread) as well. Perhaps you could create a branch where
> lambdify is replaced with experimental_lambdify that people can test
> their code on.
>
> Are there any features of lambdify that are not in experimental_lambdify?
>
> Aaron Meurer
>
>
On Sunday, March 25, 2012 2:45:43 AM UTC+5:30, Aaron Meurer wrote:
>
> On Sat, Mar 24, 2012 at 3:04 PM, krastanov.ste...@gmail.com
> <krastanov.ste...@gmail.com> wrote:
> > The important part:
> > About the backend: I suppose (not sure) that the community will be
> > mostly interested in the svgfig backend. Then about pyglet: rewrite
> > will definitely be useful, as the current code is in the form of
> > spaghetti, but it will not be a very interesting task. I would leave
> > it for the end of gsoc if I have the time. I doubt that Google Charts
> > API will be used much (as you said it is not for plotting functions).
>
> I agree with this.  matplotlib (and I guess svgfig) are the most
> important.  Pyglet can be translated, but put it at the end of the
> summer, as it's lower priority.
>
> >
> > A rant:
> > About lambdify and experimental_lambdify:
> >
> > IMO lambdify is an unpythonic abomination:
> > It tries to serve multiple unrelated and sometimes exclusive purposes
> > (1. compiler to numpy/mpmath, 2. useless additional syntax for `lambda
> > x: blah_x` 3. check all the other strange examples in the tests.).
> >
> > The tests and docstrings contradict each other (is it for "fast
> > _numerical_ calculations" or for this `lambda x :
> > UNevaluated_expression_of_x`)
> >
> > The code is unmaintainable: is it a compiler? If it is, where is the
> > AST tree processing? To what does it compile? The way that it uses
> > `exec` on an enormous uncontrolled namespace... Yes, I dislike this
> > piece of code very strongly.
> >
> > The lambdify function was created (according to git log) to be used
> > for fast(therefore not subs().evalf()) numerical(therefore numpy)
> > evaluation for use in the old plotting module. Then it got used in
> > other places for completely unrelated tasks. Then it evolved to take
> > care of those tasks (badly) but the documentation was not updated.
> >
> > My experimental_lambidify is slightly less ugly and it is good only
> > for numerical calculations (better than lambdify) but it can be
> > rewritten in a much cleaner way (using python AST). In the plotting
> > examples you can see all the cases where lambdify fails but
> > experimental_lambdify works.
> >
> > This all was just to point out how unsustainable the use of lambdify
> > is. I would like to see it removed (it will break some code). This is
> > my opinion on the question, but the core developers should decide.
> >
> > I propose to check all the places where lambdify is used in our
> > codebase (mostly numerical stuff like nsolve and the old plotting
> > module). Then test it with one of the many trivial expressions that
> > make it crash and the see what must be done to substitute it with
> > experimental_lambidify in this particular place (which has many rough
> > edges, but much less than lambidfy). That way lambdify can be removed.
> > This way there will be an api change in the next version, but it will
> > work better.
>
> Aside from our code base, a *lot* of people use lambdify, mostly to go
> from sympy to numpy.  So I would try to get community input (probably
> on another thread) as well. Perhaps you could create a branch where
> lambdify is replaced with experimental_lambdify that people can test
> their code on.
>
> Are there any features of lambdify that are not in experimental_lambdify?
>
> Aaron Meurer
>
>
On Sunday, March 25, 2012 2:45:43 AM UTC+5:30, Aaron Meurer wrote:
>
> On Sat, Mar 24, 2012 at 3:04 PM, krastanov.ste...@gmail.com
> <krastanov.ste...@gmail.com> wrote:
> > The important part:
> > About the backend: I suppose (not sure) that the community will be
> > mostly interested in the svgfig backend. Then about pyglet: rewrite
> > will definitely be useful, as the current code is in the form of
> > spaghetti, but it will not be a very interesting task. I would leave
> > it for the end of gsoc if I have the time. I doubt that Google Charts
> > API will be used much (as you said it is not for plotting functions).
>
> I agree with this.  matplotlib (and I guess svgfig) are the most
> important.  Pyglet can be translated, but put it at the end of the
> summer, as it's lower priority.
>


Thanks. I think I will mainly concentrate on matplotlib and svgfig for 
the GSOC project. Also, I will put the pyglet translation at the end of
the summer. 

I will be using experimental lambdify for writing the backend for 
extending matplotlib backend and implementing svgfig backend. 
Will it be a problem? Because I think experimental_lambdify might change a 
lot.
 By using experimental_lambdify we will have to make sure that 
experimental_lambdify should be in our code base. 

Thanks,
Bharath M R 

 

>

-- 
You received this message because you are subscribed to the Google Groups 
"sympy" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/sympy/-/2YxdBP6v4BkJ.
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