I have a maple worksheet (attached) that calculates a 2-D convolution. Should be easy, I would guess. The convolution of a gaussian and a gaussian is very fast-- this has a simple analytical result anyway. A gaussian and a sinc function can take a couple of minutes... and a gaussian and a bessel function takes longer than I can allow! I think I must be missing something here. I've tried various things, interchanging "int" and "Int" for the integration, and also seting digits to something low, by using evalf. Sometimes it just maxes out all available memory before grinding to a halt, in other trials it will allocate about 300 MB and churn for hours. The worksheet is attached. I'd appreciate the advice.
> f1 := (x, y) -> exp(-(x^2 + y^2)/5);
> f2 := (x, y) -> BesselJ(1, (x^2+y^2)^(1/2))/((x^2+y^2)^(1/2));
> plot3d([f1(x, y)], x=-20..20, y=-20..20, axes=NORMAL, shading=zhue);
> plot3d(f2(x, y), x=-20..20, y=-20..20, axes=NORMAL, shading=zhue);
> c := (x, y) -> Int(Int(f1(taux,tauy)*f2(x-taux, y-tauy), taux=-100..+100), tauy=-100..+100);
> plot3d(c(x, y), x=-20..20, y=-20..20);