\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(\left|x\right|\right)}^{7} \cdot \frac{1}{21} + \left({\left(\left|x\right|\right)}^{5} \cdot \frac{1}{5} + \left(\frac{2}{3} \cdot \left(\left|x\right| \cdot \left|x\right|\right) + 2\right) \cdot \left|x\right|\right)\right) \cdot \sqrt{\frac{1}{\pi}}\right|double f(double x) {
double r6490624 = 1.0;
double r6490625 = atan2(1.0, 0.0);
double r6490626 = sqrt(r6490625);
double r6490627 = r6490624 / r6490626;
double r6490628 = 2.0;
double r6490629 = x;
double r6490630 = fabs(r6490629);
double r6490631 = r6490628 * r6490630;
double r6490632 = 3.0;
double r6490633 = r6490628 / r6490632;
double r6490634 = r6490630 * r6490630;
double r6490635 = r6490634 * r6490630;
double r6490636 = r6490633 * r6490635;
double r6490637 = r6490631 + r6490636;
double r6490638 = 5.0;
double r6490639 = r6490624 / r6490638;
double r6490640 = r6490635 * r6490630;
double r6490641 = r6490640 * r6490630;
double r6490642 = r6490639 * r6490641;
double r6490643 = r6490637 + r6490642;
double r6490644 = 21.0;
double r6490645 = r6490624 / r6490644;
double r6490646 = r6490641 * r6490630;
double r6490647 = r6490646 * r6490630;
double r6490648 = r6490645 * r6490647;
double r6490649 = r6490643 + r6490648;
double r6490650 = r6490627 * r6490649;
double r6490651 = fabs(r6490650);
return r6490651;
}
double f(double x) {
double r6490652 = x;
double r6490653 = fabs(r6490652);
double r6490654 = 7.0;
double r6490655 = pow(r6490653, r6490654);
double r6490656 = 0.047619047619047616;
double r6490657 = r6490655 * r6490656;
double r6490658 = 5.0;
double r6490659 = pow(r6490653, r6490658);
double r6490660 = 0.2;
double r6490661 = r6490659 * r6490660;
double r6490662 = 0.6666666666666666;
double r6490663 = r6490653 * r6490653;
double r6490664 = r6490662 * r6490663;
double r6490665 = 2.0;
double r6490666 = r6490664 + r6490665;
double r6490667 = r6490666 * r6490653;
double r6490668 = r6490661 + r6490667;
double r6490669 = r6490657 + r6490668;
double r6490670 = 1.0;
double r6490671 = atan2(1.0, 0.0);
double r6490672 = r6490670 / r6490671;
double r6490673 = sqrt(r6490672);
double r6490674 = r6490669 * r6490673;
double r6490675 = fabs(r6490674);
return r6490675;
}



Bits error versus x
Results
Initial program 0.2
Taylor expanded around 0 0.2
Simplified0.2
rmApplied *-commutative0.2
Final simplification0.2
herbie shell --seed 2019163
(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)))))))