Average Error: 0.2 → 0.2
Time: 7.0s
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) + 1 \cdot \left(\left(\frac{1}{21} \cdot {\left(\left|x\right|\right)}^{6}\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) + 1 \cdot \left(\left(\frac{1}{21} \cdot {\left(\left|x\right|\right)}^{6}\right) \cdot \left|x\right|\right)\right)\right|
double f(double x) {
        double r149376 = 1.0;
        double r149377 = atan2(1.0, 0.0);
        double r149378 = sqrt(r149377);
        double r149379 = r149376 / r149378;
        double r149380 = 2.0;
        double r149381 = x;
        double r149382 = fabs(r149381);
        double r149383 = r149380 * r149382;
        double r149384 = 3.0;
        double r149385 = r149380 / r149384;
        double r149386 = r149382 * r149382;
        double r149387 = r149386 * r149382;
        double r149388 = r149385 * r149387;
        double r149389 = r149383 + r149388;
        double r149390 = 5.0;
        double r149391 = r149376 / r149390;
        double r149392 = r149387 * r149382;
        double r149393 = r149392 * r149382;
        double r149394 = r149391 * r149393;
        double r149395 = r149389 + r149394;
        double r149396 = 21.0;
        double r149397 = r149376 / r149396;
        double r149398 = r149393 * r149382;
        double r149399 = r149398 * r149382;
        double r149400 = r149397 * r149399;
        double r149401 = r149395 + r149400;
        double r149402 = r149379 * r149401;
        double r149403 = fabs(r149402);
        return r149403;
}

double f(double x) {
        double r149404 = 1.0;
        double r149405 = atan2(1.0, 0.0);
        double r149406 = sqrt(r149405);
        double r149407 = r149404 / r149406;
        double r149408 = 2.0;
        double r149409 = x;
        double r149410 = fabs(r149409);
        double r149411 = r149408 * r149410;
        double r149412 = 3.0;
        double r149413 = r149408 / r149412;
        double r149414 = r149410 * r149410;
        double r149415 = r149414 * r149410;
        double r149416 = r149413 * r149415;
        double r149417 = r149411 + r149416;
        double r149418 = 5.0;
        double r149419 = r149404 / r149418;
        double r149420 = r149415 * r149410;
        double r149421 = r149420 * r149410;
        double r149422 = r149419 * r149421;
        double r149423 = r149417 + r149422;
        double r149424 = 1.0;
        double r149425 = 21.0;
        double r149426 = r149424 / r149425;
        double r149427 = 6.0;
        double r149428 = pow(r149410, r149427);
        double r149429 = r149426 * r149428;
        double r149430 = r149429 * r149410;
        double r149431 = r149404 * r149430;
        double r149432 = r149423 + r149431;
        double r149433 = r149407 * r149432;
        double r149434 = fabs(r149433);
        return r149434;
}

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 div-inv0.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(1 \cdot \frac{1}{21}\right)} \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|\]
  4. Applied associate-*l*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}{1 \cdot \left(\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)\right|\]
  5. Simplified0.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) + 1 \cdot \color{blue}{\left(\left(\frac{1}{21} \cdot {\left(\left|x\right|\right)}^{6}\right) \cdot \left|x\right|\right)}\right)\right|\]
  6. 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) + 1 \cdot \left(\left(\frac{1}{21} \cdot {\left(\left|x\right|\right)}^{6}\right) \cdot \left|x\right|\right)\right)\right|\]

Reproduce

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