\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(\left|x\right| \cdot \left(\left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) \cdot \left|x\right|\right)\right) \cdot \frac{1}{21} + \left(\sqrt{\frac{1}{5}} \cdot \left(\sqrt{\frac{1}{5}} \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right) + \left(\left|x\right| \cdot 2 + \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \frac{2}{3}\right)\right)\right)\right|double f(double x) {
double r7226992 = 1.0;
double r7226993 = atan2(1.0, 0.0);
double r7226994 = sqrt(r7226993);
double r7226995 = r7226992 / r7226994;
double r7226996 = 2.0;
double r7226997 = x;
double r7226998 = fabs(r7226997);
double r7226999 = r7226996 * r7226998;
double r7227000 = 3.0;
double r7227001 = r7226996 / r7227000;
double r7227002 = r7226998 * r7226998;
double r7227003 = r7227002 * r7226998;
double r7227004 = r7227001 * r7227003;
double r7227005 = r7226999 + r7227004;
double r7227006 = 5.0;
double r7227007 = r7226992 / r7227006;
double r7227008 = r7227003 * r7226998;
double r7227009 = r7227008 * r7226998;
double r7227010 = r7227007 * r7227009;
double r7227011 = r7227005 + r7227010;
double r7227012 = 21.0;
double r7227013 = r7226992 / r7227012;
double r7227014 = r7227009 * r7226998;
double r7227015 = r7227014 * r7226998;
double r7227016 = r7227013 * r7227015;
double r7227017 = r7227011 + r7227016;
double r7227018 = r7226995 * r7227017;
double r7227019 = fabs(r7227018);
return r7227019;
}
double f(double x) {
double r7227020 = 1.0;
double r7227021 = atan2(1.0, 0.0);
double r7227022 = sqrt(r7227021);
double r7227023 = r7227020 / r7227022;
double r7227024 = x;
double r7227025 = fabs(r7227024);
double r7227026 = r7227025 * r7227025;
double r7227027 = r7227026 * r7227025;
double r7227028 = r7227027 * r7227025;
double r7227029 = r7227025 * r7227028;
double r7227030 = r7227029 * r7227025;
double r7227031 = r7227025 * r7227030;
double r7227032 = 0.047619047619047616;
double r7227033 = r7227031 * r7227032;
double r7227034 = 0.2;
double r7227035 = sqrt(r7227034);
double r7227036 = r7227035 * r7227029;
double r7227037 = r7227035 * r7227036;
double r7227038 = 2.0;
double r7227039 = r7227025 * r7227038;
double r7227040 = 0.6666666666666666;
double r7227041 = r7227027 * r7227040;
double r7227042 = r7227039 + r7227041;
double r7227043 = r7227037 + r7227042;
double r7227044 = r7227033 + r7227043;
double r7227045 = r7227023 * r7227044;
double r7227046 = fabs(r7227045);
return r7227046;
}



Bits error versus x
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.2
Applied associate-*l*0.2
Final simplification0.2
herbie shell --seed 2019138 +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)))))))