Average Error: 0.2 → 0.2
Time: 33.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(\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(\left|x\right| \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 \frac{1}{21}\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(\left|x\right| \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 \frac{1}{21}\right)\right|
double f(double x) {
        double r5988371 = 1.0;
        double r5988372 = atan2(1.0, 0.0);
        double r5988373 = sqrt(r5988372);
        double r5988374 = r5988371 / r5988373;
        double r5988375 = 2.0;
        double r5988376 = x;
        double r5988377 = fabs(r5988376);
        double r5988378 = r5988375 * r5988377;
        double r5988379 = 3.0;
        double r5988380 = r5988375 / r5988379;
        double r5988381 = r5988377 * r5988377;
        double r5988382 = r5988381 * r5988377;
        double r5988383 = r5988380 * r5988382;
        double r5988384 = r5988378 + r5988383;
        double r5988385 = 5.0;
        double r5988386 = r5988371 / r5988385;
        double r5988387 = r5988382 * r5988377;
        double r5988388 = r5988387 * r5988377;
        double r5988389 = r5988386 * r5988388;
        double r5988390 = r5988384 + r5988389;
        double r5988391 = 21.0;
        double r5988392 = r5988371 / r5988391;
        double r5988393 = r5988388 * r5988377;
        double r5988394 = r5988393 * r5988377;
        double r5988395 = r5988392 * r5988394;
        double r5988396 = r5988390 + r5988395;
        double r5988397 = r5988374 * r5988396;
        double r5988398 = fabs(r5988397);
        return r5988398;
}

double f(double x) {
        double r5988399 = 1.0;
        double r5988400 = atan2(1.0, 0.0);
        double r5988401 = sqrt(r5988400);
        double r5988402 = r5988399 / r5988401;
        double r5988403 = 5.0;
        double r5988404 = r5988399 / r5988403;
        double r5988405 = x;
        double r5988406 = fabs(r5988405);
        double r5988407 = r5988406 * r5988406;
        double r5988408 = r5988407 * r5988406;
        double r5988409 = r5988408 * r5988406;
        double r5988410 = r5988406 * r5988409;
        double r5988411 = r5988404 * r5988410;
        double r5988412 = 2.0;
        double r5988413 = r5988406 * r5988412;
        double r5988414 = 3.0;
        double r5988415 = r5988412 / r5988414;
        double r5988416 = r5988408 * r5988415;
        double r5988417 = r5988413 + r5988416;
        double r5988418 = r5988411 + r5988417;
        double r5988419 = r5988406 * r5988410;
        double r5988420 = r5988406 * r5988419;
        double r5988421 = 21.0;
        double r5988422 = r5988399 / r5988421;
        double r5988423 = r5988420 * r5988422;
        double r5988424 = r5988418 + r5988423;
        double r5988425 = r5988402 * r5988424;
        double r5988426 = fabs(r5988425);
        return r5988426;
}

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(\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(\left|x\right| \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 \frac{1}{21}\right)\right|\]

Reproduce

herbie shell --seed 2019134 +o rules:numerics
(FPCore (x)
  :name "Jmat.Real.erfi, branch x less than or equal to 0.5"
  (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)))))))