Average Error: 0.2 → 0.2
Time: 1.6m
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(\frac{1}{21} \cdot {\left(\left|x\right|\right)}^{7} + \left(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{5} + \left(\left(\frac{2}{3} \cdot \left|x\right|\right) \cdot \left|x\right| + 2\right) \cdot \left|x\right|\right)\right) \cdot \sqrt{\frac{1}{\pi}}\right|\]
double f(double x) {
        double r13758154 = 1.0;
        double r13758155 = atan2(1.0, 0.0);
        double r13758156 = sqrt(r13758155);
        double r13758157 = r13758154 / r13758156;
        double r13758158 = 2.0;
        double r13758159 = x;
        double r13758160 = fabs(r13758159);
        double r13758161 = r13758158 * r13758160;
        double r13758162 = 3.0;
        double r13758163 = r13758158 / r13758162;
        double r13758164 = r13758160 * r13758160;
        double r13758165 = r13758164 * r13758160;
        double r13758166 = r13758163 * r13758165;
        double r13758167 = r13758161 + r13758166;
        double r13758168 = 5.0;
        double r13758169 = r13758154 / r13758168;
        double r13758170 = r13758165 * r13758160;
        double r13758171 = r13758170 * r13758160;
        double r13758172 = r13758169 * r13758171;
        double r13758173 = r13758167 + r13758172;
        double r13758174 = 21.0;
        double r13758175 = r13758154 / r13758174;
        double r13758176 = r13758171 * r13758160;
        double r13758177 = r13758176 * r13758160;
        double r13758178 = r13758175 * r13758177;
        double r13758179 = r13758173 + r13758178;
        double r13758180 = r13758157 * r13758179;
        double r13758181 = fabs(r13758180);
        return r13758181;
}

double f(double x) {
        double r13758182 = 0.047619047619047616;
        double r13758183 = x;
        double r13758184 = fabs(r13758183);
        double r13758185 = 7.0;
        double r13758186 = pow(r13758184, r13758185);
        double r13758187 = r13758182 * r13758186;
        double r13758188 = 0.2;
        double r13758189 = 5.0;
        double r13758190 = pow(r13758184, r13758189);
        double r13758191 = r13758188 * r13758190;
        double r13758192 = 0.6666666666666666;
        double r13758193 = r13758192 * r13758184;
        double r13758194 = r13758193 * r13758184;
        double r13758195 = 2.0;
        double r13758196 = r13758194 + r13758195;
        double r13758197 = r13758196 * r13758184;
        double r13758198 = r13758191 + r13758197;
        double r13758199 = r13758187 + r13758198;
        double r13758200 = 1.0;
        double r13758201 = atan2(1.0, 0.0);
        double r13758202 = r13758200 / r13758201;
        double r13758203 = sqrt(r13758202);
        double r13758204 = r13758199 * r13758203;
        double r13758205 = fabs(r13758204);
        return r13758205;
}

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

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

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

Reproduce

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