\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|1 \cdot \left(\frac{1}{\sqrt{\pi}} \cdot \mathsf{fma}\left(\frac{\sqrt[3]{1} \cdot \sqrt[3]{1}}{\sqrt{21}} \cdot \left(\frac{\sqrt[3]{1}}{\sqrt{21}} \cdot {\left(\left|x\right|\right)}^{6}\right), \left|x\right|, \mathsf{fma}\left(\left(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{3}\right) \cdot \left|x\right|, \left|x\right|, \mathsf{fma}\left(\left|x\right|, 2, {\left(\left|x\right|\right)}^{3} \cdot \frac{2}{3}\right)\right)\right)\right)\right|double f(double x) {
double r155320 = 1.0;
double r155321 = atan2(1.0, 0.0);
double r155322 = sqrt(r155321);
double r155323 = r155320 / r155322;
double r155324 = 2.0;
double r155325 = x;
double r155326 = fabs(r155325);
double r155327 = r155324 * r155326;
double r155328 = 3.0;
double r155329 = r155324 / r155328;
double r155330 = r155326 * r155326;
double r155331 = r155330 * r155326;
double r155332 = r155329 * r155331;
double r155333 = r155327 + r155332;
double r155334 = 5.0;
double r155335 = r155320 / r155334;
double r155336 = r155331 * r155326;
double r155337 = r155336 * r155326;
double r155338 = r155335 * r155337;
double r155339 = r155333 + r155338;
double r155340 = 21.0;
double r155341 = r155320 / r155340;
double r155342 = r155337 * r155326;
double r155343 = r155342 * r155326;
double r155344 = r155341 * r155343;
double r155345 = r155339 + r155344;
double r155346 = r155323 * r155345;
double r155347 = fabs(r155346);
return r155347;
}
double f(double x) {
double r155348 = 1.0;
double r155349 = 1.0;
double r155350 = atan2(1.0, 0.0);
double r155351 = sqrt(r155350);
double r155352 = r155349 / r155351;
double r155353 = cbrt(r155349);
double r155354 = r155353 * r155353;
double r155355 = 21.0;
double r155356 = sqrt(r155355);
double r155357 = r155354 / r155356;
double r155358 = r155353 / r155356;
double r155359 = x;
double r155360 = fabs(r155359);
double r155361 = 6.0;
double r155362 = pow(r155360, r155361);
double r155363 = r155358 * r155362;
double r155364 = r155357 * r155363;
double r155365 = 5.0;
double r155366 = r155349 / r155365;
double r155367 = 3.0;
double r155368 = pow(r155360, r155367);
double r155369 = r155366 * r155368;
double r155370 = r155369 * r155360;
double r155371 = 2.0;
double r155372 = 3.0;
double r155373 = r155371 / r155372;
double r155374 = r155368 * r155373;
double r155375 = fma(r155360, r155371, r155374);
double r155376 = fma(r155370, r155360, r155375);
double r155377 = fma(r155364, r155360, r155376);
double r155378 = r155352 * r155377;
double r155379 = r155348 * r155378;
double r155380 = fabs(r155379);
return r155380;
}



Bits error versus x
Initial program 0.2
rmApplied add-sqr-sqrt0.2
Applied add-cube-cbrt0.2
Applied times-frac0.2
Applied associate-*l*0.2
Simplified0.2
rmApplied *-un-lft-identity0.2
Applied associate-*l*0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020001 +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)))))))