physics seems to be off, the ball sometimes rebounds back along its entry vector, ie entering at a bearing of 45 degrees and bouncing off a stationary horizontal paddle at 225 degrees, which is clearly wrong.
Alternative formulae:
x/y=a, x.y=b => x.x.y/y=a.b => x^2=a.b => x=Sqrt(a.b). Interesting corollary is that a.b is always a square number, isn't that cool?