Average Error: 0.2 → 0.2
Time: 1.5m
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}{21} \cdot \left({\left(\left|x\right|\right)}^{7}\right) + \left((\frac{2}{3} \cdot \left(\left|x\right| \cdot \left|x\right|\right) + 2)_* \cdot \left|x\right|\right))_* \cdot \sqrt{\frac{1}{\pi}} + \sqrt{\frac{1}{\pi}} \cdot \left({\left(\left|x\right|\right)}^{5} \cdot \frac{1}{5}\right)\right|\]
double f(double x) {
        double r23103458 = 1.0;
        double r23103459 = atan2(1.0, 0.0);
        double r23103460 = sqrt(r23103459);
        double r23103461 = r23103458 / r23103460;
        double r23103462 = 2.0;
        double r23103463 = x;
        double r23103464 = fabs(r23103463);
        double r23103465 = r23103462 * r23103464;
        double r23103466 = 3.0;
        double r23103467 = r23103462 / r23103466;
        double r23103468 = r23103464 * r23103464;
        double r23103469 = r23103468 * r23103464;
        double r23103470 = r23103467 * r23103469;
        double r23103471 = r23103465 + r23103470;
        double r23103472 = 5.0;
        double r23103473 = r23103458 / r23103472;
        double r23103474 = r23103469 * r23103464;
        double r23103475 = r23103474 * r23103464;
        double r23103476 = r23103473 * r23103475;
        double r23103477 = r23103471 + r23103476;
        double r23103478 = 21.0;
        double r23103479 = r23103458 / r23103478;
        double r23103480 = r23103475 * r23103464;
        double r23103481 = r23103480 * r23103464;
        double r23103482 = r23103479 * r23103481;
        double r23103483 = r23103477 + r23103482;
        double r23103484 = r23103461 * r23103483;
        double r23103485 = fabs(r23103484);
        return r23103485;
}

double f(double x) {
        double r23103486 = 0.047619047619047616;
        double r23103487 = x;
        double r23103488 = fabs(r23103487);
        double r23103489 = 7.0;
        double r23103490 = pow(r23103488, r23103489);
        double r23103491 = 0.6666666666666666;
        double r23103492 = r23103488 * r23103488;
        double r23103493 = 2.0;
        double r23103494 = fma(r23103491, r23103492, r23103493);
        double r23103495 = r23103494 * r23103488;
        double r23103496 = fma(r23103486, r23103490, r23103495);
        double r23103497 = 1.0;
        double r23103498 = atan2(1.0, 0.0);
        double r23103499 = r23103497 / r23103498;
        double r23103500 = sqrt(r23103499);
        double r23103501 = r23103496 * r23103500;
        double r23103502 = 5.0;
        double r23103503 = pow(r23103488, r23103502);
        double r23103504 = 0.2;
        double r23103505 = r23103503 * r23103504;
        double r23103506 = r23103500 * r23103505;
        double r23103507 = r23103501 + r23103506;
        double r23103508 = fabs(r23103507);
        return r23103508;
}

\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}{21} \cdot \left({\left(\left|x\right|\right)}^{7}\right) + \left((\frac{2}{3} \cdot \left(\left|x\right| \cdot \left|x\right|\right) + 2)_* \cdot \left|x\right|\right))_* \cdot \sqrt{\frac{1}{\pi}} + \sqrt{\frac{1}{\pi}} \cdot \left({\left(\left|x\right|\right)}^{5} \cdot \frac{1}{5}\right)\right|

Error

Bits error versus x

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. Taylor expanded around -inf 0.2

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

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

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

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

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

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

Reproduce

herbie shell --seed 2019101 +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)))))))