Average Error: 0.2 → 0.2
Time: 29.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|\mathsf{fma}\left(\frac{1}{5}, {\left(\left|x\right|\right)}^{5}, \mathsf{fma}\left({\left(\left|x\right|\right)}^{7}, \frac{1}{21}, \mathsf{fma}\left(\left|x\right| \cdot \left|x\right|, \frac{2}{3}, 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|\mathsf{fma}\left(\frac{1}{5}, {\left(\left|x\right|\right)}^{5}, \mathsf{fma}\left({\left(\left|x\right|\right)}^{7}, \frac{1}{21}, \mathsf{fma}\left(\left|x\right| \cdot \left|x\right|, \frac{2}{3}, 2\right) \cdot \left|x\right|\right)\right) \cdot \sqrt{\frac{1}{\pi}}\right|
double f(double x) {
        double r6068749 = 1.0;
        double r6068750 = atan2(1.0, 0.0);
        double r6068751 = sqrt(r6068750);
        double r6068752 = r6068749 / r6068751;
        double r6068753 = 2.0;
        double r6068754 = x;
        double r6068755 = fabs(r6068754);
        double r6068756 = r6068753 * r6068755;
        double r6068757 = 3.0;
        double r6068758 = r6068753 / r6068757;
        double r6068759 = r6068755 * r6068755;
        double r6068760 = r6068759 * r6068755;
        double r6068761 = r6068758 * r6068760;
        double r6068762 = r6068756 + r6068761;
        double r6068763 = 5.0;
        double r6068764 = r6068749 / r6068763;
        double r6068765 = r6068760 * r6068755;
        double r6068766 = r6068765 * r6068755;
        double r6068767 = r6068764 * r6068766;
        double r6068768 = r6068762 + r6068767;
        double r6068769 = 21.0;
        double r6068770 = r6068749 / r6068769;
        double r6068771 = r6068766 * r6068755;
        double r6068772 = r6068771 * r6068755;
        double r6068773 = r6068770 * r6068772;
        double r6068774 = r6068768 + r6068773;
        double r6068775 = r6068752 * r6068774;
        double r6068776 = fabs(r6068775);
        return r6068776;
}

double f(double x) {
        double r6068777 = 0.2;
        double r6068778 = x;
        double r6068779 = fabs(r6068778);
        double r6068780 = 5.0;
        double r6068781 = pow(r6068779, r6068780);
        double r6068782 = 7.0;
        double r6068783 = pow(r6068779, r6068782);
        double r6068784 = 0.047619047619047616;
        double r6068785 = r6068779 * r6068779;
        double r6068786 = 0.6666666666666666;
        double r6068787 = 2.0;
        double r6068788 = fma(r6068785, r6068786, r6068787);
        double r6068789 = r6068788 * r6068779;
        double r6068790 = fma(r6068783, r6068784, r6068789);
        double r6068791 = fma(r6068777, r6068781, r6068790);
        double r6068792 = 1.0;
        double r6068793 = atan2(1.0, 0.0);
        double r6068794 = r6068792 / r6068793;
        double r6068795 = sqrt(r6068794);
        double r6068796 = r6068791 * r6068795;
        double r6068797 = fabs(r6068796);
        return r6068797;
}

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

    \[\leadsto \color{blue}{\left|\frac{\mathsf{fma}\left(\left|x\right|, \mathsf{fma}\left(\left|x\right| \cdot \left|x\right|, \frac{2}{3}, 2\right), \mathsf{fma}\left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left(\left|x\right| \cdot \left|x\right|\right), \left(\left|x\right| \cdot \left|x\right|\right) \cdot \frac{1}{21}, \frac{\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left(\left|x\right| \cdot \left|x\right|\right)}{5}\right)\right)}{\sqrt{\pi}}\right|}\]
  3. 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|\]
  4. Simplified0.2

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

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

Reproduce

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