\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{\sqrt{1}}{1} \cdot \left(\frac{\sqrt{1} \cdot {\left(\left|x\right|\right)}^{6}}{21} \cdot \left|x\right|\right)\right)\right|double f(double x) {
double r125450 = 1.0;
double r125451 = atan2(1.0, 0.0);
double r125452 = sqrt(r125451);
double r125453 = r125450 / r125452;
double r125454 = 2.0;
double r125455 = x;
double r125456 = fabs(r125455);
double r125457 = r125454 * r125456;
double r125458 = 3.0;
double r125459 = r125454 / r125458;
double r125460 = r125456 * r125456;
double r125461 = r125460 * r125456;
double r125462 = r125459 * r125461;
double r125463 = r125457 + r125462;
double r125464 = 5.0;
double r125465 = r125450 / r125464;
double r125466 = r125461 * r125456;
double r125467 = r125466 * r125456;
double r125468 = r125465 * r125467;
double r125469 = r125463 + r125468;
double r125470 = 21.0;
double r125471 = r125450 / r125470;
double r125472 = r125467 * r125456;
double r125473 = r125472 * r125456;
double r125474 = r125471 * r125473;
double r125475 = r125469 + r125474;
double r125476 = r125453 * r125475;
double r125477 = fabs(r125476);
return r125477;
}
double f(double x) {
double r125478 = 1.0;
double r125479 = atan2(1.0, 0.0);
double r125480 = sqrt(r125479);
double r125481 = r125478 / r125480;
double r125482 = 2.0;
double r125483 = x;
double r125484 = fabs(r125483);
double r125485 = r125482 * r125484;
double r125486 = 3.0;
double r125487 = r125482 / r125486;
double r125488 = r125484 * r125484;
double r125489 = r125488 * r125484;
double r125490 = r125487 * r125489;
double r125491 = r125485 + r125490;
double r125492 = 5.0;
double r125493 = r125478 / r125492;
double r125494 = r125489 * r125484;
double r125495 = r125494 * r125484;
double r125496 = r125493 * r125495;
double r125497 = r125491 + r125496;
double r125498 = sqrt(r125478);
double r125499 = 1.0;
double r125500 = r125498 / r125499;
double r125501 = 6.0;
double r125502 = pow(r125484, r125501);
double r125503 = r125498 * r125502;
double r125504 = 21.0;
double r125505 = r125503 / r125504;
double r125506 = r125505 * r125484;
double r125507 = r125500 * r125506;
double r125508 = r125497 + r125507;
double r125509 = r125481 * r125508;
double r125510 = fabs(r125509);
return r125510;
}



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