在数值计算中,经常需要将数字缩放到安全范围内。例如计算欧氏距离:sqrt(a^2+b^2)。这里,如果a或b的大小太小/太大,则可能发生下溢/溢出。解决此问题的常用方法是将数字除以最大幅度的数字。然而,这个解决方案是:慢(除法慢)导致一些额外的不准确所以我认为与其除以最大幅度的数,不如将它乘以一个接近的2的幂倒数。这似乎是一个更好的解决方案,因为:乘法比除法快得多更高的准确性,因为乘以2的幂数是精确的所以,我想创建一个小的效用函数,它具有这样的逻辑(^,我的意思是取幂):voidgetScaler(doublevalue,double&scaler,double&scalerRecip