\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(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) + \left(\left(\frac{\sqrt{1}}{\sqrt{\sqrt{\pi}}} \cdot \left(\frac{\sqrt{1}}{\sqrt{\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 r514 = 1.0;
double r515 = atan2(1.0, 0.0);
double r516 = sqrt(r515);
double r517 = r514 / r516;
double r518 = 2.0;
double r519 = x;
double r520 = fabs(r519);
double r521 = r518 * r520;
double r522 = 3.0;
double r523 = r518 / r522;
double r524 = r520 * r520;
double r525 = r524 * r520;
double r526 = r523 * r525;
double r527 = r521 + r526;
double r528 = 5.0;
double r529 = r514 / r528;
double r530 = r525 * r520;
double r531 = r530 * r520;
double r532 = r529 * r531;
double r533 = r527 + r532;
double r534 = 21.0;
double r535 = r514 / r534;
double r536 = r531 * r520;
double r537 = r536 * r520;
double r538 = r535 * r537;
double r539 = r533 + r538;
double r540 = r517 * r539;
double r541 = fabs(r540);
return r541;
}
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 = r545 * r561;
double r563 = sqrt(r542);
double r564 = sqrt(r544);
double r565 = r563 / r564;
double r566 = 21.0;
double r567 = r542 / r566;
double r568 = r565 * r567;
double r569 = r565 * r568;
double r570 = 6.0;
double r571 = pow(r548, r570);
double r572 = r569 * r571;
double r573 = r572 * r548;
double r574 = r562 + r573;
double r575 = fabs(r574);
return r575;
}



Bits error versus x
Results
Initial program 0.2
rmApplied distribute-lft-in0.2
Simplified0.2
rmApplied add-sqr-sqrt0.2
Applied sqrt-prod0.2
Applied add-sqr-sqrt0.2
Applied times-frac0.2
Applied associate-*l*0.1
Final simplification0.1
herbie shell --seed 2020025
(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)))))))