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



Bits error versus x
Results
Initial program 13.6
Simplified13.6
rmApplied flip3-+_binary6413.6
Applied associate-/l/_binary6413.6
Simplified13.6
rmApplied add-sqr-sqrt_binary6413.6
Applied add-sqr-sqrt_binary6413.6
Applied difference-of-squares_binary6413.6
Simplified13.6
Simplified13.6
rmApplied add-sqr-sqrt_binary6413.6
Applied sqrt-prod_binary6413.6
Applied add-sqr-sqrt_binary6413.6
Applied difference-of-squares_binary6413.6
Simplified13.6
Simplified13.6
rmApplied add-cube-cbrt_binary6413.6
Final simplification13.6
herbie shell --seed 2020219
(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)))))))