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|}e^{\log \left(\frac{1 \cdot 1 - \frac{\frac{1 \cdot \left(\frac{\mathsf{fma}\left(\frac{1}{\mathsf{fma}\left(\left|x\right|, 0.32759110000000002, 1\right)}, \mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{\mathsf{fma}\left(\left|x\right|, 0.32759110000000002, 1\right)}, \mathsf{fma}\left(\frac{1}{\mathsf{fma}\left(\left|x\right|, 0.32759110000000002, 1\right)}, 1.0614054289999999, -1.45315202700000001\right), 1.42141374100000006\right), \frac{1}{\mathsf{fma}\left(\left|x\right|, 0.32759110000000002, 1\right)}, -0.284496735999999972\right), 0.25482959199999999\right)}{e^{{\left(\left|x\right|\right)}^{2}}} \cdot 1\right)}{{\left(\mathsf{fma}\left(\left|x\right|, 0.32759110000000002, 1\right)\right)}^{2}}}{\frac{e^{{\left(\left|x\right|\right)}^{2}}}{\mathsf{fma}\left(\frac{1}{\mathsf{fma}\left(\left|x\right|, 0.32759110000000002, 1\right)}, \mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{\mathsf{fma}\left(\left|x\right|, 0.32759110000000002, 1\right)}, \mathsf{fma}\left(\frac{1}{\mathsf{fma}\left(\left|x\right|, 0.32759110000000002, 1\right)}, 1.0614054289999999, -1.45315202700000001\right), 1.42141374100000006\right), \frac{1}{\mathsf{fma}\left(\left|x\right|, 0.32759110000000002, 1\right)}, -0.284496735999999972\right), 0.25482959199999999\right)}}}{\mathsf{fma}\left(\frac{1}{\mathsf{fma}\left(\left|x\right|, 0.32759110000000002, 1\right)}, \frac{\mathsf{fma}\left(\frac{1}{\mathsf{fma}\left(\left|x\right|, 0.32759110000000002, 1\right)}, \mathsf{fma}\left(\mathsf{fma}\left(\frac{1}{\mathsf{fma}\left(\left|x\right|, 0.32759110000000002, 1\right)}, \mathsf{fma}\left(\frac{1}{\mathsf{fma}\left(\left|x\right|, 0.32759110000000002, 1\right)}, 1.0614054289999999, -1.45315202700000001\right), 1.42141374100000006\right), \frac{1}{\mathsf{fma}\left(\left|x\right|, 0.32759110000000002, 1\right)}, -0.284496735999999972\right), 0.25482959199999999\right)}{e^{{\left(\left|x\right|\right)}^{2}}}, 1\right)}\right)}double f(double x) {
double r234256 = 1.0;
double r234257 = 0.3275911;
double r234258 = x;
double r234259 = fabs(r234258);
double r234260 = r234257 * r234259;
double r234261 = r234256 + r234260;
double r234262 = r234256 / r234261;
double r234263 = 0.254829592;
double r234264 = -0.284496736;
double r234265 = 1.421413741;
double r234266 = -1.453152027;
double r234267 = 1.061405429;
double r234268 = r234262 * r234267;
double r234269 = r234266 + r234268;
double r234270 = r234262 * r234269;
double r234271 = r234265 + r234270;
double r234272 = r234262 * r234271;
double r234273 = r234264 + r234272;
double r234274 = r234262 * r234273;
double r234275 = r234263 + r234274;
double r234276 = r234262 * r234275;
double r234277 = r234259 * r234259;
double r234278 = -r234277;
double r234279 = exp(r234278);
double r234280 = r234276 * r234279;
double r234281 = r234256 - r234280;
return r234281;
}
double f(double x) {
double r234282 = 1.0;
double r234283 = r234282 * r234282;
double r234284 = x;
double r234285 = fabs(r234284);
double r234286 = 0.3275911;
double r234287 = fma(r234285, r234286, r234282);
double r234288 = r234282 / r234287;
double r234289 = 1.061405429;
double r234290 = -1.453152027;
double r234291 = fma(r234288, r234289, r234290);
double r234292 = 1.421413741;
double r234293 = fma(r234288, r234291, r234292);
double r234294 = -0.284496736;
double r234295 = fma(r234293, r234288, r234294);
double r234296 = 0.254829592;
double r234297 = fma(r234288, r234295, r234296);
double r234298 = 2.0;
double r234299 = pow(r234285, r234298);
double r234300 = exp(r234299);
double r234301 = r234297 / r234300;
double r234302 = r234301 * r234282;
double r234303 = r234282 * r234302;
double r234304 = pow(r234287, r234298);
double r234305 = r234303 / r234304;
double r234306 = r234300 / r234297;
double r234307 = r234305 / r234306;
double r234308 = r234283 - r234307;
double r234309 = fma(r234288, r234301, r234282);
double r234310 = r234308 / r234309;
double r234311 = log(r234310);
double r234312 = exp(r234311);
return r234312;
}



Bits error versus x
Initial program 13.8
Simplified13.7
rmApplied add-exp-log13.7
Simplified13.7
rmApplied flip--13.7
Simplified10.6
Simplified10.6
Final simplification10.6
herbie shell --seed 2020047 +o rules:numerics
(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)))))))