\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 r5951083 = 1.0;
double r5951084 = atan2(1.0, 0.0);
double r5951085 = sqrt(r5951084);
double r5951086 = r5951083 / r5951085;
double r5951087 = 2.0;
double r5951088 = x;
double r5951089 = fabs(r5951088);
double r5951090 = r5951087 * r5951089;
double r5951091 = 3.0;
double r5951092 = r5951087 / r5951091;
double r5951093 = r5951089 * r5951089;
double r5951094 = r5951093 * r5951089;
double r5951095 = r5951092 * r5951094;
double r5951096 = r5951090 + r5951095;
double r5951097 = 5.0;
double r5951098 = r5951083 / r5951097;
double r5951099 = r5951094 * r5951089;
double r5951100 = r5951099 * r5951089;
double r5951101 = r5951098 * r5951100;
double r5951102 = r5951096 + r5951101;
double r5951103 = 21.0;
double r5951104 = r5951083 / r5951103;
double r5951105 = r5951100 * r5951089;
double r5951106 = r5951105 * r5951089;
double r5951107 = r5951104 * r5951106;
double r5951108 = r5951102 + r5951107;
double r5951109 = r5951086 * r5951108;
double r5951110 = fabs(r5951109);
return r5951110;
}
double f(double x) {
double r5951111 = 1.0;
double r5951112 = atan2(1.0, 0.0);
double r5951113 = sqrt(r5951112);
double r5951114 = r5951111 / r5951113;
double r5951115 = 5.0;
double r5951116 = r5951111 / r5951115;
double r5951117 = x;
double r5951118 = fabs(r5951117);
double r5951119 = r5951118 * r5951118;
double r5951120 = r5951119 * r5951118;
double r5951121 = r5951120 * r5951118;
double r5951122 = r5951118 * r5951121;
double r5951123 = r5951116 * r5951122;
double r5951124 = 2.0;
double r5951125 = r5951118 * r5951124;
double r5951126 = 3.0;
double r5951127 = r5951124 / r5951126;
double r5951128 = r5951120 * r5951127;
double r5951129 = r5951125 + r5951128;
double r5951130 = r5951123 + r5951129;
double r5951131 = r5951118 * r5951122;
double r5951132 = r5951118 * r5951131;
double r5951133 = 21.0;
double r5951134 = r5951111 / r5951133;
double r5951135 = r5951132 * r5951134;
double r5951136 = r5951130 + r5951135;
double r5951137 = r5951114 * r5951136;
double r5951138 = fabs(r5951137);
return r5951138;
}



Bits error versus x
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2019179
(FPCore (x)
:name "Jmat.Real.erfi, branch x less than or equal to 0.5"
(fabs (* (/ 1.0 (sqrt PI)) (+ (+ (+ (* 2.0 (fabs x)) (* (/ 2.0 3.0) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1.0 5.0) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1.0 21.0) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))))