Average Error: 0.2 → 0.2
Time: 4.7s
Precision: 64
\[\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| \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| \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| \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|
double f(double x) {
        double r158497 = 1.0;
        double r158498 = atan2(1.0, 0.0);
        double r158499 = sqrt(r158498);
        double r158500 = r158497 / r158499;
        double r158501 = 2.0;
        double r158502 = x;
        double r158503 = fabs(r158502);
        double r158504 = r158501 * r158503;
        double r158505 = 3.0;
        double r158506 = r158501 / r158505;
        double r158507 = r158503 * r158503;
        double r158508 = r158507 * r158503;
        double r158509 = r158506 * r158508;
        double r158510 = r158504 + r158509;
        double r158511 = 5.0;
        double r158512 = r158497 / r158511;
        double r158513 = r158508 * r158503;
        double r158514 = r158513 * r158503;
        double r158515 = r158512 * r158514;
        double r158516 = r158510 + r158515;
        double r158517 = 21.0;
        double r158518 = r158497 / r158517;
        double r158519 = r158514 * r158503;
        double r158520 = r158519 * r158503;
        double r158521 = r158518 * r158520;
        double r158522 = r158516 + r158521;
        double r158523 = r158500 * r158522;
        double r158524 = fabs(r158523);
        return r158524;
}

double f(double x) {
        double r158525 = 1.0;
        double r158526 = atan2(1.0, 0.0);
        double r158527 = sqrt(r158526);
        double r158528 = r158525 / r158527;
        double r158529 = 2.0;
        double r158530 = x;
        double r158531 = fabs(r158530);
        double r158532 = r158529 * r158531;
        double r158533 = 3.0;
        double r158534 = r158529 / r158533;
        double r158535 = r158531 * r158531;
        double r158536 = r158535 * r158531;
        double r158537 = r158534 * r158536;
        double r158538 = r158532 + r158537;
        double r158539 = 5.0;
        double r158540 = r158525 / r158539;
        double r158541 = r158536 * r158531;
        double r158542 = r158541 * r158531;
        double r158543 = r158540 * r158542;
        double r158544 = r158538 + r158543;
        double r158545 = 21.0;
        double r158546 = r158525 / r158545;
        double r158547 = r158542 * r158531;
        double r158548 = r158547 * r158531;
        double r158549 = r158546 * r158548;
        double r158550 = r158544 + r158549;
        double r158551 = r158528 * r158550;
        double r158552 = fabs(r158551);
        return r158552;
}

Error

Bits error versus x

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 0.2

    \[\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|\]
  2. Final simplification0.2

    \[\leadsto \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|\]

Reproduce

herbie shell --seed 2019344 
(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)))))))