\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|\left(\left(\frac{1}{21} \cdot \left({\left(\left|x\right|\right)}^{6} \cdot \left|x\right|\right) + 2 \cdot \left|x\right|\right) + \left(\frac{1 \cdot {\left(\left|x\right|\right)}^{5}}{5} + \frac{2}{3} \cdot {\left(\left|x\right|\right)}^{3}\right)\right) \cdot \frac{1}{\sqrt{\pi}}\right|double f(double x) {
double r143597 = 1.0;
double r143598 = atan2(1.0, 0.0);
double r143599 = sqrt(r143598);
double r143600 = r143597 / r143599;
double r143601 = 2.0;
double r143602 = x;
double r143603 = fabs(r143602);
double r143604 = r143601 * r143603;
double r143605 = 3.0;
double r143606 = r143601 / r143605;
double r143607 = r143603 * r143603;
double r143608 = r143607 * r143603;
double r143609 = r143606 * r143608;
double r143610 = r143604 + r143609;
double r143611 = 5.0;
double r143612 = r143597 / r143611;
double r143613 = r143608 * r143603;
double r143614 = r143613 * r143603;
double r143615 = r143612 * r143614;
double r143616 = r143610 + r143615;
double r143617 = 21.0;
double r143618 = r143597 / r143617;
double r143619 = r143614 * r143603;
double r143620 = r143619 * r143603;
double r143621 = r143618 * r143620;
double r143622 = r143616 + r143621;
double r143623 = r143600 * r143622;
double r143624 = fabs(r143623);
return r143624;
}
double f(double x) {
double r143625 = 1.0;
double r143626 = 21.0;
double r143627 = r143625 / r143626;
double r143628 = x;
double r143629 = fabs(r143628);
double r143630 = 6.0;
double r143631 = pow(r143629, r143630);
double r143632 = r143631 * r143629;
double r143633 = r143627 * r143632;
double r143634 = 2.0;
double r143635 = r143634 * r143629;
double r143636 = r143633 + r143635;
double r143637 = 5.0;
double r143638 = pow(r143629, r143637);
double r143639 = r143625 * r143638;
double r143640 = 5.0;
double r143641 = r143639 / r143640;
double r143642 = 3.0;
double r143643 = r143634 / r143642;
double r143644 = 3.0;
double r143645 = pow(r143629, r143644);
double r143646 = r143643 * r143645;
double r143647 = r143641 + r143646;
double r143648 = r143636 + r143647;
double r143649 = atan2(1.0, 0.0);
double r143650 = sqrt(r143649);
double r143651 = r143625 / r143650;
double r143652 = r143648 * r143651;
double r143653 = fabs(r143652);
return r143653;
}



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
Simplified0.2
Final simplification0.2
herbie shell --seed 2020046
(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)))))))