\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(\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) + \left(\left(\frac{\sqrt{1}}{\sqrt{\sqrt{\pi}}} \cdot \left(\frac{\sqrt{1}}{\sqrt{\sqrt{\pi}}} \cdot \frac{1}{21}\right)\right) \cdot {\left(\left|x\right|\right)}^{6}\right) \cdot \left|x\right|\right|double f(double x) {
double r171813 = 1.0;
double r171814 = atan2(1.0, 0.0);
double r171815 = sqrt(r171814);
double r171816 = r171813 / r171815;
double r171817 = 2.0;
double r171818 = x;
double r171819 = fabs(r171818);
double r171820 = r171817 * r171819;
double r171821 = 3.0;
double r171822 = r171817 / r171821;
double r171823 = r171819 * r171819;
double r171824 = r171823 * r171819;
double r171825 = r171822 * r171824;
double r171826 = r171820 + r171825;
double r171827 = 5.0;
double r171828 = r171813 / r171827;
double r171829 = r171824 * r171819;
double r171830 = r171829 * r171819;
double r171831 = r171828 * r171830;
double r171832 = r171826 + r171831;
double r171833 = 21.0;
double r171834 = r171813 / r171833;
double r171835 = r171830 * r171819;
double r171836 = r171835 * r171819;
double r171837 = r171834 * r171836;
double r171838 = r171832 + r171837;
double r171839 = r171816 * r171838;
double r171840 = fabs(r171839);
return r171840;
}
double f(double x) {
double r171841 = 1.0;
double r171842 = atan2(1.0, 0.0);
double r171843 = sqrt(r171842);
double r171844 = r171841 / r171843;
double r171845 = 2.0;
double r171846 = x;
double r171847 = fabs(r171846);
double r171848 = r171845 * r171847;
double r171849 = 3.0;
double r171850 = r171845 / r171849;
double r171851 = r171847 * r171847;
double r171852 = r171851 * r171847;
double r171853 = r171850 * r171852;
double r171854 = r171848 + r171853;
double r171855 = 5.0;
double r171856 = r171841 / r171855;
double r171857 = r171852 * r171847;
double r171858 = r171857 * r171847;
double r171859 = r171856 * r171858;
double r171860 = r171854 + r171859;
double r171861 = r171844 * r171860;
double r171862 = sqrt(r171841);
double r171863 = sqrt(r171843);
double r171864 = r171862 / r171863;
double r171865 = 21.0;
double r171866 = r171841 / r171865;
double r171867 = r171864 * r171866;
double r171868 = r171864 * r171867;
double r171869 = 6.0;
double r171870 = pow(r171847, r171869);
double r171871 = r171868 * r171870;
double r171872 = r171871 * r171847;
double r171873 = r171861 + r171872;
double r171874 = fabs(r171873);
return r171874;
}



Bits error versus x
Results
Initial program 0.2
rmApplied distribute-lft-in0.2
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied sqrt-prod0.2
Applied add-sqr-sqrt0.2
Applied times-frac0.2
Applied associate-*l*0.1
Final simplification0.1
herbie shell --seed 2020060
(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)))))))