快速求解exp方法

版权声明:本文为博主原创文章,未经博主允许不得转载。 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;
}

 

展开阅读全文

没有更多推荐了,返回首页