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|}\left(\sqrt[3]{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 + \left(\frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot -1.45315202700000001 + 1.0614054289999999 \cdot \frac{1}{\frac{{\left(0.32759110000000002 \cdot \left|x\right| + 1\right)}^{2}}{1}}\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}} \cdot \sqrt[3]{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 + \left(\frac{1}{1 + 0.32759110000000002 \cdot \left|x\right|} \cdot -1.45315202700000001 + 1.0614054289999999 \cdot \frac{1}{\frac{{\left(0.32759110000000002 \cdot \left|x\right| + 1\right)}^{2}}{1}}\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}}\right) \cdot \sqrt[3]{\frac{{\left(1 + \left(0.284496735999999972 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{{\left(0.32759110000000002 \cdot \left|x\right| + 1\right)}^{2}} + 1.45315202700000001 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{{\left(0.32759110000000002 \cdot \left|x\right| + 1\right)}^{4}}\right)\right)}^{3} - {\left(1.0614054289999999 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{{\left(0.32759110000000002 \cdot \left|x\right| + 1\right)}^{5}} + \left(1.42141374100000006 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{{\left(0.32759110000000002 \cdot \left|x\right| + 1\right)}^{3}} + 0.25482959199999999 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{0.32759110000000002 \cdot \left|x\right| + 1}\right)\right)}^{3}}{\left(1.0614054289999999 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{{\left(0.32759110000000002 \cdot \left|x\right| + 1\right)}^{5}} + \left(1.42141374100000006 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{{\left(0.32759110000000002 \cdot \left|x\right| + 1\right)}^{3}} + 0.25482959199999999 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{0.32759110000000002 \cdot \left|x\right| + 1}\right)\right) \cdot \left(\left(1.0614054289999999 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{{\left(0.32759110000000002 \cdot \left|x\right| + 1\right)}^{5}} + \left(1.42141374100000006 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{{\left(0.32759110000000002 \cdot \left|x\right| + 1\right)}^{3}} + 0.25482959199999999 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{0.32759110000000002 \cdot \left|x\right| + 1}\right)\right) + \left(1 + \left(0.284496735999999972 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{{\left(0.32759110000000002 \cdot \left|x\right| + 1\right)}^{2}} + 1.45315202700000001 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{{\left(0.32759110000000002 \cdot \left|x\right| + 1\right)}^{4}}\right)\right)\right) + \left(1 + \left(0.284496735999999972 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{{\left(0.32759110000000002 \cdot \left|x\right| + 1\right)}^{2}} + 1.45315202700000001 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{{\left(0.32759110000000002 \cdot \left|x\right| + 1\right)}^{4}}\right)\right) \cdot \left(1 + \left(0.284496735999999972 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{{\left(0.32759110000000002 \cdot \left|x\right| + 1\right)}^{2}} + 1.45315202700000001 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{{\left(0.32759110000000002 \cdot \left|x\right| + 1\right)}^{4}}\right)\right)}}double code(double x) {
return ((double) (1.0 - ((double) (((double) (((double) (1.0 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))))) * ((double) (0.254829592 + ((double) (((double) (1.0 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))))) * ((double) (-0.284496736 + ((double) (((double) (1.0 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))))) * ((double) (1.421413741 + ((double) (((double) (1.0 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))))) * ((double) (-1.453152027 + ((double) (((double) (1.0 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))))) * 1.061405429)))))))))))))))))) * ((double) exp(((double) -(((double) (((double) fabs(x)) * ((double) fabs(x))))))))))));
}
double code(double x) {
return ((double) (((double) (((double) cbrt(((double) (1.0 - ((double) (((double) (((double) (1.0 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))))) * ((double) (0.254829592 + ((double) (((double) (1.0 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))))) * ((double) (-0.284496736 + ((double) (((double) (1.0 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))))) * ((double) (1.421413741 + ((double) (((double) (((double) (1.0 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))))) * -1.453152027)) + ((double) (1.061405429 * ((double) (1.0 / ((double) (((double) pow(((double) (((double) (0.3275911 * ((double) fabs(x)))) + 1.0)), 2.0)) / 1.0)))))))))))))))))))) * ((double) exp(((double) -(((double) (((double) fabs(x)) * ((double) fabs(x)))))))))))))) * ((double) cbrt(((double) (1.0 - ((double) (((double) (((double) (1.0 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))))) * ((double) (0.254829592 + ((double) (((double) (1.0 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))))) * ((double) (-0.284496736 + ((double) (((double) (1.0 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))))) * ((double) (1.421413741 + ((double) (((double) (((double) (1.0 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))))) * -1.453152027)) + ((double) (1.061405429 * ((double) (1.0 / ((double) (((double) pow(((double) (((double) (0.3275911 * ((double) fabs(x)))) + 1.0)), 2.0)) / 1.0)))))))))))))))))))) * ((double) exp(((double) -(((double) (((double) fabs(x)) * ((double) fabs(x)))))))))))))))) * ((double) cbrt(((double) (((double) (((double) pow(((double) (1.0 + ((double) (((double) (0.284496736 * ((double) (((double) exp(((double) -(((double) pow(((double) fabs(x)), 2.0)))))) / ((double) pow(((double) (((double) (0.3275911 * ((double) fabs(x)))) + 1.0)), 2.0)))))) + ((double) (1.453152027 * ((double) (((double) exp(((double) -(((double) pow(((double) fabs(x)), 2.0)))))) / ((double) pow(((double) (((double) (0.3275911 * ((double) fabs(x)))) + 1.0)), 4.0)))))))))), 3.0)) - ((double) pow(((double) (((double) (1.061405429 * ((double) (((double) exp(((double) -(((double) pow(((double) fabs(x)), 2.0)))))) / ((double) pow(((double) (((double) (0.3275911 * ((double) fabs(x)))) + 1.0)), 5.0)))))) + ((double) (((double) (1.421413741 * ((double) (((double) exp(((double) -(((double) pow(((double) fabs(x)), 2.0)))))) / ((double) pow(((double) (((double) (0.3275911 * ((double) fabs(x)))) + 1.0)), 3.0)))))) + ((double) (0.254829592 * ((double) (((double) exp(((double) -(((double) pow(((double) fabs(x)), 2.0)))))) / ((double) (((double) (0.3275911 * ((double) fabs(x)))) + 1.0)))))))))), 3.0)))) / ((double) (((double) (((double) (((double) (1.061405429 * ((double) (((double) exp(((double) -(((double) pow(((double) fabs(x)), 2.0)))))) / ((double) pow(((double) (((double) (0.3275911 * ((double) fabs(x)))) + 1.0)), 5.0)))))) + ((double) (((double) (1.421413741 * ((double) (((double) exp(((double) -(((double) pow(((double) fabs(x)), 2.0)))))) / ((double) pow(((double) (((double) (0.3275911 * ((double) fabs(x)))) + 1.0)), 3.0)))))) + ((double) (0.254829592 * ((double) (((double) exp(((double) -(((double) pow(((double) fabs(x)), 2.0)))))) / ((double) (((double) (0.3275911 * ((double) fabs(x)))) + 1.0)))))))))) * ((double) (((double) (((double) (1.061405429 * ((double) (((double) exp(((double) -(((double) pow(((double) fabs(x)), 2.0)))))) / ((double) pow(((double) (((double) (0.3275911 * ((double) fabs(x)))) + 1.0)), 5.0)))))) + ((double) (((double) (1.421413741 * ((double) (((double) exp(((double) -(((double) pow(((double) fabs(x)), 2.0)))))) / ((double) pow(((double) (((double) (0.3275911 * ((double) fabs(x)))) + 1.0)), 3.0)))))) + ((double) (0.254829592 * ((double) (((double) exp(((double) -(((double) pow(((double) fabs(x)), 2.0)))))) / ((double) (((double) (0.3275911 * ((double) fabs(x)))) + 1.0)))))))))) + ((double) (1.0 + ((double) (((double) (0.284496736 * ((double) (((double) exp(((double) -(((double) pow(((double) fabs(x)), 2.0)))))) / ((double) pow(((double) (((double) (0.3275911 * ((double) fabs(x)))) + 1.0)), 2.0)))))) + ((double) (1.453152027 * ((double) (((double) exp(((double) -(((double) pow(((double) fabs(x)), 2.0)))))) / ((double) pow(((double) (((double) (0.3275911 * ((double) fabs(x)))) + 1.0)), 4.0)))))))))))))) + ((double) (((double) (1.0 + ((double) (((double) (0.284496736 * ((double) (((double) exp(((double) -(((double) pow(((double) fabs(x)), 2.0)))))) / ((double) pow(((double) (((double) (0.3275911 * ((double) fabs(x)))) + 1.0)), 2.0)))))) + ((double) (1.453152027 * ((double) (((double) exp(((double) -(((double) pow(((double) fabs(x)), 2.0)))))) / ((double) pow(((double) (((double) (0.3275911 * ((double) fabs(x)))) + 1.0)), 4.0)))))))))) * ((double) (1.0 + ((double) (((double) (0.284496736 * ((double) (((double) exp(((double) -(((double) pow(((double) fabs(x)), 2.0)))))) / ((double) pow(((double) (((double) (0.3275911 * ((double) fabs(x)))) + 1.0)), 2.0)))))) + ((double) (1.453152027 * ((double) (((double) exp(((double) -(((double) pow(((double) fabs(x)), 2.0)))))) / ((double) pow(((double) (((double) (0.3275911 * ((double) fabs(x)))) + 1.0)), 4.0))))))))))))))))))));
}



Bits error versus x
Results
Initial program 13.8
rmApplied distribute-lft-in13.8
Simplified13.8
rmApplied add-cube-cbrt13.8
Taylor expanded around 0 13.1
rmApplied flip3--12.1
Simplified12.1
Final simplification12.1
herbie shell --seed 2020123
(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)))))))