\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 \mathsf{fma}\left(\left(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{3}\right) \cdot \left|x\right|, \left|x\right|, \mathsf{fma}\left(\left|x\right|, 2, {\left(\left|x\right|\right)}^{3} \cdot \frac{2}{3}\right)\right) + \left(\left(\sqrt{\frac{1}{\sqrt{\pi}}} \cdot \left(\sqrt{\frac{1}{\sqrt{\pi}}} \cdot \frac{1}{21}\right)\right) \cdot {\left(\left|x\right|\right)}^{6}\right) \cdot \left|x\right|\right|double f(double x) {
double r542 = 1.0;
double r543 = atan2(1.0, 0.0);
double r544 = sqrt(r543);
double r545 = r542 / r544;
double r546 = 2.0;
double r547 = x;
double r548 = fabs(r547);
double r549 = r546 * r548;
double r550 = 3.0;
double r551 = r546 / r550;
double r552 = r548 * r548;
double r553 = r552 * r548;
double r554 = r551 * r553;
double r555 = r549 + r554;
double r556 = 5.0;
double r557 = r542 / r556;
double r558 = r553 * r548;
double r559 = r558 * r548;
double r560 = r557 * r559;
double r561 = r555 + r560;
double r562 = 21.0;
double r563 = r542 / r562;
double r564 = r559 * r548;
double r565 = r564 * r548;
double r566 = r563 * r565;
double r567 = r561 + r566;
double r568 = r545 * r567;
double r569 = fabs(r568);
return r569;
}
double f(double x) {
double r570 = 1.0;
double r571 = atan2(1.0, 0.0);
double r572 = sqrt(r571);
double r573 = r570 / r572;
double r574 = 5.0;
double r575 = r570 / r574;
double r576 = x;
double r577 = fabs(r576);
double r578 = 3.0;
double r579 = pow(r577, r578);
double r580 = r575 * r579;
double r581 = r580 * r577;
double r582 = 2.0;
double r583 = 3.0;
double r584 = r582 / r583;
double r585 = r579 * r584;
double r586 = fma(r577, r582, r585);
double r587 = fma(r581, r577, r586);
double r588 = r573 * r587;
double r589 = sqrt(r573);
double r590 = 21.0;
double r591 = r570 / r590;
double r592 = r589 * r591;
double r593 = r589 * r592;
double r594 = 6.0;
double r595 = pow(r577, r594);
double r596 = r593 * r595;
double r597 = r596 * r577;
double r598 = r588 + r597;
double r599 = fabs(r598);
return r599;
}



Bits error versus x
Initial program 0.2
rmApplied distribute-lft-in0.2
Simplified0.2
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied associate-*l*0.1
Final simplification0.1
herbie shell --seed 2020025 +o rules:numerics
(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)))))))