\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(\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|double f(double x) {
double r143414 = 1.0;
double r143415 = atan2(1.0, 0.0);
double r143416 = sqrt(r143415);
double r143417 = r143414 / r143416;
double r143418 = 2.0;
double r143419 = x;
double r143420 = fabs(r143419);
double r143421 = r143418 * r143420;
double r143422 = 3.0;
double r143423 = r143418 / r143422;
double r143424 = r143420 * r143420;
double r143425 = r143424 * r143420;
double r143426 = r143423 * r143425;
double r143427 = r143421 + r143426;
double r143428 = 5.0;
double r143429 = r143414 / r143428;
double r143430 = r143425 * r143420;
double r143431 = r143430 * r143420;
double r143432 = r143429 * r143431;
double r143433 = r143427 + r143432;
double r143434 = 21.0;
double r143435 = r143414 / r143434;
double r143436 = r143431 * r143420;
double r143437 = r143436 * r143420;
double r143438 = r143435 * r143437;
double r143439 = r143433 + r143438;
double r143440 = r143417 * r143439;
double r143441 = fabs(r143440);
return r143441;
}
double f(double x) {
double r143442 = 1.0;
double r143443 = atan2(1.0, 0.0);
double r143444 = sqrt(r143443);
double r143445 = r143442 / r143444;
double r143446 = 2.0;
double r143447 = x;
double r143448 = fabs(r143447);
double r143449 = r143446 * r143448;
double r143450 = 3.0;
double r143451 = r143446 / r143450;
double r143452 = r143448 * r143448;
double r143453 = r143452 * r143448;
double r143454 = r143451 * r143453;
double r143455 = r143449 + r143454;
double r143456 = 5.0;
double r143457 = r143442 / r143456;
double r143458 = r143453 * r143448;
double r143459 = r143458 * r143448;
double r143460 = r143457 * r143459;
double r143461 = r143455 + r143460;
double r143462 = 21.0;
double r143463 = r143442 / r143462;
double r143464 = r143459 * r143448;
double r143465 = r143464 * r143448;
double r143466 = r143463 * r143465;
double r143467 = r143461 + r143466;
double r143468 = r143445 * r143467;
double r143469 = fabs(r143468);
return r143469;
}



Bits error versus x
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2019346
(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)))))))