\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 r117285 = 1.0;
double r117286 = atan2(1.0, 0.0);
double r117287 = sqrt(r117286);
double r117288 = r117285 / r117287;
double r117289 = 2.0;
double r117290 = x;
double r117291 = fabs(r117290);
double r117292 = r117289 * r117291;
double r117293 = 3.0;
double r117294 = r117289 / r117293;
double r117295 = r117291 * r117291;
double r117296 = r117295 * r117291;
double r117297 = r117294 * r117296;
double r117298 = r117292 + r117297;
double r117299 = 5.0;
double r117300 = r117285 / r117299;
double r117301 = r117296 * r117291;
double r117302 = r117301 * r117291;
double r117303 = r117300 * r117302;
double r117304 = r117298 + r117303;
double r117305 = 21.0;
double r117306 = r117285 / r117305;
double r117307 = r117302 * r117291;
double r117308 = r117307 * r117291;
double r117309 = r117306 * r117308;
double r117310 = r117304 + r117309;
double r117311 = r117288 * r117310;
double r117312 = fabs(r117311);
return r117312;
}
double f(double x) {
double r117313 = 1.0;
double r117314 = atan2(1.0, 0.0);
double r117315 = sqrt(r117314);
double r117316 = r117313 / r117315;
double r117317 = 2.0;
double r117318 = x;
double r117319 = fabs(r117318);
double r117320 = r117317 * r117319;
double r117321 = 3.0;
double r117322 = r117317 / r117321;
double r117323 = r117319 * r117319;
double r117324 = r117323 * r117319;
double r117325 = r117322 * r117324;
double r117326 = r117320 + r117325;
double r117327 = 5.0;
double r117328 = r117313 / r117327;
double r117329 = r117324 * r117319;
double r117330 = r117329 * r117319;
double r117331 = r117328 * r117330;
double r117332 = r117326 + r117331;
double r117333 = 6.0;
double r117334 = pow(r117319, r117333);
double r117335 = r117319 * r117334;
double r117336 = 21.0;
double r117337 = r117335 / r117336;
double r117338 = r117313 * r117337;
double r117339 = r117332 + r117338;
double r117340 = r117316 * r117339;
double r117341 = fabs(r117340);
return r117341;
}



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 2020002
(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)))))))