\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(\left|x\right|\right)}^{\frac{3}{2}}\right| \cdot \left|{\left(\left|x\right|\right)}^{\frac{3}{2}}\right|\right) \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 r176470 = 1.0;
double r176471 = atan2(1.0, 0.0);
double r176472 = sqrt(r176471);
double r176473 = r176470 / r176472;
double r176474 = 2.0;
double r176475 = x;
double r176476 = fabs(r176475);
double r176477 = r176474 * r176476;
double r176478 = 3.0;
double r176479 = r176474 / r176478;
double r176480 = r176476 * r176476;
double r176481 = r176480 * r176476;
double r176482 = r176479 * r176481;
double r176483 = r176477 + r176482;
double r176484 = 5.0;
double r176485 = r176470 / r176484;
double r176486 = r176481 * r176476;
double r176487 = r176486 * r176476;
double r176488 = r176485 * r176487;
double r176489 = r176483 + r176488;
double r176490 = 21.0;
double r176491 = r176470 / r176490;
double r176492 = r176487 * r176476;
double r176493 = r176492 * r176476;
double r176494 = r176491 * r176493;
double r176495 = r176489 + r176494;
double r176496 = r176473 * r176495;
double r176497 = fabs(r176496);
return r176497;
}
double f(double x) {
double r176498 = 1.0;
double r176499 = atan2(1.0, 0.0);
double r176500 = sqrt(r176499);
double r176501 = r176498 / r176500;
double r176502 = 2.0;
double r176503 = x;
double r176504 = fabs(r176503);
double r176505 = r176502 * r176504;
double r176506 = 3.0;
double r176507 = r176502 / r176506;
double r176508 = r176504 * r176504;
double r176509 = r176508 * r176504;
double r176510 = r176507 * r176509;
double r176511 = r176505 + r176510;
double r176512 = 5.0;
double r176513 = r176498 / r176512;
double r176514 = r176509 * r176504;
double r176515 = r176514 * r176504;
double r176516 = r176513 * r176515;
double r176517 = r176511 + r176516;
double r176518 = 21.0;
double r176519 = r176498 / r176518;
double r176520 = 1.5;
double r176521 = pow(r176504, r176520);
double r176522 = fabs(r176521);
double r176523 = r176522 * r176522;
double r176524 = r176523 * r176504;
double r176525 = r176524 * r176504;
double r176526 = r176525 * r176504;
double r176527 = r176526 * r176504;
double r176528 = r176519 * r176527;
double r176529 = r176517 + r176528;
double r176530 = r176501 * r176529;
double r176531 = fabs(r176530);
return r176531;
}



Bits error versus x
Results
Initial program 0.2
rmApplied add-sqr-sqrt0.2
Simplified0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019318
(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)))))))