\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(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right)\right) \cdot \frac{1}{21}\right)\right|double f(double x) {
double r19261576 = 1.0;
double r19261577 = atan2(1.0, 0.0);
double r19261578 = sqrt(r19261577);
double r19261579 = r19261576 / r19261578;
double r19261580 = 2.0;
double r19261581 = x;
double r19261582 = fabs(r19261581);
double r19261583 = r19261580 * r19261582;
double r19261584 = 3.0;
double r19261585 = r19261580 / r19261584;
double r19261586 = r19261582 * r19261582;
double r19261587 = r19261586 * r19261582;
double r19261588 = r19261585 * r19261587;
double r19261589 = r19261583 + r19261588;
double r19261590 = 5.0;
double r19261591 = r19261576 / r19261590;
double r19261592 = r19261587 * r19261582;
double r19261593 = r19261592 * r19261582;
double r19261594 = r19261591 * r19261593;
double r19261595 = r19261589 + r19261594;
double r19261596 = 21.0;
double r19261597 = r19261576 / r19261596;
double r19261598 = r19261593 * r19261582;
double r19261599 = r19261598 * r19261582;
double r19261600 = r19261597 * r19261599;
double r19261601 = r19261595 + r19261600;
double r19261602 = r19261579 * r19261601;
double r19261603 = fabs(r19261602);
return r19261603;
}
double f(double x) {
double r19261604 = 1.0;
double r19261605 = atan2(1.0, 0.0);
double r19261606 = sqrt(r19261605);
double r19261607 = r19261604 / r19261606;
double r19261608 = 0.2;
double r19261609 = x;
double r19261610 = fabs(r19261609);
double r19261611 = r19261610 * r19261610;
double r19261612 = r19261611 * r19261610;
double r19261613 = r19261612 * r19261610;
double r19261614 = r19261610 * r19261613;
double r19261615 = r19261608 * r19261614;
double r19261616 = 2.0;
double r19261617 = r19261610 * r19261616;
double r19261618 = 0.6666666666666666;
double r19261619 = r19261612 * r19261618;
double r19261620 = r19261617 + r19261619;
double r19261621 = r19261615 + r19261620;
double r19261622 = r19261610 * r19261614;
double r19261623 = r19261610 * r19261622;
double r19261624 = 0.047619047619047616;
double r19261625 = r19261623 * r19261624;
double r19261626 = r19261621 + r19261625;
double r19261627 = r19261607 * r19261626;
double r19261628 = fabs(r19261627);
return r19261628;
}



Bits error versus x
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2019120 +o rules:numerics
(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)))))))