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}^{\left(\log \left(\mathsf{fma}\left(\frac{\mathsf{fma}\left(\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|}, \mathsf{fma}\left(\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|}, \mathsf{fma}\left(\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|}, \mathsf{fma}\left(\log \left(e^{\frac{1}{\mathsf{fma}\left(\left|x\right|, 0.3275911000000000239396058532292954623699, 1\right)}}\right), 1.061405428999999900341322245367337018251, -1.453152027000000012790792425221297889948\right), 1.421413741000000063863240029604639858007\right), -0.2844967359999999723108032867457950487733\right), 0.2548295919999999936678136691625695675611\right)}{e^{\left|x\right| \cdot \left|x\right|}}, \frac{-1}{\mathsf{fma}\left(\left|x\right|, 0.3275911000000000239396058532292954623699, 1\right)}, 1\right)\right)\right)}double f(double x) {
double r182365 = 1.0;
double r182366 = 0.3275911;
double r182367 = x;
double r182368 = fabs(r182367);
double r182369 = r182366 * r182368;
double r182370 = r182365 + r182369;
double r182371 = r182365 / r182370;
double r182372 = 0.254829592;
double r182373 = -0.284496736;
double r182374 = 1.421413741;
double r182375 = -1.453152027;
double r182376 = 1.061405429;
double r182377 = r182371 * r182376;
double r182378 = r182375 + r182377;
double r182379 = r182371 * r182378;
double r182380 = r182374 + r182379;
double r182381 = r182371 * r182380;
double r182382 = r182373 + r182381;
double r182383 = r182371 * r182382;
double r182384 = r182372 + r182383;
double r182385 = r182371 * r182384;
double r182386 = r182368 * r182368;
double r182387 = -r182386;
double r182388 = exp(r182387);
double r182389 = r182385 * r182388;
double r182390 = r182365 - r182389;
return r182390;
}
double f(double x) {
double r182391 = exp(1.0);
double r182392 = 1.0;
double r182393 = 0.3275911;
double r182394 = x;
double r182395 = fabs(r182394);
double r182396 = r182393 * r182395;
double r182397 = r182392 + r182396;
double r182398 = r182392 / r182397;
double r182399 = fma(r182395, r182393, r182392);
double r182400 = r182392 / r182399;
double r182401 = exp(r182400);
double r182402 = log(r182401);
double r182403 = 1.061405429;
double r182404 = -1.453152027;
double r182405 = fma(r182402, r182403, r182404);
double r182406 = 1.421413741;
double r182407 = fma(r182398, r182405, r182406);
double r182408 = -0.284496736;
double r182409 = fma(r182398, r182407, r182408);
double r182410 = 0.254829592;
double r182411 = fma(r182398, r182409, r182410);
double r182412 = r182395 * r182395;
double r182413 = exp(r182412);
double r182414 = r182411 / r182413;
double r182415 = -r182392;
double r182416 = r182415 / r182399;
double r182417 = fma(r182414, r182416, r182392);
double r182418 = log(r182417);
double r182419 = pow(r182391, r182418);
return r182419;
}



Bits error versus x
Initial program 13.8
Simplified13.8
rmApplied add-log-exp13.8
Simplified13.8
rmApplied add-exp-log13.8
rmApplied pow113.8
Applied log-pow13.8
Applied exp-prod13.8
Simplified13.8
Final simplification13.8
herbie shell --seed 2020001 +o rules:numerics
(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)))))))