\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|\mathsf{fma}\left(\frac{1}{5}, {\left(\left|x\right|\right)}^{5}, \mathsf{fma}\left({\left(\left|x\right|\right)}^{7}, \frac{1}{21}, \mathsf{fma}\left(\left|x\right| \cdot \left|x\right|, \frac{2}{3}, 2\right) \cdot \left|x\right|\right)\right) \cdot \sqrt{\frac{1}{\pi}}\right|double f(double x) {
double r6068749 = 1.0;
double r6068750 = atan2(1.0, 0.0);
double r6068751 = sqrt(r6068750);
double r6068752 = r6068749 / r6068751;
double r6068753 = 2.0;
double r6068754 = x;
double r6068755 = fabs(r6068754);
double r6068756 = r6068753 * r6068755;
double r6068757 = 3.0;
double r6068758 = r6068753 / r6068757;
double r6068759 = r6068755 * r6068755;
double r6068760 = r6068759 * r6068755;
double r6068761 = r6068758 * r6068760;
double r6068762 = r6068756 + r6068761;
double r6068763 = 5.0;
double r6068764 = r6068749 / r6068763;
double r6068765 = r6068760 * r6068755;
double r6068766 = r6068765 * r6068755;
double r6068767 = r6068764 * r6068766;
double r6068768 = r6068762 + r6068767;
double r6068769 = 21.0;
double r6068770 = r6068749 / r6068769;
double r6068771 = r6068766 * r6068755;
double r6068772 = r6068771 * r6068755;
double r6068773 = r6068770 * r6068772;
double r6068774 = r6068768 + r6068773;
double r6068775 = r6068752 * r6068774;
double r6068776 = fabs(r6068775);
return r6068776;
}
double f(double x) {
double r6068777 = 0.2;
double r6068778 = x;
double r6068779 = fabs(r6068778);
double r6068780 = 5.0;
double r6068781 = pow(r6068779, r6068780);
double r6068782 = 7.0;
double r6068783 = pow(r6068779, r6068782);
double r6068784 = 0.047619047619047616;
double r6068785 = r6068779 * r6068779;
double r6068786 = 0.6666666666666666;
double r6068787 = 2.0;
double r6068788 = fma(r6068785, r6068786, r6068787);
double r6068789 = r6068788 * r6068779;
double r6068790 = fma(r6068783, r6068784, r6068789);
double r6068791 = fma(r6068777, r6068781, r6068790);
double r6068792 = 1.0;
double r6068793 = atan2(1.0, 0.0);
double r6068794 = r6068792 / r6068793;
double r6068795 = sqrt(r6068794);
double r6068796 = r6068791 * r6068795;
double r6068797 = fabs(r6068796);
return r6068797;
}



Bits error versus x
Initial program 0.2
Simplified0.6
Taylor expanded around inf 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019135 +o rules:numerics
(FPCore (x)
:name "Jmat.Real.erfi, branch x less than or equal to 0.5"
(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)))))))