\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) + \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|double f(double x) {
double r120380 = 1.0;
double r120381 = atan2(1.0, 0.0);
double r120382 = sqrt(r120381);
double r120383 = r120380 / r120382;
double r120384 = 2.0;
double r120385 = x;
double r120386 = fabs(r120385);
double r120387 = r120384 * r120386;
double r120388 = 3.0;
double r120389 = r120384 / r120388;
double r120390 = r120386 * r120386;
double r120391 = r120390 * r120386;
double r120392 = r120389 * r120391;
double r120393 = r120387 + r120392;
double r120394 = 5.0;
double r120395 = r120380 / r120394;
double r120396 = r120391 * r120386;
double r120397 = r120396 * r120386;
double r120398 = r120395 * r120397;
double r120399 = r120393 + r120398;
double r120400 = 21.0;
double r120401 = r120380 / r120400;
double r120402 = r120397 * r120386;
double r120403 = r120402 * r120386;
double r120404 = r120401 * r120403;
double r120405 = r120399 + r120404;
double r120406 = r120383 * r120405;
double r120407 = fabs(r120406);
return r120407;
}
double f(double x) {
double r120408 = 1.0;
double r120409 = atan2(1.0, 0.0);
double r120410 = sqrt(r120409);
double r120411 = r120408 / r120410;
double r120412 = 2.0;
double r120413 = x;
double r120414 = fabs(r120413);
double r120415 = r120412 * r120414;
double r120416 = 3.0;
double r120417 = r120412 / r120416;
double r120418 = r120414 * r120414;
double r120419 = r120418 * r120414;
double r120420 = r120417 * r120419;
double r120421 = r120415 + r120420;
double r120422 = 5.0;
double r120423 = r120408 / r120422;
double r120424 = r120419 * r120414;
double r120425 = r120424 * r120414;
double r120426 = r120423 * r120425;
double r120427 = r120421 + r120426;
double r120428 = 21.0;
double r120429 = r120408 / r120428;
double r120430 = r120425 * r120414;
double r120431 = r120430 * r120414;
double r120432 = r120429 * r120431;
double r120433 = r120427 + r120432;
double r120434 = r120411 * r120433;
double r120435 = fabs(r120434);
return r120435;
}



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