Question: Seemingly simple convolution takes forever... why?

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[4]. 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. Thanks, -M > 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);
Please Wait...