\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|x\right|\right)}^{3} \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 r184538 = 1.0;
double r184539 = atan2(1.0, 0.0);
double r184540 = sqrt(r184539);
double r184541 = r184538 / r184540;
double r184542 = 2.0;
double r184543 = x;
double r184544 = fabs(r184543);
double r184545 = r184542 * r184544;
double r184546 = 3.0;
double r184547 = r184542 / r184546;
double r184548 = r184544 * r184544;
double r184549 = r184548 * r184544;
double r184550 = r184547 * r184549;
double r184551 = r184545 + r184550;
double r184552 = 5.0;
double r184553 = r184538 / r184552;
double r184554 = r184549 * r184544;
double r184555 = r184554 * r184544;
double r184556 = r184553 * r184555;
double r184557 = r184551 + r184556;
double r184558 = 21.0;
double r184559 = r184538 / r184558;
double r184560 = r184555 * r184544;
double r184561 = r184560 * r184544;
double r184562 = r184559 * r184561;
double r184563 = r184557 + r184562;
double r184564 = r184541 * r184563;
double r184565 = fabs(r184564);
return r184565;
}
double f(double x) {
double r184566 = 1.0;
double r184567 = atan2(1.0, 0.0);
double r184568 = sqrt(r184567);
double r184569 = r184566 / r184568;
double r184570 = 2.0;
double r184571 = x;
double r184572 = fabs(r184571);
double r184573 = r184570 * r184572;
double r184574 = 3.0;
double r184575 = r184570 / r184574;
double r184576 = r184572 * r184572;
double r184577 = r184576 * r184572;
double r184578 = r184575 * r184577;
double r184579 = r184573 + r184578;
double r184580 = 5.0;
double r184581 = r184566 / r184580;
double r184582 = r184577 * r184572;
double r184583 = r184582 * r184572;
double r184584 = r184581 * r184583;
double r184585 = r184579 + r184584;
double r184586 = 21.0;
double r184587 = r184566 / r184586;
double r184588 = 3.0;
double r184589 = pow(r184572, r184588);
double r184590 = r184589 * r184572;
double r184591 = r184590 * r184572;
double r184592 = r184591 * r184572;
double r184593 = r184592 * r184572;
double r184594 = r184587 * r184593;
double r184595 = r184585 + r184594;
double r184596 = r184569 * r184595;
double r184597 = fabs(r184596);
return r184597;
}



Bits error versus x
Results
Initial program 0.2
rmApplied pow10.2
Applied pow10.2
Applied pow10.2
Applied pow-prod-up0.2
Applied pow-prod-up0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019362 +o rules:numerics
(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)))))))