这个求指数函数exp()的快速近似方法的原理是什么?
的有关信息介绍如下:
IEEE754规定的,浮点数表达方式是S+E+MS 符号位,尾数的符号位;E 阶,即指数;M 尾数,即有效小数位数;
其中,双精度浮点数double的三个参数分别是符号位 1位,bit63阶 11位,bit62~52尾数 53位,bit51~0
三个系数生成的浮点数值为
然后,reinterpret_cast<int*>(&d)这一句的意思就是,把这串浮点数直接按照整形规则来解析也就是相当于
计算机领域中,有相当多的快速算法,就是用近似计算,把公式一作为x,则常规算法是f(x)然后通过强制类型转换,把浮点数转为整数,相当于把x转换为公式二表示的x',然后将算法用数学变换,加上一些近似处理,转换成整数计算的新算法f(x')。近似的方法并不复杂,比如泰勒展开之类。作近似转换后,把系数拟合到一定精度的常量,就可以生成如题目中那样的算法,那些常量就是magic number
具体的思路,可以看这个答案0x5f3759df这个快速开方中的常数的数学依据是什么? - Belleve 的回答这是这方面算法中,最经典的,快速计算平方根倒数算法的解释,比我简单写的这个答案要更加详实,并且更加容易看懂



