\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(\frac{1}{21} \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 \left|x\right|\right)\right|double f(double x) {
double r6774452 = 1.0;
double r6774453 = atan2(1.0, 0.0);
double r6774454 = sqrt(r6774453);
double r6774455 = r6774452 / r6774454;
double r6774456 = 2.0;
double r6774457 = x;
double r6774458 = fabs(r6774457);
double r6774459 = r6774456 * r6774458;
double r6774460 = 3.0;
double r6774461 = r6774456 / r6774460;
double r6774462 = r6774458 * r6774458;
double r6774463 = r6774462 * r6774458;
double r6774464 = r6774461 * r6774463;
double r6774465 = r6774459 + r6774464;
double r6774466 = 5.0;
double r6774467 = r6774452 / r6774466;
double r6774468 = r6774463 * r6774458;
double r6774469 = r6774468 * r6774458;
double r6774470 = r6774467 * r6774469;
double r6774471 = r6774465 + r6774470;
double r6774472 = 21.0;
double r6774473 = r6774452 / r6774472;
double r6774474 = r6774469 * r6774458;
double r6774475 = r6774474 * r6774458;
double r6774476 = r6774473 * r6774475;
double r6774477 = r6774471 + r6774476;
double r6774478 = r6774455 * r6774477;
double r6774479 = fabs(r6774478);
return r6774479;
}
double f(double x) {
double r6774480 = 1.0;
double r6774481 = atan2(1.0, 0.0);
double r6774482 = sqrt(r6774481);
double r6774483 = r6774480 / r6774482;
double r6774484 = 5.0;
double r6774485 = r6774480 / r6774484;
double r6774486 = x;
double r6774487 = fabs(r6774486);
double r6774488 = r6774487 * r6774487;
double r6774489 = r6774488 * r6774487;
double r6774490 = r6774489 * r6774487;
double r6774491 = r6774487 * r6774490;
double r6774492 = r6774485 * r6774491;
double r6774493 = 2.0;
double r6774494 = r6774487 * r6774493;
double r6774495 = 3.0;
double r6774496 = r6774493 / r6774495;
double r6774497 = r6774489 * r6774496;
double r6774498 = r6774494 + r6774497;
double r6774499 = r6774492 + r6774498;
double r6774500 = 21.0;
double r6774501 = r6774480 / r6774500;
double r6774502 = r6774487 * r6774491;
double r6774503 = r6774501 * r6774502;
double r6774504 = r6774503 * r6774487;
double r6774505 = r6774499 + r6774504;
double r6774506 = r6774483 * r6774505;
double r6774507 = fabs(r6774506);
return r6774507;
}



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