1 - \left(\frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(0.25482959199999999 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(-0.284496735999999972 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(1.42141374100000006 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(-1.45315202700000001 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot 1.0614054289999999\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}\frac{{1}^{3} - \sqrt{{\left(\left(\frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(0.25482959199999999 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(-0.284496735999999972 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(1.42141374100000006 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(-1.45315202700000001 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot 1.0614054289999999\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}\right)}^{3}} \cdot \sqrt{{\left(\left(\frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(0.25482959199999999 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(-0.284496735999999972 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(1.42141374100000006 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(-1.45315202700000001 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot 1.0614054289999999\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}\right)}^{3}}}{\left(\left(\frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(0.25482959199999999 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(-0.284496735999999972 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(1.42141374100000006 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(-1.45315202700000001 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot 1.0614054289999999\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}\right) \cdot \left(\left(\frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(0.25482959199999999 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(-0.284496735999999972 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(1.42141374100000006 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot \left(-1.45315202700000001 + \frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot 1.0614054289999999\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|} + 1\right) + 1 \cdot 1}double f(double x) {
double r619 = 1.0;
double r620 = 0.3275911;
double r621 = x;
double r622 = fabs(r621);
double r623 = r620 * r622;
double r624 = r619 + r623;
double r625 = r619 / r624;
double r626 = 0.254829592;
double r627 = -0.284496736;
double r628 = 1.421413741;
double r629 = -1.453152027;
double r630 = 1.061405429;
double r631 = r625 * r630;
double r632 = r629 + r631;
double r633 = r625 * r632;
double r634 = r628 + r633;
double r635 = r625 * r634;
double r636 = r627 + r635;
double r637 = r625 * r636;
double r638 = r626 + r637;
double r639 = r625 * r638;
double r640 = r622 * r622;
double r641 = -r640;
double r642 = exp(r641);
double r643 = r639 * r642;
double r644 = r619 - r643;
return r644;
}
double f(double x) {
double r645 = 1.0;
double r646 = 3.0;
double r647 = pow(r645, r646);
double r648 = 0.3275911;
double r649 = x;
double r650 = fabs(r649);
double r651 = r648 * r650;
double r652 = r645 + r651;
double r653 = r645 / r652;
double r654 = 0.254829592;
double r655 = -0.284496736;
double r656 = 1.421413741;
double r657 = -1.453152027;
double r658 = 1.061405429;
double r659 = r653 * r658;
double r660 = r657 + r659;
double r661 = r653 * r660;
double r662 = r656 + r661;
double r663 = r653 * r662;
double r664 = r655 + r663;
double r665 = r653 * r664;
double r666 = r654 + r665;
double r667 = r653 * r666;
double r668 = r650 * r650;
double r669 = -r668;
double r670 = exp(r669);
double r671 = r667 * r670;
double r672 = pow(r671, r646);
double r673 = sqrt(r672);
double r674 = r673 * r673;
double r675 = r647 - r674;
double r676 = r671 + r645;
double r677 = r671 * r676;
double r678 = r645 * r645;
double r679 = r677 + r678;
double r680 = r675 / r679;
return r680;
}



Bits error versus x
Results
Initial program 13.4
rmApplied flip3--13.4
Simplified13.4
rmApplied add-sqr-sqrt12.7
Final simplification12.7
herbie shell --seed 2020025
(FPCore (x)
:name "Jmat.Real.erf"
:precision binary64
(- 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)))))))