\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| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\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) + \left(\left|x\right| \cdot \left(\left|x\right| \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)\right) \cdot \frac{1}{21}\right)\right|double f(double x) {
double r7903039 = 1.0;
double r7903040 = atan2(1.0, 0.0);
double r7903041 = sqrt(r7903040);
double r7903042 = r7903039 / r7903041;
double r7903043 = 2.0;
double r7903044 = x;
double r7903045 = fabs(r7903044);
double r7903046 = r7903043 * r7903045;
double r7903047 = 3.0;
double r7903048 = r7903043 / r7903047;
double r7903049 = r7903045 * r7903045;
double r7903050 = r7903049 * r7903045;
double r7903051 = r7903048 * r7903050;
double r7903052 = r7903046 + r7903051;
double r7903053 = 5.0;
double r7903054 = r7903039 / r7903053;
double r7903055 = r7903050 * r7903045;
double r7903056 = r7903055 * r7903045;
double r7903057 = r7903054 * r7903056;
double r7903058 = r7903052 + r7903057;
double r7903059 = 21.0;
double r7903060 = r7903039 / r7903059;
double r7903061 = r7903056 * r7903045;
double r7903062 = r7903061 * r7903045;
double r7903063 = r7903060 * r7903062;
double r7903064 = r7903058 + r7903063;
double r7903065 = r7903042 * r7903064;
double r7903066 = fabs(r7903065);
return r7903066;
}
double f(double x) {
double r7903067 = 1.0;
double r7903068 = atan2(1.0, 0.0);
double r7903069 = sqrt(r7903068);
double r7903070 = r7903067 / r7903069;
double r7903071 = 0.2;
double r7903072 = x;
double r7903073 = fabs(r7903072);
double r7903074 = r7903073 * r7903073;
double r7903075 = r7903074 * r7903073;
double r7903076 = r7903075 * r7903073;
double r7903077 = r7903073 * r7903076;
double r7903078 = r7903071 * r7903077;
double r7903079 = 2.0;
double r7903080 = r7903073 * r7903079;
double r7903081 = 0.6666666666666666;
double r7903082 = r7903075 * r7903081;
double r7903083 = r7903080 + r7903082;
double r7903084 = r7903078 + r7903083;
double r7903085 = r7903073 * r7903077;
double r7903086 = r7903073 * r7903085;
double r7903087 = 0.047619047619047616;
double r7903088 = r7903086 * r7903087;
double r7903089 = r7903084 + r7903088;
double r7903090 = r7903070 * r7903089;
double r7903091 = fabs(r7903090);
return r7903091;
}



Bits error versus x
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2019128
(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)))))))