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}^{3} - {\left(\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(\left(0.254829592 + \left(\frac{1.421413741}{{\left(1 + 0.3275911 \cdot \left|x\right|\right)}^{2}} + \left(\frac{1.061405429}{{\left(1 + 0.3275911 \cdot \left|x\right|\right)}^{4}} - \left(\frac{1.453152027}{{\left(1 + 0.3275911 \cdot \left|x\right|\right)}^{3}} + \frac{0.284496736}{1 + 0.3275911 \cdot \left|x\right|}\right)\right)\right)\right) \cdot e^{-{\left(\left|x\right|\right)}^{2}}\right)\right)}^{3}}{1 \cdot 1 + \left(\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(\left(0.254829592 + \left(\frac{1.421413741}{{\left(1 + 0.3275911 \cdot \left|x\right|\right)}^{2}} + \left(\frac{1.061405429}{{\left(1 + 0.3275911 \cdot \left|x\right|\right)}^{4}} - \left(\frac{1.453152027}{{\left(1 + 0.3275911 \cdot \left|x\right|\right)}^{3}} + \frac{0.284496736}{1 + 0.3275911 \cdot \left|x\right|}\right)\right)\right)\right) \cdot e^{-{\left(\left|x\right|\right)}^{2}}\right)\right) \cdot \left(1 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(\left(0.254829592 + \left(\frac{1.421413741}{{\left(1 + 0.3275911 \cdot \left|x\right|\right)}^{2}} + \left(\frac{1.061405429}{{\left(1 + 0.3275911 \cdot \left|x\right|\right)}^{4}} - \left(\frac{1.453152027}{{\left(1 + 0.3275911 \cdot \left|x\right|\right)}^{3}} + \frac{0.284496736}{1 + 0.3275911 \cdot \left|x\right|}\right)\right)\right)\right) \cdot e^{-{\left(\left|x\right|\right)}^{2}}\right)\right)}(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
(/
(-
(pow 1.0 3.0)
(pow
(*
(/ 1.0 (+ 1.0 (* 0.3275911 (fabs x))))
(*
(+
0.254829592
(+
(/ 1.421413741 (pow (+ 1.0 (* 0.3275911 (fabs x))) 2.0))
(-
(/ 1.061405429 (pow (+ 1.0 (* 0.3275911 (fabs x))) 4.0))
(+
(/ 1.453152027 (pow (+ 1.0 (* 0.3275911 (fabs x))) 3.0))
(/ 0.284496736 (+ 1.0 (* 0.3275911 (fabs x))))))))
(exp (- (pow (fabs x) 2.0)))))
3.0))
(+
(* 1.0 1.0)
(*
(*
(/ 1.0 (+ 1.0 (* 0.3275911 (fabs x))))
(*
(+
0.254829592
(+
(/ 1.421413741 (pow (+ 1.0 (* 0.3275911 (fabs x))) 2.0))
(-
(/ 1.061405429 (pow (+ 1.0 (* 0.3275911 (fabs x))) 4.0))
(+
(/ 1.453152027 (pow (+ 1.0 (* 0.3275911 (fabs x))) 3.0))
(/ 0.284496736 (+ 1.0 (* 0.3275911 (fabs x))))))))
(exp (- (pow (fabs x) 2.0)))))
(+
1.0
(*
(/ 1.0 (+ 1.0 (* 0.3275911 (fabs x))))
(*
(+
0.254829592
(+
(/ 1.421413741 (pow (+ 1.0 (* 0.3275911 (fabs x))) 2.0))
(-
(/ 1.061405429 (pow (+ 1.0 (* 0.3275911 (fabs x))) 4.0))
(+
(/ 1.453152027 (pow (+ 1.0 (* 0.3275911 (fabs x))) 3.0))
(/ 0.284496736 (+ 1.0 (* 0.3275911 (fabs x))))))))
(exp (- (pow (fabs x) 2.0))))))))))double code(double x) {
return ((double) (1.0 - ((double) (((double) ((1.0 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x))))))) * ((double) (0.254829592 + ((double) ((1.0 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x))))))) * ((double) (-0.284496736 + ((double) ((1.0 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x))))))) * ((double) (1.421413741 + ((double) ((1.0 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x))))))) * ((double) (-1.453152027 + ((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) pow(1.0, 3.0)) - ((double) pow(((double) ((1.0 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x))))))) * ((double) (((double) (0.254829592 + ((double) ((1.421413741 / ((double) pow(((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))), 2.0))) + ((double) ((1.061405429 / ((double) pow(((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))), 4.0))) - ((double) ((1.453152027 / ((double) pow(((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))), 3.0))) + (0.284496736 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x))))))))))))))) * ((double) exp(((double) -(((double) pow(((double) fabs(x)), 2.0)))))))))), 3.0)))) / ((double) (((double) (1.0 * 1.0)) + ((double) (((double) ((1.0 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x))))))) * ((double) (((double) (0.254829592 + ((double) ((1.421413741 / ((double) pow(((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))), 2.0))) + ((double) ((1.061405429 / ((double) pow(((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))), 4.0))) - ((double) ((1.453152027 / ((double) pow(((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))), 3.0))) + (0.284496736 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x))))))))))))))) * ((double) exp(((double) -(((double) pow(((double) fabs(x)), 2.0)))))))))) * ((double) (1.0 + ((double) ((1.0 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x))))))) * ((double) (((double) (0.254829592 + ((double) ((1.421413741 / ((double) pow(((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))), 2.0))) + ((double) ((1.061405429 / ((double) pow(((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))), 4.0))) - ((double) ((1.453152027 / ((double) pow(((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x)))))), 3.0))) + (0.284496736 / ((double) (1.0 + ((double) (0.3275911 * ((double) fabs(x))))))))))))))) * ((double) exp(((double) -(((double) pow(((double) fabs(x)), 2.0)))))))))))))))));
}



Bits error versus x
Results
Initial program Error: 13.9 bits
Taylor expanded around 0 Error: 14.7 bits
SimplifiedError: 13.9 bits
rmApplied associate-+r+Error: 13.9 bits
rmApplied flip3--Error: 13.9 bits
SimplifiedError: 13.9 bits
SimplifiedError: 13.9 bits
Final simplificationError: 13.9 bits
herbie shell --seed 2020204
(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)))))))