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



Bits error versus x
Results
Initial program 13.5
rmApplied flip--_binary64_278113.5
Simplified13.5
Simplified13.5
rmApplied add-cbrt-cube_binary64_284210.4
Final simplification10.4
herbie shell --seed 2021098
(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)))))))