1 - \left(\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot 1.061405429\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}\log \left(e^{1 - e^{\left(-\left|x\right|\right) \cdot \left|x\right|} \cdot \frac{\log \left(e^{\frac{\frac{\frac{-1.453152027 + 1.061405429 \cdot \frac{1 - \left|x\right| \cdot 0.3275911}{1 - \left(\left|x\right| \cdot 0.3275911\right) \cdot \left(\left|x\right| \cdot 0.3275911\right)}}{1 + \left|x\right| \cdot 0.3275911} + 1.421413741}{1 + \left|x\right| \cdot 0.3275911} + -0.284496736}{1 + \left|x\right| \cdot 0.3275911} + 0.254829592}\right)}{1 + \left|x\right| \cdot 0.3275911}}\right)double f(double x) {
double r3679425 = 1.0;
double r3679426 = 0.3275911;
double r3679427 = x;
double r3679428 = fabs(r3679427);
double r3679429 = r3679426 * r3679428;
double r3679430 = r3679425 + r3679429;
double r3679431 = r3679425 / r3679430;
double r3679432 = 0.254829592;
double r3679433 = -0.284496736;
double r3679434 = 1.421413741;
double r3679435 = -1.453152027;
double r3679436 = 1.061405429;
double r3679437 = r3679431 * r3679436;
double r3679438 = r3679435 + r3679437;
double r3679439 = r3679431 * r3679438;
double r3679440 = r3679434 + r3679439;
double r3679441 = r3679431 * r3679440;
double r3679442 = r3679433 + r3679441;
double r3679443 = r3679431 * r3679442;
double r3679444 = r3679432 + r3679443;
double r3679445 = r3679431 * r3679444;
double r3679446 = r3679428 * r3679428;
double r3679447 = -r3679446;
double r3679448 = exp(r3679447);
double r3679449 = r3679445 * r3679448;
double r3679450 = r3679425 - r3679449;
return r3679450;
}
double f(double x) {
double r3679451 = 1.0;
double r3679452 = x;
double r3679453 = fabs(r3679452);
double r3679454 = -r3679453;
double r3679455 = r3679454 * r3679453;
double r3679456 = exp(r3679455);
double r3679457 = -1.453152027;
double r3679458 = 1.061405429;
double r3679459 = 0.3275911;
double r3679460 = r3679453 * r3679459;
double r3679461 = r3679451 - r3679460;
double r3679462 = r3679460 * r3679460;
double r3679463 = r3679451 - r3679462;
double r3679464 = r3679461 / r3679463;
double r3679465 = r3679458 * r3679464;
double r3679466 = r3679457 + r3679465;
double r3679467 = r3679451 + r3679460;
double r3679468 = r3679466 / r3679467;
double r3679469 = 1.421413741;
double r3679470 = r3679468 + r3679469;
double r3679471 = r3679470 / r3679467;
double r3679472 = -0.284496736;
double r3679473 = r3679471 + r3679472;
double r3679474 = r3679473 / r3679467;
double r3679475 = 0.254829592;
double r3679476 = r3679474 + r3679475;
double r3679477 = exp(r3679476);
double r3679478 = log(r3679477);
double r3679479 = r3679478 / r3679467;
double r3679480 = r3679456 * r3679479;
double r3679481 = r3679451 - r3679480;
double r3679482 = exp(r3679481);
double r3679483 = log(r3679482);
return r3679483;
}



Bits error versus x
Results
Initial program 13.8
rmApplied flip-+13.8
Applied associate-/r/13.8
rmApplied add-log-exp13.8
Applied add-log-exp13.8
Applied diff-log14.5
Simplified13.8
rmApplied add-log-exp13.8
Applied add-log-exp13.8
Applied sum-log13.8
Simplified13.8
Final simplification13.8
herbie shell --seed 2019156
(FPCore (x)
:name "Jmat.Real.erf"
(- 1 (* (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ 0.254829592 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ -0.284496736 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ 1.421413741 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ -1.453152027 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) 1.061405429))))))))) (exp (- (* (fabs x) (fabs x)))))))