Average Error: 0.2 → 0.2
Time: 27.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|\left({\left(\left|x\right|\right)}^{7} \cdot \frac{1}{21} + \left({\left(\left|x\right|\right)}^{5} \cdot \frac{1}{5} + \left(\frac{2}{3} \cdot \left(\left|x\right| \cdot \left|x\right|\right) + 2\right) \cdot \left|x\right|\right)\right) \cdot \sqrt{\frac{1}{\pi}}\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|\left({\left(\left|x\right|\right)}^{7} \cdot \frac{1}{21} + \left({\left(\left|x\right|\right)}^{5} \cdot \frac{1}{5} + \left(\frac{2}{3} \cdot \left(\left|x\right| \cdot \left|x\right|\right) + 2\right) \cdot \left|x\right|\right)\right) \cdot \sqrt{\frac{1}{\pi}}\right|
double f(double x) {
        double r6490624 = 1.0;
        double r6490625 = atan2(1.0, 0.0);
        double r6490626 = sqrt(r6490625);
        double r6490627 = r6490624 / r6490626;
        double r6490628 = 2.0;
        double r6490629 = x;
        double r6490630 = fabs(r6490629);
        double r6490631 = r6490628 * r6490630;
        double r6490632 = 3.0;
        double r6490633 = r6490628 / r6490632;
        double r6490634 = r6490630 * r6490630;
        double r6490635 = r6490634 * r6490630;
        double r6490636 = r6490633 * r6490635;
        double r6490637 = r6490631 + r6490636;
        double r6490638 = 5.0;
        double r6490639 = r6490624 / r6490638;
        double r6490640 = r6490635 * r6490630;
        double r6490641 = r6490640 * r6490630;
        double r6490642 = r6490639 * r6490641;
        double r6490643 = r6490637 + r6490642;
        double r6490644 = 21.0;
        double r6490645 = r6490624 / r6490644;
        double r6490646 = r6490641 * r6490630;
        double r6490647 = r6490646 * r6490630;
        double r6490648 = r6490645 * r6490647;
        double r6490649 = r6490643 + r6490648;
        double r6490650 = r6490627 * r6490649;
        double r6490651 = fabs(r6490650);
        return r6490651;
}

double f(double x) {
        double r6490652 = x;
        double r6490653 = fabs(r6490652);
        double r6490654 = 7.0;
        double r6490655 = pow(r6490653, r6490654);
        double r6490656 = 0.047619047619047616;
        double r6490657 = r6490655 * r6490656;
        double r6490658 = 5.0;
        double r6490659 = pow(r6490653, r6490658);
        double r6490660 = 0.2;
        double r6490661 = r6490659 * r6490660;
        double r6490662 = 0.6666666666666666;
        double r6490663 = r6490653 * r6490653;
        double r6490664 = r6490662 * r6490663;
        double r6490665 = 2.0;
        double r6490666 = r6490664 + r6490665;
        double r6490667 = r6490666 * r6490653;
        double r6490668 = r6490661 + r6490667;
        double r6490669 = r6490657 + r6490668;
        double r6490670 = 1.0;
        double r6490671 = atan2(1.0, 0.0);
        double r6490672 = r6490670 / r6490671;
        double r6490673 = sqrt(r6490672);
        double r6490674 = r6490669 * r6490673;
        double r6490675 = fabs(r6490674);
        return r6490675;
}

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. Taylor expanded around 0 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 \left(\left({\left(\left|x\right|\right)}^{5} \cdot \frac{1}{5} + \left|x\right| \cdot \left(2 + \frac{2}{3} \cdot \left(\left|x\right| \cdot \left|x\right|\right)\right)\right) + \frac{1}{21} \cdot {\left(\left|x\right|\right)}^{7}\right)}\right|\]
  4. Using strategy rm
  5. Applied *-commutative0.2

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

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

Reproduce

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