Average Error: 0.2 → 0.2
Time: 1.9m
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(\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) + \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) \cdot \frac{1}{\sqrt{\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(\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) + \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) \cdot \frac{1}{\sqrt{\pi}}\right|
double f(double x) {
        double r25593005 = 1.0;
        double r25593006 = atan2(1.0, 0.0);
        double r25593007 = sqrt(r25593006);
        double r25593008 = r25593005 / r25593007;
        double r25593009 = 2.0;
        double r25593010 = x;
        double r25593011 = fabs(r25593010);
        double r25593012 = r25593009 * r25593011;
        double r25593013 = 3.0;
        double r25593014 = r25593009 / r25593013;
        double r25593015 = r25593011 * r25593011;
        double r25593016 = r25593015 * r25593011;
        double r25593017 = r25593014 * r25593016;
        double r25593018 = r25593012 + r25593017;
        double r25593019 = 5.0;
        double r25593020 = r25593005 / r25593019;
        double r25593021 = r25593016 * r25593011;
        double r25593022 = r25593021 * r25593011;
        double r25593023 = r25593020 * r25593022;
        double r25593024 = r25593018 + r25593023;
        double r25593025 = 21.0;
        double r25593026 = r25593005 / r25593025;
        double r25593027 = r25593022 * r25593011;
        double r25593028 = r25593027 * r25593011;
        double r25593029 = r25593026 * r25593028;
        double r25593030 = r25593024 + r25593029;
        double r25593031 = r25593008 * r25593030;
        double r25593032 = fabs(r25593031);
        return r25593032;
}

double f(double x) {
        double r25593033 = x;
        double r25593034 = fabs(r25593033);
        double r25593035 = 7.0;
        double r25593036 = pow(r25593034, r25593035);
        double r25593037 = 0.047619047619047616;
        double r25593038 = r25593036 * r25593037;
        double r25593039 = 0.2;
        double r25593040 = r25593034 * r25593034;
        double r25593041 = r25593040 * r25593034;
        double r25593042 = r25593041 * r25593034;
        double r25593043 = r25593034 * r25593042;
        double r25593044 = r25593039 * r25593043;
        double r25593045 = 2.0;
        double r25593046 = r25593034 * r25593045;
        double r25593047 = 0.6666666666666666;
        double r25593048 = r25593041 * r25593047;
        double r25593049 = r25593046 + r25593048;
        double r25593050 = r25593044 + r25593049;
        double r25593051 = r25593038 + r25593050;
        double r25593052 = 1.0;
        double r25593053 = atan2(1.0, 0.0);
        double r25593054 = sqrt(r25593053);
        double r25593055 = r25593052 / r25593054;
        double r25593056 = r25593051 * r25593055;
        double r25593057 = fabs(r25593056);
        return r25593057;
}

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|\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}{\frac{1}{21} \cdot {\left(\left|x\right|\right)}^{7}}\right)\right|\]
  3. Final simplification0.2

    \[\leadsto \left|\left({\left(\left|x\right|\right)}^{7} \cdot \frac{1}{21} + \left(\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) + \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) \cdot \frac{1}{\sqrt{\pi}}\right|\]

Reproduce

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