double f(double x) {
double r23103458 = 1.0;
double r23103459 = atan2(1.0, 0.0);
double r23103460 = sqrt(r23103459);
double r23103461 = r23103458 / r23103460;
double r23103462 = 2.0;
double r23103463 = x;
double r23103464 = fabs(r23103463);
double r23103465 = r23103462 * r23103464;
double r23103466 = 3.0;
double r23103467 = r23103462 / r23103466;
double r23103468 = r23103464 * r23103464;
double r23103469 = r23103468 * r23103464;
double r23103470 = r23103467 * r23103469;
double r23103471 = r23103465 + r23103470;
double r23103472 = 5.0;
double r23103473 = r23103458 / r23103472;
double r23103474 = r23103469 * r23103464;
double r23103475 = r23103474 * r23103464;
double r23103476 = r23103473 * r23103475;
double r23103477 = r23103471 + r23103476;
double r23103478 = 21.0;
double r23103479 = r23103458 / r23103478;
double r23103480 = r23103475 * r23103464;
double r23103481 = r23103480 * r23103464;
double r23103482 = r23103479 * r23103481;
double r23103483 = r23103477 + r23103482;
double r23103484 = r23103461 * r23103483;
double r23103485 = fabs(r23103484);
return r23103485;
}
double f(double x) {
double r23103486 = 0.047619047619047616;
double r23103487 = x;
double r23103488 = fabs(r23103487);
double r23103489 = 7.0;
double r23103490 = pow(r23103488, r23103489);
double r23103491 = 0.6666666666666666;
double r23103492 = r23103488 * r23103488;
double r23103493 = 2.0;
double r23103494 = fma(r23103491, r23103492, r23103493);
double r23103495 = r23103494 * r23103488;
double r23103496 = fma(r23103486, r23103490, r23103495);
double r23103497 = 1.0;
double r23103498 = atan2(1.0, 0.0);
double r23103499 = r23103497 / r23103498;
double r23103500 = sqrt(r23103499);
double r23103501 = r23103496 * r23103500;
double r23103502 = 5.0;
double r23103503 = pow(r23103488, r23103502);
double r23103504 = 0.2;
double r23103505 = r23103503 * r23103504;
double r23103506 = r23103500 * r23103505;
double r23103507 = r23103501 + r23103506;
double r23103508 = fabs(r23103507);
return r23103508;
}
\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}{21} \cdot \left({\left(\left|x\right|\right)}^{7}\right) + \left((\frac{2}{3} \cdot \left(\left|x\right| \cdot \left|x\right|\right) + 2)_* \cdot \left|x\right|\right))_* \cdot \sqrt{\frac{1}{\pi}} + \sqrt{\frac{1}{\pi}} \cdot \left({\left(\left|x\right|\right)}^{5} \cdot \frac{1}{5}\right)\right|


Bits error versus x
Initial program 0.2
Taylor expanded around -inf 0.2
Simplified0.2
rmApplied fma-udef0.2
Applied distribute-rgt-in0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019101 +o rules:numerics
(FPCore (x)
:name "Jmat.Real.erfi, branch x less than or equal to 0.5"
(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)))))))