\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|\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|x\right|\right)}^{3} \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right) \cdot \left|x\right|\right)\right)\right|double f(double x) {
double r159325 = 1.0;
double r159326 = atan2(1.0, 0.0);
double r159327 = sqrt(r159326);
double r159328 = r159325 / r159327;
double r159329 = 2.0;
double r159330 = x;
double r159331 = fabs(r159330);
double r159332 = r159329 * r159331;
double r159333 = 3.0;
double r159334 = r159329 / r159333;
double r159335 = r159331 * r159331;
double r159336 = r159335 * r159331;
double r159337 = r159334 * r159336;
double r159338 = r159332 + r159337;
double r159339 = 5.0;
double r159340 = r159325 / r159339;
double r159341 = r159336 * r159331;
double r159342 = r159341 * r159331;
double r159343 = r159340 * r159342;
double r159344 = r159338 + r159343;
double r159345 = 21.0;
double r159346 = r159325 / r159345;
double r159347 = r159342 * r159331;
double r159348 = r159347 * r159331;
double r159349 = r159346 * r159348;
double r159350 = r159344 + r159349;
double r159351 = r159328 * r159350;
double r159352 = fabs(r159351);
return r159352;
}
double f(double x) {
double r159353 = 1.0;
double r159354 = atan2(1.0, 0.0);
double r159355 = sqrt(r159354);
double r159356 = r159353 / r159355;
double r159357 = 2.0;
double r159358 = x;
double r159359 = fabs(r159358);
double r159360 = r159357 * r159359;
double r159361 = 3.0;
double r159362 = r159357 / r159361;
double r159363 = r159359 * r159359;
double r159364 = r159363 * r159359;
double r159365 = r159362 * r159364;
double r159366 = r159360 + r159365;
double r159367 = 5.0;
double r159368 = r159353 / r159367;
double r159369 = r159364 * r159359;
double r159370 = r159369 * r159359;
double r159371 = r159368 * r159370;
double r159372 = r159366 + r159371;
double r159373 = 21.0;
double r159374 = r159353 / r159373;
double r159375 = 3.0;
double r159376 = pow(r159359, r159375);
double r159377 = r159376 * r159359;
double r159378 = r159377 * r159359;
double r159379 = r159378 * r159359;
double r159380 = r159379 * r159359;
double r159381 = r159374 * r159380;
double r159382 = r159372 + r159381;
double r159383 = r159356 * r159382;
double r159384 = fabs(r159383);
return r159384;
}



Bits error versus x
Results
Initial program 0.2
rmApplied pow10.2
Applied pow10.2
Applied pow10.2
Applied pow-prod-up0.2
Applied pow-prod-up0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019351
(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)))))))