\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|\frac{1}{\sqrt{\pi}} \cdot \left(\left(\frac{1}{5} \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \left(\left|x\right| \cdot 2 + \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \frac{2}{3}\right)\right) + \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \sqrt{\left|x\right|}\right) \cdot \sqrt{\left|x\right|}\right)\right)\right)\right) \cdot \frac{1}{21}\right)\right|double f(double x) {
double r1876405 = 1.0;
double r1876406 = atan2(1.0, 0.0);
double r1876407 = sqrt(r1876406);
double r1876408 = r1876405 / r1876407;
double r1876409 = 2.0;
double r1876410 = x;
double r1876411 = fabs(r1876410);
double r1876412 = r1876409 * r1876411;
double r1876413 = 3.0;
double r1876414 = r1876409 / r1876413;
double r1876415 = r1876411 * r1876411;
double r1876416 = r1876415 * r1876411;
double r1876417 = r1876414 * r1876416;
double r1876418 = r1876412 + r1876417;
double r1876419 = 5.0;
double r1876420 = r1876405 / r1876419;
double r1876421 = r1876416 * r1876411;
double r1876422 = r1876421 * r1876411;
double r1876423 = r1876420 * r1876422;
double r1876424 = r1876418 + r1876423;
double r1876425 = 21.0;
double r1876426 = r1876405 / r1876425;
double r1876427 = r1876422 * r1876411;
double r1876428 = r1876427 * r1876411;
double r1876429 = r1876426 * r1876428;
double r1876430 = r1876424 + r1876429;
double r1876431 = r1876408 * r1876430;
double r1876432 = fabs(r1876431);
return r1876432;
}
double f(double x) {
double r1876433 = 1.0;
double r1876434 = atan2(1.0, 0.0);
double r1876435 = sqrt(r1876434);
double r1876436 = r1876433 / r1876435;
double r1876437 = 0.2;
double r1876438 = x;
double r1876439 = fabs(r1876438);
double r1876440 = r1876439 * r1876439;
double r1876441 = r1876440 * r1876439;
double r1876442 = r1876441 * r1876439;
double r1876443 = r1876439 * r1876442;
double r1876444 = r1876437 * r1876443;
double r1876445 = 2.0;
double r1876446 = r1876439 * r1876445;
double r1876447 = 0.6666666666666666;
double r1876448 = r1876441 * r1876447;
double r1876449 = r1876446 + r1876448;
double r1876450 = r1876444 + r1876449;
double r1876451 = sqrt(r1876439);
double r1876452 = r1876441 * r1876451;
double r1876453 = r1876452 * r1876451;
double r1876454 = r1876439 * r1876453;
double r1876455 = r1876439 * r1876454;
double r1876456 = r1876439 * r1876455;
double r1876457 = 0.047619047619047616;
double r1876458 = r1876456 * r1876457;
double r1876459 = r1876450 + r1876458;
double r1876460 = r1876436 * r1876459;
double r1876461 = fabs(r1876460);
return r1876461;
}



Bits error versus x
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.2
Applied associate-*r*0.2
Final simplification0.2
herbie shell --seed 2019153 +o rules:numerics
(FPCore (x)
:name "Jmat.Real.erfi, branch x less than or equal to 0.5"
(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)))))))