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 r16172178 = 1.0;
        double r16172179 = atan2(1.0, 0.0);
        double r16172180 = sqrt(r16172179);
        double r16172181 = r16172178 / r16172180;
        double r16172182 = 2.0;
        double r16172183 = x;
        double r16172184 = fabs(r16172183);
        double r16172185 = r16172182 * r16172184;
        double r16172186 = 3.0;
        double r16172187 = r16172182 / r16172186;
        double r16172188 = r16172184 * r16172184;
        double r16172189 = r16172188 * r16172184;
        double r16172190 = r16172187 * r16172189;
        double r16172191 = r16172185 + r16172190;
        double r16172192 = 5.0;
        double r16172193 = r16172178 / r16172192;
        double r16172194 = r16172189 * r16172184;
        double r16172195 = r16172194 * r16172184;
        double r16172196 = r16172193 * r16172195;
        double r16172197 = r16172191 + r16172196;
        double r16172198 = 21.0;
        double r16172199 = r16172178 / r16172198;
        double r16172200 = r16172195 * r16172184;
        double r16172201 = r16172200 * r16172184;
        double r16172202 = r16172199 * r16172201;
        double r16172203 = r16172197 + r16172202;
        double r16172204 = r16172181 * r16172203;
        double r16172205 = fabs(r16172204);
        return r16172205;
}

double f(double x) {
        double r16172206 = x;
        double r16172207 = fabs(r16172206);
        double r16172208 = 7.0;
        double r16172209 = pow(r16172207, r16172208);
        double r16172210 = 0.047619047619047616;
        double r16172211 = r16172209 * r16172210;
        double r16172212 = 0.2;
        double r16172213 = r16172207 * r16172207;
        double r16172214 = r16172213 * r16172207;
        double r16172215 = r16172214 * r16172207;
        double r16172216 = r16172207 * r16172215;
        double r16172217 = r16172212 * r16172216;
        double r16172218 = 2.0;
        double r16172219 = r16172207 * r16172218;
        double r16172220 = 0.6666666666666666;
        double r16172221 = r16172214 * r16172220;
        double r16172222 = r16172219 + r16172221;
        double r16172223 = r16172217 + r16172222;
        double r16172224 = r16172211 + r16172223;
        double r16172225 = 1.0;
        double r16172226 = atan2(1.0, 0.0);
        double r16172227 = sqrt(r16172226);
        double r16172228 = r16172225 / r16172227;
        double r16172229 = r16172224 * r16172228;
        double r16172230 = fabs(r16172229);
        return r16172230;
}

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 inf 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 2019112 +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)))))))