Even sqrt(x * x + y * y) is wrong. I'm slightly ashamed to say that I learned of the C hypot function only a few days ago. I've been doing this wrong for decades.
[1]: https://www.johndcook.com/blog/2010/06/02/whats-so-hard-abou...
Is the algorithm in [1] significantly more precise for inputs that don't result in overflow?
Edit: I made a small program to check a few values. It is seems like the algorithm in [1] is better in terms on precision, but only by a small margin (on the small set of values I checked).