Average Error: 0.2 → 0.2
Time: 1.4m
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(\frac{1}{5} \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \left(\left|x\right| \cdot 2 + \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \frac{2}{3}\right)\right) + \left(\frac{1}{21} \cdot \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right)\right) \cdot \left|x\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(\frac{1}{5} \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \left(\left|x\right| \cdot 2 + \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \frac{2}{3}\right)\right) + \left(\frac{1}{21} \cdot \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right)\right) \cdot \left|x\right|\right)\right|
double f(double x) {
        double r6774452 = 1.0;
        double r6774453 = atan2(1.0, 0.0);
        double r6774454 = sqrt(r6774453);
        double r6774455 = r6774452 / r6774454;
        double r6774456 = 2.0;
        double r6774457 = x;
        double r6774458 = fabs(r6774457);
        double r6774459 = r6774456 * r6774458;
        double r6774460 = 3.0;
        double r6774461 = r6774456 / r6774460;
        double r6774462 = r6774458 * r6774458;
        double r6774463 = r6774462 * r6774458;
        double r6774464 = r6774461 * r6774463;
        double r6774465 = r6774459 + r6774464;
        double r6774466 = 5.0;
        double r6774467 = r6774452 / r6774466;
        double r6774468 = r6774463 * r6774458;
        double r6774469 = r6774468 * r6774458;
        double r6774470 = r6774467 * r6774469;
        double r6774471 = r6774465 + r6774470;
        double r6774472 = 21.0;
        double r6774473 = r6774452 / r6774472;
        double r6774474 = r6774469 * r6774458;
        double r6774475 = r6774474 * r6774458;
        double r6774476 = r6774473 * r6774475;
        double r6774477 = r6774471 + r6774476;
        double r6774478 = r6774455 * r6774477;
        double r6774479 = fabs(r6774478);
        return r6774479;
}

double f(double x) {
        double r6774480 = 1.0;
        double r6774481 = atan2(1.0, 0.0);
        double r6774482 = sqrt(r6774481);
        double r6774483 = r6774480 / r6774482;
        double r6774484 = 5.0;
        double r6774485 = r6774480 / r6774484;
        double r6774486 = x;
        double r6774487 = fabs(r6774486);
        double r6774488 = r6774487 * r6774487;
        double r6774489 = r6774488 * r6774487;
        double r6774490 = r6774489 * r6774487;
        double r6774491 = r6774487 * r6774490;
        double r6774492 = r6774485 * r6774491;
        double r6774493 = 2.0;
        double r6774494 = r6774487 * r6774493;
        double r6774495 = 3.0;
        double r6774496 = r6774493 / r6774495;
        double r6774497 = r6774489 * r6774496;
        double r6774498 = r6774494 + r6774497;
        double r6774499 = r6774492 + r6774498;
        double r6774500 = 21.0;
        double r6774501 = r6774480 / r6774500;
        double r6774502 = r6774487 * r6774491;
        double r6774503 = r6774501 * r6774502;
        double r6774504 = r6774503 * r6774487;
        double r6774505 = r6774499 + r6774504;
        double r6774506 = r6774483 * r6774505;
        double r6774507 = fabs(r6774506);
        return r6774507;
}

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. Using strategy rm
  3. Applied associate-*r*0.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) + \color{blue}{\left(\frac{1}{21} \cdot \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)\right) \cdot \left|x\right|}\right)\right|\]
  4. Final simplification0.2

    \[\leadsto \left|\frac{1}{\sqrt{\pi}} \cdot \left(\left(\frac{1}{5} \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) + \left(\left|x\right| \cdot 2 + \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \frac{2}{3}\right)\right) + \left(\frac{1}{21} \cdot \left(\left|x\right| \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right)\right) \cdot \left|x\right|\right)\right|\]

Reproduce

herbie shell --seed 2019174 
(FPCore (x)
  :name "Jmat.Real.erfi, branch x less than or equal to 0.5"
  (fabs (* (/ 1.0 (sqrt PI)) (+ (+ (+ (* 2.0 (fabs x)) (* (/ 2.0 3.0) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1.0 5.0) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1.0 21.0) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))))