Average Error: 0.2 → 0.2
Time: 11.5s
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|1 \cdot \left(\sqrt{\frac{1}{\pi}} \cdot \left(0.6666666666666666296592325124947819858789 \cdot {\left(\left|x\right|\right)}^{3} + \left(0.2000000000000000111022302462515654042363 \cdot {\left(\left|x\right|\right)}^{5} + \left(2 \cdot \left|x\right| + 0.04761904761904761640423089374962728470564 \cdot {\left(\left|x\right|\right)}^{7}\right)\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|1 \cdot \left(\sqrt{\frac{1}{\pi}} \cdot \left(0.6666666666666666296592325124947819858789 \cdot {\left(\left|x\right|\right)}^{3} + \left(0.2000000000000000111022302462515654042363 \cdot {\left(\left|x\right|\right)}^{5} + \left(2 \cdot \left|x\right| + 0.04761904761904761640423089374962728470564 \cdot {\left(\left|x\right|\right)}^{7}\right)\right)\right)\right)\right|
double f(double x) {
        double r143278 = 1.0;
        double r143279 = atan2(1.0, 0.0);
        double r143280 = sqrt(r143279);
        double r143281 = r143278 / r143280;
        double r143282 = 2.0;
        double r143283 = x;
        double r143284 = fabs(r143283);
        double r143285 = r143282 * r143284;
        double r143286 = 3.0;
        double r143287 = r143282 / r143286;
        double r143288 = r143284 * r143284;
        double r143289 = r143288 * r143284;
        double r143290 = r143287 * r143289;
        double r143291 = r143285 + r143290;
        double r143292 = 5.0;
        double r143293 = r143278 / r143292;
        double r143294 = r143289 * r143284;
        double r143295 = r143294 * r143284;
        double r143296 = r143293 * r143295;
        double r143297 = r143291 + r143296;
        double r143298 = 21.0;
        double r143299 = r143278 / r143298;
        double r143300 = r143295 * r143284;
        double r143301 = r143300 * r143284;
        double r143302 = r143299 * r143301;
        double r143303 = r143297 + r143302;
        double r143304 = r143281 * r143303;
        double r143305 = fabs(r143304);
        return r143305;
}

double f(double x) {
        double r143306 = 1.0;
        double r143307 = 1.0;
        double r143308 = atan2(1.0, 0.0);
        double r143309 = r143307 / r143308;
        double r143310 = sqrt(r143309);
        double r143311 = 0.6666666666666666;
        double r143312 = x;
        double r143313 = fabs(r143312);
        double r143314 = 3.0;
        double r143315 = pow(r143313, r143314);
        double r143316 = r143311 * r143315;
        double r143317 = 0.2;
        double r143318 = 5.0;
        double r143319 = pow(r143313, r143318);
        double r143320 = r143317 * r143319;
        double r143321 = 2.0;
        double r143322 = r143321 * r143313;
        double r143323 = 0.047619047619047616;
        double r143324 = 7.0;
        double r143325 = pow(r143313, r143324);
        double r143326 = r143323 * r143325;
        double r143327 = r143322 + r143326;
        double r143328 = r143320 + r143327;
        double r143329 = r143316 + r143328;
        double r143330 = r143310 * r143329;
        double r143331 = r143306 * r143330;
        double r143332 = fabs(r143331);
        return r143332;
}

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|\color{blue}{1 \cdot \left(\sqrt{\frac{1}{\pi}} \cdot \left(0.6666666666666666296592325124947819858789 \cdot {\left(\left|x\right|\right)}^{3} + \left(0.2000000000000000111022302462515654042363 \cdot {\left(\left|x\right|\right)}^{5} + \left(2 \cdot \left|x\right| + 0.04761904761904761640423089374962728470564 \cdot {\left(\left|x\right|\right)}^{7}\right)\right)\right)\right)}\right|\]
  3. Final simplification0.2

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

Reproduce

herbie shell --seed 2019322 
(FPCore (x)
  :name "Jmat.Real.erfi, branch x less than or equal to 0.5"
  :precision binary64
  (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)))))))