This sounds like it could be useful for lambdify. I'd like to see lambdification of integrals be improved.
Aaron Meurer On Tue, Feb 24, 2015 at 11:48 AM, Nathan Woods <[email protected]> wrote: > I'll need to break it out of a more specialized package first, but this all > sounds very promising. It'll be a few weeks before I can really get started > (dissertation writing...), but I think it should only take a day or so after > that, at least to have something to share. Maybe longer to flesh out the > feature set and add a cleaner interface. Mostly I just want it to be > available in a place where it'll get use. > > N > > On Tuesday, February 24, 2015 at 10:28:13 AM UTC-7, Jason Moore wrote: >> >> Nathan, >> >> Can you show us the code? It may help us understand what you are doing. >> >> Also, we have code in sympy that optional depends on scipy as do we other >> packages: cython, numpy, theano, matplotlib, etc. The code generation and >> tightly coupled symboli/numeric code is in that blurry zone about what we'd >> add. >> >> But if you make a working separate package it can be a good start. For >> example the PyDy project depends on sympy but deals with generating specific >> numerical codes. If you make the package and we want to include it, then >> great. If not, you have an easily installable package that others can use >> and we can link to it from our docs/website. >> >> >> Jason >> moorepants.info >> +01 530-601-9791 >> >> On Tue, Feb 24, 2015 at 9:08 AM, Nathan Woods <[email protected]> wrote: >>> >>> The decoupling is actually pretty easy. Unfortunately, the Sympy-specific >>> stuff isn't especially useful without the context of a numerical integrator. >>> >>> Maybe an example will help. Say you want to numerically integrate a step >>> function H(x) over the interval [-1, 1]. Most numerical integrators will try >>> to fit a polynomial to this, but polynomials can't handle the jump at x=0 >>> gracefully, so you end up wasting a lot of processing time trying to refine >>> it. The fix is to break up the integral, and do it in two pieces, one from >>> [-1, 0), and one from [0, 1]. The integrator has no trouble with this, so >>> you get a very fast evaluation. Many integrators, and in particular >>> scipy.integrate.quad, have this capability. >>> >>> What I've done is figure out a way to get the same benefits for >>> multidimensional functions. So, you could integrate H(x**2 + y**2 - z) over >>> a volume, and get the same kind of efficiency. Without this, not only is >>> evaluation of the integral very slow, but the results can sometimes be very >>> inaccurate too. >>> >>> Anyway, from what I can tell, a similar effect could be achieved using >>> mpmath, rather than SciPy. Maybe that project is a better venue. >>> >>> Thanks again! >>> >>> N >>> >>> >>> On Tuesday, February 24, 2015 at 9:17:41 AM UTC-7, Joachim Durchholz >>> wrote: >>>> >>>> Am 24.02.2015 um 17:03 schrieb Nathan Woods: >>>> > Anyway, I would like to package this up in a way that would be >>>> > publicly >>>> > useful, but I'm not sure where it fits. Sympy seemed a likely guess, >>>> > but >>>> > the SciPy dependence is problematic. >>>> >>>> Out of the box, a separate project with a dependency on both SymPy and >>>> SciPy would probably fit best. >>>> >>>> > Alternatively, the >>>> > discontinuity-processing could be decoupled and used with any iterated >>>> > integrator that supports manually specified points of discontinuity. >>>> >>>> Decoupling and putting the modules into their respective projects would >>>> work, too. >>>> It's much more work though. >>>> >>>> > If >>>> > Sympy isn't a good fit for this, I would appreciate suggestions about >>>> > other >>>> > places that might be better. >>>> >>>> I did not fully understand your description of what your code does, so I >>>> can't be very specific. >>>> In general, anything that analyzes mathematical objects for properties >>>> of interest that go beyond a one-shot task would be a worthy addition to >>>> SymPy. >>> >>> -- >>> 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 [email protected]. >>> To post to this group, send email to [email protected]. >>> 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/125f4bc9-7c1d-441f-bf41-5df851379a7d%40googlegroups.com. >>> >>> For more options, visit https://groups.google.com/d/optout. >> >> > -- > 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 [email protected]. > To post to this group, send email to [email protected]. > 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/bed69b8c-fd47-4cba-a3fa-e800e34acea8%40googlegroups.com. > > For more options, visit https://groups.google.com/d/optout. -- 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 [email protected]. To post to this group, send email to [email protected]. 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/CAKgW%3D6J%2Bn13FXQ8GnMGLx4wwumZvnz3ONGO3JJduOYotyvtZ6A%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
