\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(\frac{6004799503160661}{9007199254740992} \cdot {\left(\left|x\right|\right)}^{3}\right) + \sqrt{\frac{1}{\pi}} \cdot \left(\frac{3602879701896397}{18014398509481984} \cdot {\left(\left|x\right|\right)}^{5} + \left(2 \cdot \left|x\right| + \frac{857828500451523}{18014398509481984} \cdot {\left(\left|x\right|\right)}^{7}\right)\right)\right)\right|double f(double x) {
double r125331 = 1.0;
double r125332 = atan2(1.0, 0.0);
double r125333 = sqrt(r125332);
double r125334 = r125331 / r125333;
double r125335 = 2.0;
double r125336 = x;
double r125337 = fabs(r125336);
double r125338 = r125335 * r125337;
double r125339 = 3.0;
double r125340 = r125335 / r125339;
double r125341 = r125337 * r125337;
double r125342 = r125341 * r125337;
double r125343 = r125340 * r125342;
double r125344 = r125338 + r125343;
double r125345 = 5.0;
double r125346 = r125331 / r125345;
double r125347 = r125342 * r125337;
double r125348 = r125347 * r125337;
double r125349 = r125346 * r125348;
double r125350 = r125344 + r125349;
double r125351 = 21.0;
double r125352 = r125331 / r125351;
double r125353 = r125348 * r125337;
double r125354 = r125353 * r125337;
double r125355 = r125352 * r125354;
double r125356 = r125350 + r125355;
double r125357 = r125334 * r125356;
double r125358 = fabs(r125357);
return r125358;
}
double f(double x) {
double r125359 = 1.0;
double r125360 = 1.0;
double r125361 = atan2(1.0, 0.0);
double r125362 = r125360 / r125361;
double r125363 = sqrt(r125362);
double r125364 = 6004799503160661.0;
double r125365 = 9007199254740992.0;
double r125366 = r125364 / r125365;
double r125367 = x;
double r125368 = fabs(r125367);
double r125369 = 3.0;
double r125370 = pow(r125368, r125369);
double r125371 = r125366 * r125370;
double r125372 = r125363 * r125371;
double r125373 = 3602879701896397.0;
double r125374 = 18014398509481984.0;
double r125375 = r125373 / r125374;
double r125376 = 5.0;
double r125377 = pow(r125368, r125376);
double r125378 = r125375 * r125377;
double r125379 = 2.0;
double r125380 = r125379 * r125368;
double r125381 = 857828500451523.0;
double r125382 = r125381 / r125374;
double r125383 = 7.0;
double r125384 = pow(r125368, r125383);
double r125385 = r125382 * r125384;
double r125386 = r125380 + r125385;
double r125387 = r125378 + r125386;
double r125388 = r125363 * r125387;
double r125389 = r125372 + r125388;
double r125390 = r125359 * r125389;
double r125391 = fabs(r125390);
return r125391;
}



Bits error versus x
Results
Initial program 0.2
Taylor expanded around 0 0.2
Simplified0.2
rmApplied distribute-lft-in0.2
Final simplification0.2
herbie shell --seed 2019303
(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)))))))