Ah alright, I am relived to hear that - I started taking a look at some of the docs ( https://docs.sympy.org/latest/modules/integrals/g-functions.html#g-functions) and was a bit intimidated. This sounds good and I will have my proposal posted in the very near future.
Jackson Morris On Sunday, March 29, 2020 at 3:58:50 PM UTC-7, Aaron Meurer wrote: > > Modifying the meijerg algorithm will require some time for you to > understand the algorithm and the code behind it, so you should > allocate some time for it.Adding support to manualintegrate should be > much easier. We should probably try to do both. > > Aaron Meurer > > On Sun, Mar 29, 2020 at 2:30 PM Jackson Morris <[email protected] > <javascript:>> wrote: > > > > My initial thought was that we could have some kind of a "distribution > object" in order for us to more easily identify when the result of an > integral could be written in clean terms (we could also use these when we > need a distribution to describe the derivative of some function), but now I > am realizing that almost all (interesting) instances of distributions > occurring in these types of integrals are variations of the delta function > (eg derivatives), which is already covered in the functions module. Also, > is investigating whether the meijerg methods can be modified to return > distributions something I should look into now when formulating my > timeline/plan, or can there be some built in time for determining which > will be more feasible (between meijerg or manualintegrate). > > > > Thanks, > > Jackson > > > > On Sunday, March 29, 2020 at 1:04:51 PM UTC-7, Aaron Meurer wrote: > >> > >> manualintegrate basically is a lookup table. So if you want to > >> implement a lookup table, it should go there, rather than trying to > >> reinvent it. > >> > >> What other sorts of generalized functions would you want to implement? > >> > >> Aaron Meurer > >> > >> On Sun, Mar 29, 2020 at 11:57 AM Jackson Morris <[email protected]> > wrote: > >> > > >> > So, a potential plan of action could be something like determining > which integration method could most easily be extended to return > distributions (whether that is meijerg, or manual integrate) > >> > and then implementing such an extension to either of these methods. > If it proves intractable to improve either of these methods we would then > look into a look-up table? Would it be unrealistic to try to implement > other sorts of generalized functions into Sympy for a GSoC project? > >> > > >> > Thanks! Jackson > >> > > >> > On Friday, March 27, 2020 at 10:00:56 AM UTC-7, Aaron Meurer wrote: > >> >> > >> >> On Fri, Mar 27, 2020 at 10:51 AM Ondřej Čertík <[email protected]> > wrote: > >> >> > > >> >> > Hi Jackson and Oscar, > >> >> > > >> >> > Indeed, fixing this would be the main goal of the project. Let's > brainstorm the possible approaches. > >> >> > > >> >> > 1) One is to work on the integrate() function, and make it return > distributions (delta functions) where appropriate. One way to do that is > using pattern matching, similar to Rubi. One would match the typical > integrals that occur, and return the correct answer. One would probably > write a dedicated function for that, say, integrate_distributions, and then > somehow hook it up into integrate. > >> >> > >> >> I think this is the right approach. We already have a pattern > matching > >> >> integrator called manualintegrate that this can be added to. We can > >> >> also investigate if the meijerg algorithm can be improved to work in > >> >> these cases. If it can, then that will enable a lot more than we > could > >> >> get by naive pattern matching. In each case, I would investigate > >> >> meijerg first. If it can be improved (and is fast), then that is > >> >> enough. It is only if it can't that we should add a table lookup. In > >> >> some cases, meijerg can work but it needs some better pre-processing > >> >> (like calling apart() first so it can operate on a partial fraction > >> >> decomposition). > >> >> > >> >> The benefit of improving integrate is that things will work > regardless > >> >> of whether they call fourier_transform or just create the integral > of > >> >> a Fourier transform. As you probably know, integrals that look like > >> >> common transforms appear all the time even when you aren't > necessarily > >> >> thinking in terms of that transform. > >> >> > >> >> By the way, since you mentioned RUBI, I don't think even it would > help > >> >> here, since, unless I am mistaken, it doesn't deal with definite > >> >> integrals. > >> >> > >> >> Aaron Meurer > >> >> > >> >> > > >> >> > 2) The other approach is to tie it specifically into the > fourier_transform() function. > >> >> > > >> >> > I was hoping we could write general enough integrate_distributions > function, so that when it is called from inside Fourier, Laplace and other > transforms, it would return the correct answer. > >> >> > > >> >> > Finally, cos(x) is just one simple example. It needs to be > extended to work correctly with piecewise functions and other. I can > provide such examples from a person who reported this issue to me > yesterday. > >> >> > > >> >> > For example, if it could do majority of these transforms > correctly, that would be ideal: > >> >> > > >> >> > > https://en.wikipedia.org/wiki/Fourier_transform#Tables_of_important_Fourier_transforms > > >> >> > > >> >> > There will be always corner cases, but getting 90% of them > correctly would go a long way. > >> >> > > >> >> > Ondrej > >> >> > > >> >> > On Thu, Mar 26, 2020, at 4:59 PM, Jackson Morris wrote: > >> >> > > Hello there, > >> >> > > > >> >> > > I just commented on the issue, but I figure that this is a > better way > >> >> > > to communicate. Here is my comment from the issue: I would > certainly be > >> >> > > interested in working on this for GSoC. I am still getting > familiar > >> >> > > with the internals of sympy, but I think that this would be > right up my > >> >> > > alley. Would getting this fixed be the main component of the > project? > >> >> > > > >> >> > > Best, > >> >> > > Jackson > >> >> > > > >> >> > > On Thursday, March 26, 2020 at 2:38:50 PM UTC-7, ondrej > wrote:Hi, > >> >> > > > > >> >> > > > Here is a great idea for a GSoC project: > >> >> > > > > >> >> > > > > https://github.com/sympy/sympy/issues/2803#issuecomment-604697523 > >> >> > > > > >> >> > > > Would any student be interested? I know at least one user who > couldn't use SymPy because of that. So fixing it would be very useful to a > lot of people. The scope of the GSoC project could be to get SymPy working > with Fourier transforms of many such functions including Piecewise and > adding a nice page to SymPy's documentation with examples. > >> >> > > > > >> >> > > > I'll be happy to mentor such a project. > >> >> > > > > >> >> > > > Ondrej > >> >> > > > >> >> > > -- > >> >> > > 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 view this discussion on the web visit > >> >> > > > https://groups.google.com/d/msgid/sympy/a51452c8-bb74-4fa2-b2ac-04c66e7e9199%40googlegroups.com > > < > https://groups.google.com/d/msgid/sympy/a51452c8-bb74-4fa2-b2ac-04c66e7e9199%40googlegroups.com?utm_medium=email&utm_source=footer>. > > > >> >> > > >> >> > -- > >> >> > 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 view this discussion on the web visit > https://groups.google.com/d/msgid/sympy/ec797a11-e354-48a5-9ce9-f0b5617d7099%40www.fastmail.com. > > > >> > > >> > -- > >> > 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 view this discussion on the web visit > https://groups.google.com/d/msgid/sympy/17f88db9-1638-4601-967e-2d1341b17019%40googlegroups.com. > > > > > > -- > > 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] <javascript:>. > > To view this discussion on the web visit > https://groups.google.com/d/msgid/sympy/6586eb95-2e36-4ff2-80d3-f90fba57dd9e%40googlegroups.com. > > > -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/sympy/e37e2c7c-ca70-4eb0-838e-c9eee3b84d1b%40googlegroups.com.
