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|}\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{\frac{1}{\sqrt{\mathsf{fma}\left(\left|x\right|, 0.32759110000000002, 1\right)}}}{\sqrt{\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|x\right| \cdot \left|x\right|}}, 1\right)double f(double x) {
double r156395 = 1.0;
double r156396 = 0.3275911;
double r156397 = x;
double r156398 = fabs(r156397);
double r156399 = r156396 * r156398;
double r156400 = r156395 + r156399;
double r156401 = r156395 / r156400;
double r156402 = 0.254829592;
double r156403 = -0.284496736;
double r156404 = 1.421413741;
double r156405 = -1.453152027;
double r156406 = 1.061405429;
double r156407 = r156401 * r156406;
double r156408 = r156405 + r156407;
double r156409 = r156401 * r156408;
double r156410 = r156404 + r156409;
double r156411 = r156401 * r156410;
double r156412 = r156403 + r156411;
double r156413 = r156401 * r156412;
double r156414 = r156402 + r156413;
double r156415 = r156401 * r156414;
double r156416 = r156398 * r156398;
double r156417 = -r156416;
double r156418 = exp(r156417);
double r156419 = r156415 * r156418;
double r156420 = r156395 - r156419;
return r156420;
}
double f(double x) {
double r156421 = 1.0;
double r156422 = x;
double r156423 = fabs(r156422);
double r156424 = 0.3275911;
double r156425 = fma(r156423, r156424, r156421);
double r156426 = r156421 / r156425;
double r156427 = -r156426;
double r156428 = sqrt(r156425);
double r156429 = r156421 / r156428;
double r156430 = r156429 / r156428;
double r156431 = 1.061405429;
double r156432 = -1.453152027;
double r156433 = fma(r156430, r156431, r156432);
double r156434 = 1.421413741;
double r156435 = fma(r156426, r156433, r156434);
double r156436 = -0.284496736;
double r156437 = fma(r156435, r156426, r156436);
double r156438 = 0.254829592;
double r156439 = fma(r156426, r156437, r156438);
double r156440 = r156423 * r156423;
double r156441 = exp(r156440);
double r156442 = r156439 / r156441;
double r156443 = fma(r156427, r156442, r156421);
return r156443;
}



Bits error versus x
Initial program 13.8
Simplified13.8
rmApplied add-sqr-sqrt13.8
Applied associate-/r*13.8
Final simplification13.8
herbie shell --seed 2020045 +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)))))))