I have a function:

and I need two functions g(x) and h(y) where the following is true:

I don't know if it's possible, but it would greatly improve the quality of my algorithm.
No, it cannot be done. The square root messes things up.
Consider this:
f(0,0) = 1
f(1,0) = e^-1
f(0,1) = e^-1
If g(x) and h(y) existed, you would have
g(0)*h(0) = 1
g(1)*h(0) = e^-1
g(0)*h(1) = e^-1
g(1)*h(1) = (g(1)*h(0)) * (g(0)*h(1)) / (g(0)*h(0)) = e^-2
But f(1,1) = e^-sqrt(2) instead.