1 - \left(\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(0.2548295919999999936678136691625695675611 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(-0.2844967359999999723108032867457950487733 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(1.421413741000000063863240029604639858007 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot \left(-1.453152027000000012790792425221297889948 + \frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|} \cdot 1.061405428999999900341322245367337018251\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}e^{\sqrt[3]{{\left(\log \left(\left(1 + \left(0.2844967359999999723108032867457950487733 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{{\left(0.3275911000000000239396058532292954623699 \cdot \left|x\right| + 1\right)}^{2}} + 1.453152027000000012790792425221297889948 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{{\left(0.3275911000000000239396058532292954623699 \cdot \left|x\right| + 1\right)}^{4}}\right)\right) - \left(1.061405428999999900341322245367337018251 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{{\left(0.3275911000000000239396058532292954623699 \cdot \left|x\right| + 1\right)}^{5}} + \left(1.421413741000000063863240029604639858007 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{{\left(0.3275911000000000239396058532292954623699 \cdot \left|x\right| + 1\right)}^{3}} + 0.2548295919999999936678136691625695675611 \cdot \frac{e^{-{\left(\left|x\right|\right)}^{2}}}{0.3275911000000000239396058532292954623699 \cdot \left|x\right| + 1}\right)\right)\right)\right)}^{3}}}double f(double x) {
double r235097 = 1.0;
double r235098 = 0.3275911;
double r235099 = x;
double r235100 = fabs(r235099);
double r235101 = r235098 * r235100;
double r235102 = r235097 + r235101;
double r235103 = r235097 / r235102;
double r235104 = 0.254829592;
double r235105 = -0.284496736;
double r235106 = 1.421413741;
double r235107 = -1.453152027;
double r235108 = 1.061405429;
double r235109 = r235103 * r235108;
double r235110 = r235107 + r235109;
double r235111 = r235103 * r235110;
double r235112 = r235106 + r235111;
double r235113 = r235103 * r235112;
double r235114 = r235105 + r235113;
double r235115 = r235103 * r235114;
double r235116 = r235104 + r235115;
double r235117 = r235103 * r235116;
double r235118 = r235100 * r235100;
double r235119 = -r235118;
double r235120 = exp(r235119);
double r235121 = r235117 * r235120;
double r235122 = r235097 - r235121;
return r235122;
}
double f(double x) {
double r235123 = 1.0;
double r235124 = 0.284496736;
double r235125 = x;
double r235126 = fabs(r235125);
double r235127 = 2.0;
double r235128 = pow(r235126, r235127);
double r235129 = -r235128;
double r235130 = exp(r235129);
double r235131 = 0.3275911;
double r235132 = r235131 * r235126;
double r235133 = r235132 + r235123;
double r235134 = pow(r235133, r235127);
double r235135 = r235130 / r235134;
double r235136 = r235124 * r235135;
double r235137 = 1.453152027;
double r235138 = 4.0;
double r235139 = pow(r235133, r235138);
double r235140 = r235130 / r235139;
double r235141 = r235137 * r235140;
double r235142 = r235136 + r235141;
double r235143 = r235123 + r235142;
double r235144 = 1.061405429;
double r235145 = 5.0;
double r235146 = pow(r235133, r235145);
double r235147 = r235130 / r235146;
double r235148 = r235144 * r235147;
double r235149 = 1.421413741;
double r235150 = 3.0;
double r235151 = pow(r235133, r235150);
double r235152 = r235130 / r235151;
double r235153 = r235149 * r235152;
double r235154 = 0.254829592;
double r235155 = r235130 / r235133;
double r235156 = r235154 * r235155;
double r235157 = r235153 + r235156;
double r235158 = r235148 + r235157;
double r235159 = r235143 - r235158;
double r235160 = log(r235159);
double r235161 = pow(r235160, r235150);
double r235162 = cbrt(r235161);
double r235163 = exp(r235162);
return r235163;
}



Bits error versus x
Results
Initial program 13.7
Taylor expanded around 0 13.7
rmApplied add-exp-log13.7
rmApplied add-cbrt-cube13.7
Simplified13.7
Final simplification13.7
herbie shell --seed 2019353
(FPCore (x)
:name "Jmat.Real.erf"
:precision binary64
(- 1 (* (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ 0.254829592 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ -0.284496736 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ 1.421413741 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ -1.453152027 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) 1.061405429))))))))) (exp (- (* (fabs x) (fabs x)))))))