\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(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{4} + \frac{1}{\sqrt{21}} \cdot \left({\left(\left|x\right|\right)}^{6} \cdot \frac{1}{\sqrt{21}}\right)\right) \cdot \left|x\right| + \mathsf{fma}\left(2, \left|x\right|, \frac{2}{3} \cdot {\left(\left|x\right|\right)}^{3}\right)\right)\right|double f(double x) {
double r106810 = 1.0;
double r106811 = atan2(1.0, 0.0);
double r106812 = sqrt(r106811);
double r106813 = r106810 / r106812;
double r106814 = 2.0;
double r106815 = x;
double r106816 = fabs(r106815);
double r106817 = r106814 * r106816;
double r106818 = 3.0;
double r106819 = r106814 / r106818;
double r106820 = r106816 * r106816;
double r106821 = r106820 * r106816;
double r106822 = r106819 * r106821;
double r106823 = r106817 + r106822;
double r106824 = 5.0;
double r106825 = r106810 / r106824;
double r106826 = r106821 * r106816;
double r106827 = r106826 * r106816;
double r106828 = r106825 * r106827;
double r106829 = r106823 + r106828;
double r106830 = 21.0;
double r106831 = r106810 / r106830;
double r106832 = r106827 * r106816;
double r106833 = r106832 * r106816;
double r106834 = r106831 * r106833;
double r106835 = r106829 + r106834;
double r106836 = r106813 * r106835;
double r106837 = fabs(r106836);
return r106837;
}
double f(double x) {
double r106838 = 1.0;
double r106839 = atan2(1.0, 0.0);
double r106840 = sqrt(r106839);
double r106841 = r106838 / r106840;
double r106842 = 5.0;
double r106843 = r106838 / r106842;
double r106844 = x;
double r106845 = fabs(r106844);
double r106846 = 4.0;
double r106847 = pow(r106845, r106846);
double r106848 = r106843 * r106847;
double r106849 = 1.0;
double r106850 = 21.0;
double r106851 = sqrt(r106850);
double r106852 = r106849 / r106851;
double r106853 = 6.0;
double r106854 = pow(r106845, r106853);
double r106855 = r106838 / r106851;
double r106856 = r106854 * r106855;
double r106857 = r106852 * r106856;
double r106858 = r106848 + r106857;
double r106859 = r106858 * r106845;
double r106860 = 2.0;
double r106861 = 3.0;
double r106862 = r106860 / r106861;
double r106863 = 3.0;
double r106864 = pow(r106845, r106863);
double r106865 = r106862 * r106864;
double r106866 = fma(r106860, r106845, r106865);
double r106867 = r106859 + r106866;
double r106868 = r106841 * r106867;
double r106869 = fabs(r106868);
return r106869;
}



Bits error versus x
Initial program 0.2
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied *-un-lft-identity0.2
Applied times-frac0.2
Applied associate-*l*0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019303 +o rules:numerics
(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)))))))