Hi Jack,
a lot of thanks
don't worry about that black hole on 0,0 -- it should be there , it's a (near) by zero division ...
"distortion is severe" -- maybe you have to change the loop escape mechanism (I wrote this with double floats in mind)
(residu > 0.0000001) replace-> (residu > 0.00001). it's possible with such a small value , the single floats become "bouncing"
The idea of scaling the coefficients is not so bright , I'll include a coordinate system scaling/transformation.
best, Rob