\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(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) + 1 \cdot \frac{\left|x\right| \cdot {\left(\left|x\right|\right)}^{6}}{21}\right)\right|double f(double x) {
double r150993 = 1.0;
double r150994 = atan2(1.0, 0.0);
double r150995 = sqrt(r150994);
double r150996 = r150993 / r150995;
double r150997 = 2.0;
double r150998 = x;
double r150999 = fabs(r150998);
double r151000 = r150997 * r150999;
double r151001 = 3.0;
double r151002 = r150997 / r151001;
double r151003 = r150999 * r150999;
double r151004 = r151003 * r150999;
double r151005 = r151002 * r151004;
double r151006 = r151000 + r151005;
double r151007 = 5.0;
double r151008 = r150993 / r151007;
double r151009 = r151004 * r150999;
double r151010 = r151009 * r150999;
double r151011 = r151008 * r151010;
double r151012 = r151006 + r151011;
double r151013 = 21.0;
double r151014 = r150993 / r151013;
double r151015 = r151010 * r150999;
double r151016 = r151015 * r150999;
double r151017 = r151014 * r151016;
double r151018 = r151012 + r151017;
double r151019 = r150996 * r151018;
double r151020 = fabs(r151019);
return r151020;
}
double f(double x) {
double r151021 = 1.0;
double r151022 = atan2(1.0, 0.0);
double r151023 = sqrt(r151022);
double r151024 = r151021 / r151023;
double r151025 = 2.0;
double r151026 = x;
double r151027 = fabs(r151026);
double r151028 = r151025 * r151027;
double r151029 = 3.0;
double r151030 = r151025 / r151029;
double r151031 = r151027 * r151027;
double r151032 = r151031 * r151027;
double r151033 = r151030 * r151032;
double r151034 = r151028 + r151033;
double r151035 = 5.0;
double r151036 = r151021 / r151035;
double r151037 = r151032 * r151027;
double r151038 = r151037 * r151027;
double r151039 = r151036 * r151038;
double r151040 = r151034 + r151039;
double r151041 = 6.0;
double r151042 = pow(r151027, r151041);
double r151043 = r151027 * r151042;
double r151044 = 21.0;
double r151045 = r151043 / r151044;
double r151046 = r151021 * r151045;
double r151047 = r151040 + r151046;
double r151048 = r151024 * r151047;
double r151049 = fabs(r151048);
return r151049;
}



Bits error versus x
Results
Initial program 0.2
rmApplied div-inv0.2
Applied associate-*l*0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020034
(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)))))))