Another attempt at replacing the current HYPOT macro with a much betterbehaved function. I've added comments addressing those sections of codethat tripped people up before. As well as explaining some of the designdecisions. Feedback appreciated.