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{e^{\log \left(1 - \frac{0.254829592 + \frac{\frac{1.421413741}{1 + 0.3275911 \cdot \left|x\right|} + \left(\frac{-1.453152027 + \frac{1.061405429}{1 + 0.3275911 \cdot \left|x\right|}}{{\left(1 + 0.3275911 \cdot \left|x\right|\right)}^{2}} + -0.284496736\right)}{1 + 0.3275911 \cdot \left|x\right|}}{\left(1 + 0.3275911 \cdot \left|x\right|\right) \cdot e^{{\left(\left|x\right|\right)}^{2}}}\right)}} \cdot \sqrt{1 - \frac{\sqrt[3]{{\left(0.254829592 + \frac{\frac{1.421413741}{1 + 0.3275911 \cdot \left|x\right|} + \left(\frac{-1.453152027 + \frac{1.061405429}{1 + 0.3275911 \cdot \left|x\right|}}{{\left(1 + 0.3275911 \cdot \left|x\right|\right)}^{2}} + -0.284496736\right)}{1 + 0.3275911 \cdot \left|x\right|}\right)}^{3}}}{\left(1 + 0.3275911 \cdot \left|x\right|\right) \cdot e^{{\left(\left|x\right|\right)}^{2}}}}(FPCore (x)
:precision binary64
(-
1.0
(*
(*
(/ 1.0 (+ 1.0 (* 0.3275911 (fabs x))))
(+
0.254829592
(*
(/ 1.0 (+ 1.0 (* 0.3275911 (fabs x))))
(+
-0.284496736
(*
(/ 1.0 (+ 1.0 (* 0.3275911 (fabs x))))
(+
1.421413741
(*
(/ 1.0 (+ 1.0 (* 0.3275911 (fabs x))))
(+
-1.453152027
(* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) 1.061405429)))))))))
(exp (- (* (fabs x) (fabs x)))))))(FPCore (x)
:precision binary64
(*
(sqrt
(exp
(log
(-
1.0
(/
(+
0.254829592
(/
(+
(/ 1.421413741 (+ 1.0 (* 0.3275911 (fabs x))))
(+
(/
(+ -1.453152027 (/ 1.061405429 (+ 1.0 (* 0.3275911 (fabs x)))))
(pow (+ 1.0 (* 0.3275911 (fabs x))) 2.0))
-0.284496736))
(+ 1.0 (* 0.3275911 (fabs x)))))
(* (+ 1.0 (* 0.3275911 (fabs x))) (exp (pow (fabs x) 2.0))))))))
(sqrt
(-
1.0
(/
(cbrt
(pow
(+
0.254829592
(/
(+
(/ 1.421413741 (+ 1.0 (* 0.3275911 (fabs x))))
(+
(/
(+ -1.453152027 (/ 1.061405429 (+ 1.0 (* 0.3275911 (fabs x)))))
(pow (+ 1.0 (* 0.3275911 (fabs x))) 2.0))
-0.284496736))
(+ 1.0 (* 0.3275911 (fabs x)))))
3.0))
(* (+ 1.0 (* 0.3275911 (fabs x))) (exp (pow (fabs x) 2.0))))))))double code(double x) {
return 1.0 - (((1.0 / (1.0 + (0.3275911 * fabs(x)))) * (0.254829592 + ((1.0 / (1.0 + (0.3275911 * fabs(x)))) * (-0.284496736 + ((1.0 / (1.0 + (0.3275911 * fabs(x)))) * (1.421413741 + ((1.0 / (1.0 + (0.3275911 * fabs(x)))) * (-1.453152027 + ((1.0 / (1.0 + (0.3275911 * fabs(x)))) * 1.061405429))))))))) * exp(-(fabs(x) * fabs(x))));
}
double code(double x) {
return sqrt(exp(log(1.0 - ((0.254829592 + (((1.421413741 / (1.0 + (0.3275911 * fabs(x)))) + (((-1.453152027 + (1.061405429 / (1.0 + (0.3275911 * fabs(x))))) / pow((1.0 + (0.3275911 * fabs(x))), 2.0)) + -0.284496736)) / (1.0 + (0.3275911 * fabs(x))))) / ((1.0 + (0.3275911 * fabs(x))) * exp(pow(fabs(x), 2.0))))))) * sqrt(1.0 - (cbrt(pow((0.254829592 + (((1.421413741 / (1.0 + (0.3275911 * fabs(x)))) + (((-1.453152027 + (1.061405429 / (1.0 + (0.3275911 * fabs(x))))) / pow((1.0 + (0.3275911 * fabs(x))), 2.0)) + -0.284496736)) / (1.0 + (0.3275911 * fabs(x))))), 3.0)) / ((1.0 + (0.3275911 * fabs(x))) * exp(pow(fabs(x), 2.0)))));
}



Bits error versus x
Results
Initial program 13.6
Simplified13.6
Taylor expanded around 0 13.6
Simplified13.6
rmApplied add-sqr-sqrt_binary64_57513.6
Simplified13.6
Simplified13.6
rmApplied add-cbrt-cube_binary64_5622.2
Simplified2.2
rmApplied add-exp-log_binary64_5542.0
Final simplification2.0
herbie shell --seed 2020233
(FPCore (x)
:name "Jmat.Real.erf"
:precision binary64
(- 1.0 (* (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) (+ 0.254829592 (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) (+ -0.284496736 (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) (+ 1.421413741 (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) (+ -1.453152027 (* (/ 1.0 (+ 1.0 (* 0.3275911 (fabs x)))) 1.061405429))))))))) (exp (- (* (fabs x) (fabs x)))))))