\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(\frac{1}{21} \cdot {\left(\left|x\right|\right)}^{7} + \left(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{5} + \left(\left(\frac{2}{3} \cdot \left|x\right|\right) \cdot \left|x\right| + 2\right) \cdot \left|x\right|\right)\right) \cdot \sqrt{\frac{1}{\pi}}\right|double f(double x) {
double r9700565 = 1.0;
double r9700566 = atan2(1.0, 0.0);
double r9700567 = sqrt(r9700566);
double r9700568 = r9700565 / r9700567;
double r9700569 = 2.0;
double r9700570 = x;
double r9700571 = fabs(r9700570);
double r9700572 = r9700569 * r9700571;
double r9700573 = 3.0;
double r9700574 = r9700569 / r9700573;
double r9700575 = r9700571 * r9700571;
double r9700576 = r9700575 * r9700571;
double r9700577 = r9700574 * r9700576;
double r9700578 = r9700572 + r9700577;
double r9700579 = 5.0;
double r9700580 = r9700565 / r9700579;
double r9700581 = r9700576 * r9700571;
double r9700582 = r9700581 * r9700571;
double r9700583 = r9700580 * r9700582;
double r9700584 = r9700578 + r9700583;
double r9700585 = 21.0;
double r9700586 = r9700565 / r9700585;
double r9700587 = r9700582 * r9700571;
double r9700588 = r9700587 * r9700571;
double r9700589 = r9700586 * r9700588;
double r9700590 = r9700584 + r9700589;
double r9700591 = r9700568 * r9700590;
double r9700592 = fabs(r9700591);
return r9700592;
}
double f(double x) {
double r9700593 = 0.047619047619047616;
double r9700594 = x;
double r9700595 = fabs(r9700594);
double r9700596 = 7.0;
double r9700597 = pow(r9700595, r9700596);
double r9700598 = r9700593 * r9700597;
double r9700599 = 0.2;
double r9700600 = 5.0;
double r9700601 = pow(r9700595, r9700600);
double r9700602 = r9700599 * r9700601;
double r9700603 = 0.6666666666666666;
double r9700604 = r9700603 * r9700595;
double r9700605 = r9700604 * r9700595;
double r9700606 = 2.0;
double r9700607 = r9700605 + r9700606;
double r9700608 = r9700607 * r9700595;
double r9700609 = r9700602 + r9700608;
double r9700610 = r9700598 + r9700609;
double r9700611 = 1.0;
double r9700612 = atan2(1.0, 0.0);
double r9700613 = r9700611 / r9700612;
double r9700614 = sqrt(r9700613);
double r9700615 = r9700610 * r9700614;
double r9700616 = fabs(r9700615);
return r9700616;
}



Bits error versus x
Results
Initial program 0.2
rmApplied pow10.2
Applied pow10.2
Applied pow10.2
Applied pow-sqr0.2
Applied pow-prod-up0.2
Simplified0.2
Simplified0.6
Taylor expanded around inf 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019124
(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)))))))