Average Error: 0.2 → 0.2
Time: 1.0m
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|x\right| \cdot \left(\left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) \cdot \left|x\right|\right)\right) \cdot \frac{1}{21} + \left(\sqrt{\frac{1}{5}} \cdot \left(\sqrt{\frac{1}{5}} \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right) + \left(\left|x\right| \cdot 2 + \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \frac{2}{3}\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) + \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|x\right| \cdot \left(\left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right) \cdot \left|x\right|\right)\right) \cdot \frac{1}{21} + \left(\sqrt{\frac{1}{5}} \cdot \left(\sqrt{\frac{1}{5}} \cdot \left(\left|x\right| \cdot \left(\left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right) + \left(\left|x\right| \cdot 2 + \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \frac{2}{3}\right)\right)\right)\right|
double f(double x) {
        double r7226992 = 1.0;
        double r7226993 = atan2(1.0, 0.0);
        double r7226994 = sqrt(r7226993);
        double r7226995 = r7226992 / r7226994;
        double r7226996 = 2.0;
        double r7226997 = x;
        double r7226998 = fabs(r7226997);
        double r7226999 = r7226996 * r7226998;
        double r7227000 = 3.0;
        double r7227001 = r7226996 / r7227000;
        double r7227002 = r7226998 * r7226998;
        double r7227003 = r7227002 * r7226998;
        double r7227004 = r7227001 * r7227003;
        double r7227005 = r7226999 + r7227004;
        double r7227006 = 5.0;
        double r7227007 = r7226992 / r7227006;
        double r7227008 = r7227003 * r7226998;
        double r7227009 = r7227008 * r7226998;
        double r7227010 = r7227007 * r7227009;
        double r7227011 = r7227005 + r7227010;
        double r7227012 = 21.0;
        double r7227013 = r7226992 / r7227012;
        double r7227014 = r7227009 * r7226998;
        double r7227015 = r7227014 * r7226998;
        double r7227016 = r7227013 * r7227015;
        double r7227017 = r7227011 + r7227016;
        double r7227018 = r7226995 * r7227017;
        double r7227019 = fabs(r7227018);
        return r7227019;
}

double f(double x) {
        double r7227020 = 1.0;
        double r7227021 = atan2(1.0, 0.0);
        double r7227022 = sqrt(r7227021);
        double r7227023 = r7227020 / r7227022;
        double r7227024 = x;
        double r7227025 = fabs(r7227024);
        double r7227026 = r7227025 * r7227025;
        double r7227027 = r7227026 * r7227025;
        double r7227028 = r7227027 * r7227025;
        double r7227029 = r7227025 * r7227028;
        double r7227030 = r7227029 * r7227025;
        double r7227031 = r7227025 * r7227030;
        double r7227032 = 0.047619047619047616;
        double r7227033 = r7227031 * r7227032;
        double r7227034 = 0.2;
        double r7227035 = sqrt(r7227034);
        double r7227036 = r7227035 * r7227029;
        double r7227037 = r7227035 * r7227036;
        double r7227038 = 2.0;
        double r7227039 = r7227025 * r7227038;
        double r7227040 = 0.6666666666666666;
        double r7227041 = r7227027 * r7227040;
        double r7227042 = r7227039 + r7227041;
        double r7227043 = r7227037 + r7227042;
        double r7227044 = r7227033 + r7227043;
        double r7227045 = r7227023 * r7227044;
        double r7227046 = fabs(r7227045);
        return r7227046;
}

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 add-sqr-sqrt0.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) + \color{blue}{\left(\sqrt{\frac{1}{5}} \cdot \sqrt{\frac{1}{5}}\right)} \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|\]
  4. Applied associate-*l*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) + \color{blue}{\sqrt{\frac{1}{5}} \cdot \left(\sqrt{\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)}\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|\]
  5. Final simplification0.2

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

Reproduce

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