Context
I have a function that depends on 3 real variables x,y and z and that is defined by a series of matrix products. The evaluation of f for a specific (x,y,z) is fast ~0.02 sec but I want to evaluate the function on a huge number of points (a regularly spaced grid of x,y and z values) which in the end makes the evaluation really slow if not unmanageable. I have already tried what was proposed in this answer, but my function is not compilable, and ParalellTable is faster that vectorizing on my laptop.
Illustration
For the sake of simplicity let me illustrate this with
weight = RandomReal[1, 200];
pts = RandomReal[1, 200];
M = RandomReal[1, {200, 200}];
f[x_,y_] = (weight*Exp[-pts*x]).Exp[M].(weight*Exp[-pts*y])//N
How would one make the evaluation of f on multiple couples of (x,y) faster than relying on ParallelTable ?
ans = ParallelTable[f[x,y],{x,Range[100]},{y,Range[100]}]
Thanks a lot for your help!