double f(double x) {
double r21346755 = 1.0;
double r21346756 = 0.3275911;
double r21346757 = x;
double r21346758 = fabs(r21346757);
double r21346759 = r21346756 * r21346758;
double r21346760 = r21346755 + r21346759;
double r21346761 = r21346755 / r21346760;
double r21346762 = 0.254829592;
double r21346763 = -0.284496736;
double r21346764 = 1.421413741;
double r21346765 = -1.453152027;
double r21346766 = 1.061405429;
double r21346767 = r21346761 * r21346766;
double r21346768 = r21346765 + r21346767;
double r21346769 = r21346761 * r21346768;
double r21346770 = r21346764 + r21346769;
double r21346771 = r21346761 * r21346770;
double r21346772 = r21346763 + r21346771;
double r21346773 = r21346761 * r21346772;
double r21346774 = r21346762 + r21346773;
double r21346775 = r21346761 * r21346774;
double r21346776 = r21346758 * r21346758;
double r21346777 = -r21346776;
double r21346778 = exp(r21346777);
double r21346779 = r21346775 * r21346778;
double r21346780 = r21346755 - r21346779;
return r21346780;
}
double f(double x) {
double r21346781 = 1.0;
double r21346782 = 0.254829592;
double r21346783 = -0.284496736;
double r21346784 = 1.421413741;
double r21346785 = 1.061405429;
double r21346786 = x;
double r21346787 = fabs(r21346786);
double r21346788 = 0.3275911;
double r21346789 = r21346787 * r21346788;
double r21346790 = r21346781 + r21346789;
double r21346791 = r21346785 / r21346790;
double r21346792 = -1.453152027;
double r21346793 = r21346791 + r21346792;
double r21346794 = r21346793 / r21346790;
double r21346795 = r21346784 + r21346794;
double r21346796 = r21346795 / r21346790;
double r21346797 = r21346783 + r21346796;
double r21346798 = r21346797 / r21346790;
double r21346799 = r21346782 + r21346798;
double r21346800 = r21346799 / r21346790;
double r21346801 = r21346787 * r21346787;
double r21346802 = exp(r21346801);
double r21346803 = r21346800 / r21346802;
double r21346804 = sqrt(r21346803);
double r21346805 = r21346781 - r21346804;
double r21346806 = exp(r21346805);
double r21346807 = log(r21346806);
double r21346808 = r21346807 * r21346807;
double r21346809 = r21346790 * r21346790;
double r21346810 = r21346809 * r21346809;
double r21346811 = r21346785 / r21346810;
double r21346812 = r21346784 / r21346809;
double r21346813 = r21346782 + r21346812;
double r21346814 = r21346811 + r21346813;
double r21346815 = 0.284496736;
double r21346816 = r21346815 / r21346790;
double r21346817 = 1.453152027;
double r21346818 = r21346809 * r21346790;
double r21346819 = r21346817 / r21346818;
double r21346820 = r21346816 + r21346819;
double r21346821 = r21346814 - r21346820;
double r21346822 = r21346821 / r21346802;
double r21346823 = r21346822 / r21346790;
double r21346824 = sqrt(r21346823);
double r21346825 = r21346781 - r21346824;
double r21346826 = r21346808 * r21346825;
double r21346827 = cbrt(r21346826);
double r21346828 = r21346804 + r21346781;
double r21346829 = r21346827 * r21346828;
return r21346829;
}
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|}\sqrt[3]{\left(\log \left(e^{1 - \sqrt{\frac{\frac{0.254829592 + \frac{-0.284496736 + \frac{1.421413741 + \frac{\frac{1.061405429}{1 + \left|x\right| \cdot 0.3275911} + -1.453152027}{1 + \left|x\right| \cdot 0.3275911}}{1 + \left|x\right| \cdot 0.3275911}}{1 + \left|x\right| \cdot 0.3275911}}{1 + \left|x\right| \cdot 0.3275911}}{e^{\left|x\right| \cdot \left|x\right|}}}}\right) \cdot \log \left(e^{1 - \sqrt{\frac{\frac{0.254829592 + \frac{-0.284496736 + \frac{1.421413741 + \frac{\frac{1.061405429}{1 + \left|x\right| \cdot 0.3275911} + -1.453152027}{1 + \left|x\right| \cdot 0.3275911}}{1 + \left|x\right| \cdot 0.3275911}}{1 + \left|x\right| \cdot 0.3275911}}{1 + \left|x\right| \cdot 0.3275911}}{e^{\left|x\right| \cdot \left|x\right|}}}}\right)\right) \cdot \left(1 - \sqrt{\frac{\frac{\left(\frac{1.061405429}{\left(\left(1 + \left|x\right| \cdot 0.3275911\right) \cdot \left(1 + \left|x\right| \cdot 0.3275911\right)\right) \cdot \left(\left(1 + \left|x\right| \cdot 0.3275911\right) \cdot \left(1 + \left|x\right| \cdot 0.3275911\right)\right)} + \left(0.254829592 + \frac{1.421413741}{\left(1 + \left|x\right| \cdot 0.3275911\right) \cdot \left(1 + \left|x\right| \cdot 0.3275911\right)}\right)\right) - \left(\frac{0.284496736}{1 + \left|x\right| \cdot 0.3275911} + \frac{1.453152027}{\left(\left(1 + \left|x\right| \cdot 0.3275911\right) \cdot \left(1 + \left|x\right| \cdot 0.3275911\right)\right) \cdot \left(1 + \left|x\right| \cdot 0.3275911\right)}\right)}{e^{\left|x\right| \cdot \left|x\right|}}}{1 + \left|x\right| \cdot 0.3275911}}\right)} \cdot \left(\sqrt{\frac{\frac{0.254829592 + \frac{-0.284496736 + \frac{1.421413741 + \frac{\frac{1.061405429}{1 + \left|x\right| \cdot 0.3275911} + -1.453152027}{1 + \left|x\right| \cdot 0.3275911}}{1 + \left|x\right| \cdot 0.3275911}}{1 + \left|x\right| \cdot 0.3275911}}{1 + \left|x\right| \cdot 0.3275911}}{e^{\left|x\right| \cdot \left|x\right|}}} + 1\right)


Bits error versus x
Initial program 13.7
Simplified13.7
rmApplied add-sqr-sqrt13.7
Applied *-un-lft-identity13.7
Applied difference-of-squares13.7
rmApplied add-log-exp13.7
rmApplied add-cbrt-cube13.7
Taylor expanded around inf 13.0
Simplified13.0
Final simplification13.0
herbie shell --seed 2019102
(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)))))))