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



Bits error versus x
Results
Initial program 13.9
Simplified13.9
rmApplied add-cube-cbrt13.9
Final simplification13.9
herbie shell --seed 2020198
(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)))))))