版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yz930618/article/details/84994861
开发线上项目时,效率往往是一个十分重要的指标。程序在计算指数exp时,一般是通过泰勒展开近似的,为了保证精度,所展开的泰勒项特别多。因此,exp的求解是十分耗时的。下面,提供一种快速求解exp的方法。
double fast_exp(double x){
double d;
// 先将尾数的后32位抹零。
*(reinterpret_cast<int*>(&d) + 0) = 0;
//再计算指数位,移位,加上偏移量和补偿值
*(reinterpret_cast<int*>(&d) + 1) = static_cast<int>(1512775 * x + 1072632447);
return d;
}