\left|\frac{1}{\sqrt{\pi}} \cdot \left(\left(\left(2 \cdot \left|x\right| + \frac{2}{3} \cdot \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{5} \cdot \left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \frac{1}{21} \cdot \left(\left(\left(\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right|\left|\frac{1}{\sqrt{\pi}} \cdot \left(\frac{\sqrt[3]{{\left(\left|x\right|\right)}^{5}} \cdot \sqrt[3]{{\left(\left|x\right|\right)}^{5}}}{\sqrt{\frac{5}{1}}} \cdot \frac{\sqrt[3]{{\left(\left|x\right|\right)}^{5}}}{\sqrt{\frac{5}{1}}} + \left(\frac{2}{3} \cdot {\left(\left|x\right|\right)}^{3} + \left|x\right| \cdot \left(\frac{1 \cdot {\left(\left|x\right|\right)}^{6}}{21} + 2\right)\right)\right)\right|double f(double x) {
double r122681 = 1.0;
double r122682 = atan2(1.0, 0.0);
double r122683 = sqrt(r122682);
double r122684 = r122681 / r122683;
double r122685 = 2.0;
double r122686 = x;
double r122687 = fabs(r122686);
double r122688 = r122685 * r122687;
double r122689 = 3.0;
double r122690 = r122685 / r122689;
double r122691 = r122687 * r122687;
double r122692 = r122691 * r122687;
double r122693 = r122690 * r122692;
double r122694 = r122688 + r122693;
double r122695 = 5.0;
double r122696 = r122681 / r122695;
double r122697 = r122692 * r122687;
double r122698 = r122697 * r122687;
double r122699 = r122696 * r122698;
double r122700 = r122694 + r122699;
double r122701 = 21.0;
double r122702 = r122681 / r122701;
double r122703 = r122698 * r122687;
double r122704 = r122703 * r122687;
double r122705 = r122702 * r122704;
double r122706 = r122700 + r122705;
double r122707 = r122684 * r122706;
double r122708 = fabs(r122707);
return r122708;
}
double f(double x) {
double r122709 = 1.0;
double r122710 = atan2(1.0, 0.0);
double r122711 = sqrt(r122710);
double r122712 = r122709 / r122711;
double r122713 = x;
double r122714 = fabs(r122713);
double r122715 = 5.0;
double r122716 = pow(r122714, r122715);
double r122717 = cbrt(r122716);
double r122718 = r122717 * r122717;
double r122719 = 5.0;
double r122720 = r122719 / r122709;
double r122721 = sqrt(r122720);
double r122722 = r122718 / r122721;
double r122723 = r122717 / r122721;
double r122724 = r122722 * r122723;
double r122725 = 2.0;
double r122726 = 3.0;
double r122727 = r122725 / r122726;
double r122728 = 3.0;
double r122729 = pow(r122714, r122728);
double r122730 = r122727 * r122729;
double r122731 = 6.0;
double r122732 = pow(r122714, r122731);
double r122733 = r122709 * r122732;
double r122734 = 21.0;
double r122735 = r122733 / r122734;
double r122736 = r122735 + r122725;
double r122737 = r122714 * r122736;
double r122738 = r122730 + r122737;
double r122739 = r122724 + r122738;
double r122740 = r122712 * r122739;
double r122741 = fabs(r122740);
return r122741;
}



Bits error versus x
Results
Initial program 0.2
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied add-cube-cbrt0.2
Applied times-frac0.2
Final simplification0.2
herbie shell --seed 2019350
(FPCore (x)
:name "Jmat.Real.erfi, branch x less than or equal to 0.5"
:precision binary64
(fabs (* (/ 1 (sqrt PI)) (+ (+ (+ (* 2 (fabs x)) (* (/ 2 3) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1 5) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1 21) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))))