Average Error: 0.2 → 0.2
Time: 1.4m
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) + \left(\frac{1}{21} \cdot \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)\right) \cdot \left|x\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) + \left(\frac{1}{21} \cdot \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)\right) \cdot \left|x\right|\right)\right|
double f(double x) {
        double r10071669 = 1.0;
        double r10071670 = atan2(1.0, 0.0);
        double r10071671 = sqrt(r10071670);
        double r10071672 = r10071669 / r10071671;
        double r10071673 = 2.0;
        double r10071674 = x;
        double r10071675 = fabs(r10071674);
        double r10071676 = r10071673 * r10071675;
        double r10071677 = 3.0;
        double r10071678 = r10071673 / r10071677;
        double r10071679 = r10071675 * r10071675;
        double r10071680 = r10071679 * r10071675;
        double r10071681 = r10071678 * r10071680;
        double r10071682 = r10071676 + r10071681;
        double r10071683 = 5.0;
        double r10071684 = r10071669 / r10071683;
        double r10071685 = r10071680 * r10071675;
        double r10071686 = r10071685 * r10071675;
        double r10071687 = r10071684 * r10071686;
        double r10071688 = r10071682 + r10071687;
        double r10071689 = 21.0;
        double r10071690 = r10071669 / r10071689;
        double r10071691 = r10071686 * r10071675;
        double r10071692 = r10071691 * r10071675;
        double r10071693 = r10071690 * r10071692;
        double r10071694 = r10071688 + r10071693;
        double r10071695 = r10071672 * r10071694;
        double r10071696 = fabs(r10071695);
        return r10071696;
}

double f(double x) {
        double r10071697 = 1.0;
        double r10071698 = atan2(1.0, 0.0);
        double r10071699 = sqrt(r10071698);
        double r10071700 = r10071697 / r10071699;
        double r10071701 = 2.0;
        double r10071702 = x;
        double r10071703 = fabs(r10071702);
        double r10071704 = r10071701 * r10071703;
        double r10071705 = 3.0;
        double r10071706 = r10071701 / r10071705;
        double r10071707 = r10071703 * r10071703;
        double r10071708 = r10071707 * r10071703;
        double r10071709 = r10071706 * r10071708;
        double r10071710 = r10071704 + r10071709;
        double r10071711 = 5.0;
        double r10071712 = r10071697 / r10071711;
        double r10071713 = r10071708 * r10071703;
        double r10071714 = r10071713 * r10071703;
        double r10071715 = r10071712 * r10071714;
        double r10071716 = r10071710 + r10071715;
        double r10071717 = 21.0;
        double r10071718 = r10071697 / r10071717;
        double r10071719 = r10071714 * r10071703;
        double r10071720 = r10071718 * r10071719;
        double r10071721 = r10071720 * r10071703;
        double r10071722 = r10071716 + r10071721;
        double r10071723 = r10071700 * r10071722;
        double r10071724 = fabs(r10071723);
        return r10071724;
}

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 associate-*r*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}{\left(\frac{1}{21} \cdot \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)\right) \cdot \left|x\right|}\right)\right|\]
  4. 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) + \left(\frac{1}{21} \cdot \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)\right) \cdot \left|x\right|\right)\right|\]

Reproduce

herbie shell --seed 2019174 
(FPCore (x)
  :name "Jmat.Real.erfi, branch x less than or equal to 0.5"
  (fabs (* (/ 1.0 (sqrt PI)) (+ (+ (+ (* 2.0 (fabs x)) (* (/ 2.0 3.0) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1.0 5.0) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1.0 21.0) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))))