\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({\left(\left|x\right|\right)}^{3}\right)}^{1} \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right|double f(double x) {
double r219439 = 1.0;
double r219440 = atan2(1.0, 0.0);
double r219441 = sqrt(r219440);
double r219442 = r219439 / r219441;
double r219443 = 2.0;
double r219444 = x;
double r219445 = fabs(r219444);
double r219446 = r219443 * r219445;
double r219447 = 3.0;
double r219448 = r219443 / r219447;
double r219449 = r219445 * r219445;
double r219450 = r219449 * r219445;
double r219451 = r219448 * r219450;
double r219452 = r219446 + r219451;
double r219453 = 5.0;
double r219454 = r219439 / r219453;
double r219455 = r219450 * r219445;
double r219456 = r219455 * r219445;
double r219457 = r219454 * r219456;
double r219458 = r219452 + r219457;
double r219459 = 21.0;
double r219460 = r219439 / r219459;
double r219461 = r219456 * r219445;
double r219462 = r219461 * r219445;
double r219463 = r219460 * r219462;
double r219464 = r219458 + r219463;
double r219465 = r219442 * r219464;
double r219466 = fabs(r219465);
return r219466;
}
double f(double x) {
double r219467 = 1.0;
double r219468 = atan2(1.0, 0.0);
double r219469 = sqrt(r219468);
double r219470 = r219467 / r219469;
double r219471 = 2.0;
double r219472 = x;
double r219473 = fabs(r219472);
double r219474 = r219471 * r219473;
double r219475 = 3.0;
double r219476 = r219471 / r219475;
double r219477 = r219473 * r219473;
double r219478 = r219477 * r219473;
double r219479 = r219476 * r219478;
double r219480 = r219474 + r219479;
double r219481 = 5.0;
double r219482 = r219467 / r219481;
double r219483 = r219478 * r219473;
double r219484 = r219483 * r219473;
double r219485 = r219482 * r219484;
double r219486 = r219480 + r219485;
double r219487 = 21.0;
double r219488 = r219467 / r219487;
double r219489 = 3.0;
double r219490 = pow(r219473, r219489);
double r219491 = 1.0;
double r219492 = pow(r219490, r219491);
double r219493 = r219492 * r219473;
double r219494 = r219493 * r219473;
double r219495 = r219494 * r219473;
double r219496 = r219495 * r219473;
double r219497 = r219488 * r219496;
double r219498 = r219486 + r219497;
double r219499 = r219470 * r219498;
double r219500 = fabs(r219499);
return r219500;
}



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