\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(\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|x\right|\right)}^{4} \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right|double f(double x) {
double r143503 = 1.0;
double r143504 = atan2(1.0, 0.0);
double r143505 = sqrt(r143504);
double r143506 = r143503 / r143505;
double r143507 = 2.0;
double r143508 = x;
double r143509 = fabs(r143508);
double r143510 = r143507 * r143509;
double r143511 = 3.0;
double r143512 = r143507 / r143511;
double r143513 = r143509 * r143509;
double r143514 = r143513 * r143509;
double r143515 = r143512 * r143514;
double r143516 = r143510 + r143515;
double r143517 = 5.0;
double r143518 = r143503 / r143517;
double r143519 = r143514 * r143509;
double r143520 = r143519 * r143509;
double r143521 = r143518 * r143520;
double r143522 = r143516 + r143521;
double r143523 = 21.0;
double r143524 = r143503 / r143523;
double r143525 = r143520 * r143509;
double r143526 = r143525 * r143509;
double r143527 = r143524 * r143526;
double r143528 = r143522 + r143527;
double r143529 = r143506 * r143528;
double r143530 = fabs(r143529);
return r143530;
}
double f(double x) {
double r143531 = 1.0;
double r143532 = atan2(1.0, 0.0);
double r143533 = sqrt(r143532);
double r143534 = r143531 / r143533;
double r143535 = 2.0;
double r143536 = x;
double r143537 = fabs(r143536);
double r143538 = r143535 * r143537;
double r143539 = 3.0;
double r143540 = r143535 / r143539;
double r143541 = r143537 * r143537;
double r143542 = r143541 * r143537;
double r143543 = r143540 * r143542;
double r143544 = r143538 + r143543;
double r143545 = 5.0;
double r143546 = r143531 / r143545;
double r143547 = r143542 * r143537;
double r143548 = r143547 * r143537;
double r143549 = r143546 * r143548;
double r143550 = r143544 + r143549;
double r143551 = 21.0;
double r143552 = r143531 / r143551;
double r143553 = 4.0;
double r143554 = pow(r143537, r143553);
double r143555 = r143554 * r143537;
double r143556 = r143555 * r143537;
double r143557 = r143556 * r143537;
double r143558 = r143552 * r143557;
double r143559 = r143550 + r143558;
double r143560 = r143534 * r143559;
double r143561 = fabs(r143560);
return r143561;
}



Bits error versus x
Results
Initial program 0.2
rmApplied pow10.2
Applied pow10.2
Applied pow10.2
Applied pow10.2
Applied pow-prod-up0.2
Applied pow-prod-up0.2
Applied pow-prod-up0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020035 +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)))))))