/**
* **[高斯误差函数](http://en.wikipedia.org/wiki/Error_function)**
*
* `errorFunction(x/(sd * Math.sqrt(2)))` 表示在标准偏差为 `sd` 的正态分布中,一个值在距离均值 `x` 范围内的概率。
*
* 该函数返回对精确值的数值近似。它使用 Horner 方法来计算 τ (tau) 的多项式。
*
* @param {number} x 输入值
* @return {number} 误差估计值
* @example
* errorFunction(1).toFixed(2); // => '0.84'
*/
function errorFunction(x) {
const t = 1 / (1 + 0.5 * Math.abs(x));
const tau =
t *
Math.exp(
-x * x +
((((((((0.17087277 * t - 0.82215223) * t + 1.48851587) * t -
1.13520398) *
t +
0.27886807) *
t -
0.18628806) *
t +
0.09678418) *
t +
0.37409196) *
t +
1.00002368) *
t -
1.26551223
);
if (x >= 0) {
return 1 - tau;
} else {
return tau - 1;
}
}
export default errorFunction;