1 - \left(\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(0.2548295919999999936678136691625695675611 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(-0.2844967359999999723108032867457950487733 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(1.421413741000000063863240029604639858007 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(-1.453152027000000012790792425221297889948 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot 1.061405428999999900341322245367337018251\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}\sqrt[3]{\log \left(e^{1 - e^{\left|x\right| \cdot \left(-\left|x\right|\right)} \cdot \left(\left(\frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699} \cdot \left(\left(1.421413741000000063863240029604639858007 + \frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699} \cdot \left(-1.453152027000000012790792425221297889948 + 1.061405428999999900341322245367337018251 \cdot \frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699}\right)\right) \cdot \frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699}\right) + \left(0.2548295919999999936678136691625695675611 + \frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699} \cdot -0.2844967359999999723108032867457950487733\right)\right) \cdot \frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699}\right)}\right)} \cdot \left(\sqrt[3]{\left(\frac{\frac{\frac{1.453152027000000012790792425221297889948}{e^{\left|x\right| \cdot \left|x\right|}}}{\left(1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699\right) \cdot \left(1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699\right)}}{\left(1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699\right) \cdot \left(1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699\right)} - \left(\left(\frac{\frac{0.2548295919999999936678136691625695675611}{e^{\left|x\right| \cdot \left|x\right|}}}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699} + \frac{\frac{1.061405428999999900341322245367337018251}{e^{\left|x\right| \cdot \left|x\right|}}}{{\left(1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699\right)}^{5}}\right) + \frac{\frac{1.421413741000000063863240029604639858007}{e^{\left|x\right| \cdot \left|x\right|}}}{\left(1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699\right) \cdot \left(\left(1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699\right) \cdot \left(1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699\right)\right)}\right)\right) + \left(1 + \frac{\frac{\frac{0.2844967359999999723108032867457950487733}{e^{\left|x\right| \cdot \left|x\right|}}}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699}}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699}\right)} \cdot \sqrt[3]{\log \left(e^{1 - e^{\left|x\right| \cdot \left(-\left|x\right|\right)} \cdot \left(\left(\frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699} \cdot \left(\left(1.421413741000000063863240029604639858007 + \frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699} \cdot \left(-1.453152027000000012790792425221297889948 + 1.061405428999999900341322245367337018251 \cdot \frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699}\right)\right) \cdot \frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699}\right) + \left(0.2548295919999999936678136691625695675611 + \frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699} \cdot -0.2844967359999999723108032867457950487733\right)\right) \cdot \frac{1}{1 + \left|x\right| \cdot 0.3275911000000000239396058532292954623699}\right)}\right)}\right)double f(double x) {
double r8700488 = 1.0;
double r8700489 = 0.3275911;
double r8700490 = x;
double r8700491 = fabs(r8700490);
double r8700492 = r8700489 * r8700491;
double r8700493 = r8700488 + r8700492;
double r8700494 = r8700488 / r8700493;
double r8700495 = 0.254829592;
double r8700496 = -0.284496736;
double r8700497 = 1.421413741;
double r8700498 = -1.453152027;
double r8700499 = 1.061405429;
double r8700500 = r8700494 * r8700499;
double r8700501 = r8700498 + r8700500;
double r8700502 = r8700494 * r8700501;
double r8700503 = r8700497 + r8700502;
double r8700504 = r8700494 * r8700503;
double r8700505 = r8700496 + r8700504;
double r8700506 = r8700494 * r8700505;
double r8700507 = r8700495 + r8700506;
double r8700508 = r8700494 * r8700507;
double r8700509 = r8700491 * r8700491;
double r8700510 = -r8700509;
double r8700511 = exp(r8700510);
double r8700512 = r8700508 * r8700511;
double r8700513 = r8700488 - r8700512;
return r8700513;
}
double f(double x) {
double r8700514 = 1.0;
double r8700515 = x;
double r8700516 = fabs(r8700515);
double r8700517 = -r8700516;
double r8700518 = r8700516 * r8700517;
double r8700519 = exp(r8700518);
double r8700520 = 0.3275911;
double r8700521 = r8700516 * r8700520;
double r8700522 = r8700514 + r8700521;
double r8700523 = r8700514 / r8700522;
double r8700524 = 1.421413741;
double r8700525 = -1.453152027;
double r8700526 = 1.061405429;
double r8700527 = r8700526 * r8700523;
double r8700528 = r8700525 + r8700527;
double r8700529 = r8700523 * r8700528;
double r8700530 = r8700524 + r8700529;
double r8700531 = r8700530 * r8700523;
double r8700532 = r8700523 * r8700531;
double r8700533 = 0.254829592;
double r8700534 = -0.284496736;
double r8700535 = r8700523 * r8700534;
double r8700536 = r8700533 + r8700535;
double r8700537 = r8700532 + r8700536;
double r8700538 = r8700537 * r8700523;
double r8700539 = r8700519 * r8700538;
double r8700540 = r8700514 - r8700539;
double r8700541 = exp(r8700540);
double r8700542 = log(r8700541);
double r8700543 = cbrt(r8700542);
double r8700544 = 1.453152027;
double r8700545 = r8700516 * r8700516;
double r8700546 = exp(r8700545);
double r8700547 = r8700544 / r8700546;
double r8700548 = r8700522 * r8700522;
double r8700549 = r8700547 / r8700548;
double r8700550 = r8700549 / r8700548;
double r8700551 = r8700533 / r8700546;
double r8700552 = r8700551 / r8700522;
double r8700553 = r8700526 / r8700546;
double r8700554 = 5.0;
double r8700555 = pow(r8700522, r8700554);
double r8700556 = r8700553 / r8700555;
double r8700557 = r8700552 + r8700556;
double r8700558 = r8700524 / r8700546;
double r8700559 = r8700522 * r8700548;
double r8700560 = r8700558 / r8700559;
double r8700561 = r8700557 + r8700560;
double r8700562 = r8700550 - r8700561;
double r8700563 = 0.284496736;
double r8700564 = r8700563 / r8700546;
double r8700565 = r8700564 / r8700522;
double r8700566 = r8700565 / r8700522;
double r8700567 = r8700514 + r8700566;
double r8700568 = r8700562 + r8700567;
double r8700569 = cbrt(r8700568);
double r8700570 = r8700569 * r8700543;
double r8700571 = r8700543 * r8700570;
return r8700571;
}



Bits error versus x
Results
Initial program 14.2
rmApplied distribute-rgt-in14.2
Applied associate-+r+14.2
rmApplied add-log-exp14.2
rmApplied add-cube-cbrt14.2
Taylor expanded around 0 14.5
Simplified13.4
Final simplification13.4
herbie shell --seed 2019192
(FPCore (x)
:name "Jmat.Real.erf"
(- 1.0 (* (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) (+ 0.254829592 (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) (+ -0.284496736 (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) (+ 1.421413741 (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) (+ -1.453152027 (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) 1.061405429))))))))) (exp (- (* (fabs x) (fabs x)))))))