\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| \cdot 2 + {\left(\left|x\right|\right)}^{3} \cdot \frac{2}{3}\right) + \frac{\left({\left(\left|x\right|\right)}^{4} \cdot \left(1 \cdot 21\right) + \left(1 \cdot 5\right) \cdot {\left(\left|x\right|\right)}^{6}\right) \cdot \left|x\right|}{5 \cdot 21}\right) \cdot \frac{1}{\sqrt{\pi}}\right|double f(double x) {
double r116581 = 1.0;
double r116582 = atan2(1.0, 0.0);
double r116583 = sqrt(r116582);
double r116584 = r116581 / r116583;
double r116585 = 2.0;
double r116586 = x;
double r116587 = fabs(r116586);
double r116588 = r116585 * r116587;
double r116589 = 3.0;
double r116590 = r116585 / r116589;
double r116591 = r116587 * r116587;
double r116592 = r116591 * r116587;
double r116593 = r116590 * r116592;
double r116594 = r116588 + r116593;
double r116595 = 5.0;
double r116596 = r116581 / r116595;
double r116597 = r116592 * r116587;
double r116598 = r116597 * r116587;
double r116599 = r116596 * r116598;
double r116600 = r116594 + r116599;
double r116601 = 21.0;
double r116602 = r116581 / r116601;
double r116603 = r116598 * r116587;
double r116604 = r116603 * r116587;
double r116605 = r116602 * r116604;
double r116606 = r116600 + r116605;
double r116607 = r116584 * r116606;
double r116608 = fabs(r116607);
return r116608;
}
double f(double x) {
double r116609 = x;
double r116610 = fabs(r116609);
double r116611 = 2.0;
double r116612 = r116610 * r116611;
double r116613 = 3.0;
double r116614 = pow(r116610, r116613);
double r116615 = 3.0;
double r116616 = r116611 / r116615;
double r116617 = r116614 * r116616;
double r116618 = r116612 + r116617;
double r116619 = 4.0;
double r116620 = pow(r116610, r116619);
double r116621 = 1.0;
double r116622 = 21.0;
double r116623 = r116621 * r116622;
double r116624 = r116620 * r116623;
double r116625 = 5.0;
double r116626 = r116621 * r116625;
double r116627 = 6.0;
double r116628 = pow(r116610, r116627);
double r116629 = r116626 * r116628;
double r116630 = r116624 + r116629;
double r116631 = r116630 * r116610;
double r116632 = r116625 * r116622;
double r116633 = r116631 / r116632;
double r116634 = r116618 + r116633;
double r116635 = atan2(1.0, 0.0);
double r116636 = sqrt(r116635);
double r116637 = r116621 / r116636;
double r116638 = r116634 * r116637;
double r116639 = fabs(r116638);
return r116639;
}



Bits error versus x
Results
Initial program 0.2
Simplified0.1
rmApplied frac-add0.2
Applied associate-*r/0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019179
(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)))))))