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|}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 + \sqrt{\frac{1}{1 + 0.3275911000000000239396058532292954623699 \cdot \left|x\right|}} \cdot \left(\sqrt{\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)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}double f(double x) {
double r312357 = 1.0;
double r312358 = 0.3275911;
double r312359 = x;
double r312360 = fabs(r312359);
double r312361 = r312358 * r312360;
double r312362 = r312357 + r312361;
double r312363 = r312357 / r312362;
double r312364 = 0.254829592;
double r312365 = -0.284496736;
double r312366 = 1.421413741;
double r312367 = -1.453152027;
double r312368 = 1.061405429;
double r312369 = r312363 * r312368;
double r312370 = r312367 + r312369;
double r312371 = r312363 * r312370;
double r312372 = r312366 + r312371;
double r312373 = r312363 * r312372;
double r312374 = r312365 + r312373;
double r312375 = r312363 * r312374;
double r312376 = r312364 + r312375;
double r312377 = r312363 * r312376;
double r312378 = r312360 * r312360;
double r312379 = -r312378;
double r312380 = exp(r312379);
double r312381 = r312377 * r312380;
double r312382 = r312357 - r312381;
return r312382;
}
double f(double x) {
double r312383 = 1.0;
double r312384 = 0.3275911;
double r312385 = x;
double r312386 = fabs(r312385);
double r312387 = r312384 * r312386;
double r312388 = r312383 + r312387;
double r312389 = r312383 / r312388;
double r312390 = 0.254829592;
double r312391 = -0.284496736;
double r312392 = sqrt(r312389);
double r312393 = 1.421413741;
double r312394 = -1.453152027;
double r312395 = 1.061405429;
double r312396 = r312389 * r312395;
double r312397 = r312394 + r312396;
double r312398 = r312389 * r312397;
double r312399 = r312393 + r312398;
double r312400 = r312392 * r312399;
double r312401 = r312392 * r312400;
double r312402 = r312391 + r312401;
double r312403 = r312389 * r312402;
double r312404 = r312390 + r312403;
double r312405 = r312389 * r312404;
double r312406 = r312386 * r312386;
double r312407 = -r312406;
double r312408 = exp(r312407);
double r312409 = r312405 * r312408;
double r312410 = r312383 - r312409;
return r312410;
}



Bits error versus x
Results
Initial program 14.1
rmApplied add-sqr-sqrt14.1
Applied associate-*l*14.1
Final simplification14.1
herbie shell --seed 2019350
(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)))))))