\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(1 \cdot \left(\frac{{\left(\left|x\right|\right)}^{7}}{21} + \frac{{\left(\left|x\right|\right)}^{5}}{5}\right) + 2 \cdot \left(\frac{{\left(\left|x\right|\right)}^{3}}{3} + \left|x\right|\right)\right) \cdot 1\right)\right|double f(double x) {
double r122401 = 1.0;
double r122402 = atan2(1.0, 0.0);
double r122403 = sqrt(r122402);
double r122404 = r122401 / r122403;
double r122405 = 2.0;
double r122406 = x;
double r122407 = fabs(r122406);
double r122408 = r122405 * r122407;
double r122409 = 3.0;
double r122410 = r122405 / r122409;
double r122411 = r122407 * r122407;
double r122412 = r122411 * r122407;
double r122413 = r122410 * r122412;
double r122414 = r122408 + r122413;
double r122415 = 5.0;
double r122416 = r122401 / r122415;
double r122417 = r122412 * r122407;
double r122418 = r122417 * r122407;
double r122419 = r122416 * r122418;
double r122420 = r122414 + r122419;
double r122421 = 21.0;
double r122422 = r122401 / r122421;
double r122423 = r122418 * r122407;
double r122424 = r122423 * r122407;
double r122425 = r122422 * r122424;
double r122426 = r122420 + r122425;
double r122427 = r122404 * r122426;
double r122428 = fabs(r122427);
return r122428;
}
double f(double x) {
double r122429 = 1.0;
double r122430 = atan2(1.0, 0.0);
double r122431 = sqrt(r122430);
double r122432 = r122429 / r122431;
double r122433 = 1.0;
double r122434 = x;
double r122435 = fabs(r122434);
double r122436 = 7.0;
double r122437 = pow(r122435, r122436);
double r122438 = 21.0;
double r122439 = r122437 / r122438;
double r122440 = 5.0;
double r122441 = pow(r122435, r122440);
double r122442 = 5.0;
double r122443 = r122441 / r122442;
double r122444 = r122439 + r122443;
double r122445 = r122433 * r122444;
double r122446 = 2.0;
double r122447 = 3.0;
double r122448 = pow(r122435, r122447);
double r122449 = 3.0;
double r122450 = r122448 / r122449;
double r122451 = r122450 + r122435;
double r122452 = r122446 * r122451;
double r122453 = r122445 + r122452;
double r122454 = r122453 * r122433;
double r122455 = r122432 * r122454;
double r122456 = fabs(r122455);
return r122456;
}



Bits error versus x
Results
Initial program 0.2
Simplified0.6
rmApplied div-inv0.6
Applied *-un-lft-identity0.6
Applied times-frac0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019323
(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)))))))