Average Error: 0.2 → 0.2
Time: 21.4s
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(1 \cdot \left(\frac{{\left(\left|x\right|\right)}^{7}}{21} + \frac{{\left(\left|x\right|\right)}^{5}}{5}\right) + 2 \cdot \left(\frac{{\left(\left|x\right|\right)}^{3}}{3} + \left|x\right|\right)\right) \cdot 1\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(1 \cdot \left(\frac{{\left(\left|x\right|\right)}^{7}}{21} + \frac{{\left(\left|x\right|\right)}^{5}}{5}\right) + 2 \cdot \left(\frac{{\left(\left|x\right|\right)}^{3}}{3} + \left|x\right|\right)\right) \cdot 1\right)\right|
double f(double x) {
        double r123494 = 1.0;
        double r123495 = atan2(1.0, 0.0);
        double r123496 = sqrt(r123495);
        double r123497 = r123494 / r123496;
        double r123498 = 2.0;
        double r123499 = x;
        double r123500 = fabs(r123499);
        double r123501 = r123498 * r123500;
        double r123502 = 3.0;
        double r123503 = r123498 / r123502;
        double r123504 = r123500 * r123500;
        double r123505 = r123504 * r123500;
        double r123506 = r123503 * r123505;
        double r123507 = r123501 + r123506;
        double r123508 = 5.0;
        double r123509 = r123494 / r123508;
        double r123510 = r123505 * r123500;
        double r123511 = r123510 * r123500;
        double r123512 = r123509 * r123511;
        double r123513 = r123507 + r123512;
        double r123514 = 21.0;
        double r123515 = r123494 / r123514;
        double r123516 = r123511 * r123500;
        double r123517 = r123516 * r123500;
        double r123518 = r123515 * r123517;
        double r123519 = r123513 + r123518;
        double r123520 = r123497 * r123519;
        double r123521 = fabs(r123520);
        return r123521;
}

double f(double x) {
        double r123522 = 1.0;
        double r123523 = atan2(1.0, 0.0);
        double r123524 = sqrt(r123523);
        double r123525 = r123522 / r123524;
        double r123526 = 1.0;
        double r123527 = x;
        double r123528 = fabs(r123527);
        double r123529 = 7.0;
        double r123530 = pow(r123528, r123529);
        double r123531 = 21.0;
        double r123532 = r123530 / r123531;
        double r123533 = 5.0;
        double r123534 = pow(r123528, r123533);
        double r123535 = 5.0;
        double r123536 = r123534 / r123535;
        double r123537 = r123532 + r123536;
        double r123538 = r123526 * r123537;
        double r123539 = 2.0;
        double r123540 = 3.0;
        double r123541 = pow(r123528, r123540);
        double r123542 = 3.0;
        double r123543 = r123541 / r123542;
        double r123544 = r123543 + r123528;
        double r123545 = r123539 * r123544;
        double r123546 = r123538 + r123545;
        double r123547 = r123546 * r123526;
        double r123548 = r123525 * r123547;
        double r123549 = fabs(r123548);
        return r123549;
}

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. Simplified0.6

    \[\leadsto \color{blue}{\left|\frac{1 \cdot \left(\frac{{\left(\left|x\right|\right)}^{7}}{21} + \frac{{\left(\left|x\right|\right)}^{5}}{5}\right) + 2 \cdot \left(\frac{{\left(\left|x\right|\right)}^{3}}{3} + \left|x\right|\right)}{\frac{\sqrt{\pi}}{1}}\right|}\]
  3. Using strategy rm
  4. Applied div-inv0.6

    \[\leadsto \left|\frac{1 \cdot \left(\frac{{\left(\left|x\right|\right)}^{7}}{21} + \frac{{\left(\left|x\right|\right)}^{5}}{5}\right) + 2 \cdot \left(\frac{{\left(\left|x\right|\right)}^{3}}{3} + \left|x\right|\right)}{\color{blue}{\sqrt{\pi} \cdot \frac{1}{1}}}\right|\]
  5. Applied *-un-lft-identity0.6

    \[\leadsto \left|\frac{\color{blue}{1 \cdot \left(1 \cdot \left(\frac{{\left(\left|x\right|\right)}^{7}}{21} + \frac{{\left(\left|x\right|\right)}^{5}}{5}\right) + 2 \cdot \left(\frac{{\left(\left|x\right|\right)}^{3}}{3} + \left|x\right|\right)\right)}}{\sqrt{\pi} \cdot \frac{1}{1}}\right|\]
  6. Applied times-frac0.2

    \[\leadsto \left|\color{blue}{\frac{1}{\sqrt{\pi}} \cdot \frac{1 \cdot \left(\frac{{\left(\left|x\right|\right)}^{7}}{21} + \frac{{\left(\left|x\right|\right)}^{5}}{5}\right) + 2 \cdot \left(\frac{{\left(\left|x\right|\right)}^{3}}{3} + \left|x\right|\right)}{\frac{1}{1}}}\right|\]
  7. Simplified0.2

    \[\leadsto \left|\frac{1}{\sqrt{\pi}} \cdot \color{blue}{\left(\left(1 \cdot \left(\frac{{\left(\left|x\right|\right)}^{7}}{21} + \frac{{\left(\left|x\right|\right)}^{5}}{5}\right) + 2 \cdot \left(\frac{{\left(\left|x\right|\right)}^{3}}{3} + \left|x\right|\right)\right) \cdot 1\right)}\right|\]
  8. Final simplification0.2

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

Reproduce

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