\left|\frac{1}{\sqrt{\pi}} \cdot \left(\left(\left(2 \cdot \left|x\right| + \frac{2}{3} \cdot \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{5} \cdot \left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{21} \cdot \left(\left(\left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right|\left|\left(1 \cdot \sqrt{\frac{1}{\pi}}\right) \cdot \mathsf{fma}\left(0.66666666666666663, {\left(\left|x\right|\right)}^{3}, \mathsf{fma}\left(0.20000000000000001, {\left(\left|x\right|\right)}^{5}, \mathsf{fma}\left(2, \left|x\right|, 0.047619047619047616 \cdot {\left(\left|x\right|\right)}^{7}\right)\right)\right)\right|double f(double x) {
double r223300 = 1.0;
double r223301 = atan2(1.0, 0.0);
double r223302 = sqrt(r223301);
double r223303 = r223300 / r223302;
double r223304 = 2.0;
double r223305 = x;
double r223306 = fabs(r223305);
double r223307 = r223304 * r223306;
double r223308 = 3.0;
double r223309 = r223304 / r223308;
double r223310 = r223306 * r223306;
double r223311 = r223310 * r223306;
double r223312 = r223309 * r223311;
double r223313 = r223307 + r223312;
double r223314 = 5.0;
double r223315 = r223300 / r223314;
double r223316 = r223311 * r223306;
double r223317 = r223316 * r223306;
double r223318 = r223315 * r223317;
double r223319 = r223313 + r223318;
double r223320 = 21.0;
double r223321 = r223300 / r223320;
double r223322 = r223317 * r223306;
double r223323 = r223322 * r223306;
double r223324 = r223321 * r223323;
double r223325 = r223319 + r223324;
double r223326 = r223303 * r223325;
double r223327 = fabs(r223326);
return r223327;
}
double f(double x) {
double r223328 = 1.0;
double r223329 = 1.0;
double r223330 = atan2(1.0, 0.0);
double r223331 = r223329 / r223330;
double r223332 = sqrt(r223331);
double r223333 = r223328 * r223332;
double r223334 = 0.6666666666666666;
double r223335 = x;
double r223336 = fabs(r223335);
double r223337 = 3.0;
double r223338 = pow(r223336, r223337);
double r223339 = 0.2;
double r223340 = 5.0;
double r223341 = pow(r223336, r223340);
double r223342 = 2.0;
double r223343 = 0.047619047619047616;
double r223344 = 7.0;
double r223345 = pow(r223336, r223344);
double r223346 = r223343 * r223345;
double r223347 = fma(r223342, r223336, r223346);
double r223348 = fma(r223339, r223341, r223347);
double r223349 = fma(r223334, r223338, r223348);
double r223350 = r223333 * r223349;
double r223351 = fabs(r223350);
return r223351;
}



Bits error versus x
Initial program 0.2
Taylor expanded around 0 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020057 +o rules:numerics
(FPCore (x)
:name "Jmat.Real.erfi, branch x less than or equal to 0.5"
:precision binary64
(fabs (* (/ 1 (sqrt PI)) (+ (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))))