计算机计算exp函数原理,exp()函数的数值计算中的系数
經(jīng)過(guò)Cephes來(lái)源搜索后,我認(rèn)為這是Pommier的翻譯錯(cuò)誤。這不是我第一次在Pommier的代碼中看到錯(cuò)誤。我建議在Gromacs中使用數(shù)學(xué)庫(kù)。
從exp.c在Cephe的,
static double C1 = 6.93145751953125E-1;
static double C2 = 1.42860682030941723212E-6;
....
px = floor(LOG2E * x + 0.5);
n = px;
x -= px * C1;
x -= px * C2;
從POMMIER,
_PS_CONST(cephes_exp_C1, 0.693359375);
_PS_CONST(cephes_exp_C2, -2.12194440e-4);
....
//
// fx = LOG2E * x + 0.5
//
fx = _mm_mul_ps(x, *(v4sf*)_ps_cephes_LOG2EF);
fx = _mm_add_ps(fx, *(v4sf*)_ps_0p5);
//
// fx = floor(fx)
//
emm0 = _mm_cvttps_epi32(fx);
tmp = _mm_cvtepi32_ps(emm0);
v4sf mask = _mm_cmpgt_ps(tmp, fx);
mask = _mm_and_ps(mask, one);
fx = _mm_sub_ps(tmp, mask);
//
// x -= fx * C1;
// x -= fx * C2; (Using z allows for better ILP in this step)
//
tmp = _mm_mul_ps(fx, *(v4sf*)_ps_cephes_exp_C1);
v4sf z = _mm_mul_ps(fx, *(v4sf*)_ps_cephes_exp_C2);
x = _mm_sub_ps(x, tmp);
x = _mm_sub_ps(x, z);
總結(jié)
以上是生活随笔為你收集整理的计算机计算exp函数原理,exp()函数的数值计算中的系数的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: php分页技术的作用,分页原理技术细节剖
- 下一篇: python取数字第一位数_python