\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(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left({\left(\left|x\right|\right)}^{3} \cdot \left|x\right|\right)\right)\right)\right) \cdot \frac{1}{21}\right)\right|double f(double x) {
double r5862578 = 1.0;
double r5862579 = atan2(1.0, 0.0);
double r5862580 = sqrt(r5862579);
double r5862581 = r5862578 / r5862580;
double r5862582 = 2.0;
double r5862583 = x;
double r5862584 = fabs(r5862583);
double r5862585 = r5862582 * r5862584;
double r5862586 = 3.0;
double r5862587 = r5862582 / r5862586;
double r5862588 = r5862584 * r5862584;
double r5862589 = r5862588 * r5862584;
double r5862590 = r5862587 * r5862589;
double r5862591 = r5862585 + r5862590;
double r5862592 = 5.0;
double r5862593 = r5862578 / r5862592;
double r5862594 = r5862589 * r5862584;
double r5862595 = r5862594 * r5862584;
double r5862596 = r5862593 * r5862595;
double r5862597 = r5862591 + r5862596;
double r5862598 = 21.0;
double r5862599 = r5862578 / r5862598;
double r5862600 = r5862595 * r5862584;
double r5862601 = r5862600 * r5862584;
double r5862602 = r5862599 * r5862601;
double r5862603 = r5862597 + r5862602;
double r5862604 = r5862581 * r5862603;
double r5862605 = fabs(r5862604);
return r5862605;
}
double f(double x) {
double r5862606 = 1.0;
double r5862607 = atan2(1.0, 0.0);
double r5862608 = sqrt(r5862607);
double r5862609 = r5862606 / r5862608;
double r5862610 = 5.0;
double r5862611 = r5862606 / r5862610;
double r5862612 = x;
double r5862613 = fabs(r5862612);
double r5862614 = r5862613 * r5862613;
double r5862615 = r5862614 * r5862613;
double r5862616 = r5862615 * r5862613;
double r5862617 = r5862613 * r5862616;
double r5862618 = r5862611 * r5862617;
double r5862619 = 2.0;
double r5862620 = r5862613 * r5862619;
double r5862621 = 3.0;
double r5862622 = r5862619 / r5862621;
double r5862623 = r5862615 * r5862622;
double r5862624 = r5862620 + r5862623;
double r5862625 = r5862618 + r5862624;
double r5862626 = 3.0;
double r5862627 = pow(r5862613, r5862626);
double r5862628 = r5862627 * r5862613;
double r5862629 = r5862613 * r5862628;
double r5862630 = r5862613 * r5862629;
double r5862631 = r5862613 * r5862630;
double r5862632 = 21.0;
double r5862633 = r5862606 / r5862632;
double r5862634 = r5862631 * r5862633;
double r5862635 = r5862625 + r5862634;
double r5862636 = r5862609 * r5862635;
double r5862637 = fabs(r5862636);
return r5862637;
}



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 2019168
(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)))))))