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].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/sympy/CAKgW%3D6LnahmyB1%2BcHsojZD2duWHRbmEtB8H3%3DzZ_J4b0uFRvkw%40mail.gmail.com.

Reply via email to