double f(double x) {
double r19409338 = 1.0;
double r19409339 = atan2(1.0, 0.0);
double r19409340 = sqrt(r19409339);
double r19409341 = r19409338 / r19409340;
double r19409342 = 2.0;
double r19409343 = x;
double r19409344 = fabs(r19409343);
double r19409345 = r19409342 * r19409344;
double r19409346 = 3.0;
double r19409347 = r19409342 / r19409346;
double r19409348 = r19409344 * r19409344;
double r19409349 = r19409348 * r19409344;
double r19409350 = r19409347 * r19409349;
double r19409351 = r19409345 + r19409350;
double r19409352 = 5.0;
double r19409353 = r19409338 / r19409352;
double r19409354 = r19409349 * r19409344;
double r19409355 = r19409354 * r19409344;
double r19409356 = r19409353 * r19409355;
double r19409357 = r19409351 + r19409356;
double r19409358 = 21.0;
double r19409359 = r19409338 / r19409358;
double r19409360 = r19409355 * r19409344;
double r19409361 = r19409360 * r19409344;
double r19409362 = r19409359 * r19409361;
double r19409363 = r19409357 + r19409362;
double r19409364 = r19409341 * r19409363;
double r19409365 = fabs(r19409364);
return r19409365;
}
double f(double x) {
double r19409366 = 1.0;
double r19409367 = atan2(1.0, 0.0);
double r19409368 = sqrt(r19409367);
double r19409369 = r19409366 / r19409368;
double r19409370 = x;
double r19409371 = fabs(r19409370);
double r19409372 = r19409371 * r19409371;
double r19409373 = 0.047619047619047616;
double r19409374 = 4.0;
double r19409375 = pow(r19409371, r19409374);
double r19409376 = r19409373 * r19409375;
double r19409377 = 0.2;
double r19409378 = r19409377 * r19409372;
double r19409379 = r19409376 + r19409378;
double r19409380 = r19409372 * r19409379;
double r19409381 = 0.6666666666666666;
double r19409382 = 2.0;
double r19409383 = fma(r19409381, r19409372, r19409382);
double r19409384 = r19409380 + r19409383;
double r19409385 = r19409371 * r19409384;
double r19409386 = r19409369 * r19409385;
double r19409387 = fabs(r19409386);
return r19409387;
}
\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|x\right| \cdot \left(\left(\left|x\right| \cdot \left|x\right|\right) \cdot \left(\frac{1}{21} \cdot {\left(\left|x\right|\right)}^{4} + \frac{1}{5} \cdot \left(\left|x\right| \cdot \left|x\right|\right)\right) + (\frac{2}{3} \cdot \left(\left|x\right| \cdot \left|x\right|\right) + 2)_*\right)\right)\right|


Bits error versus x
Initial program 0.2
rmApplied *-un-lft-identity0.2
Applied associate-*r*0.2
Simplified0.2
rmApplied pow10.2
Applied pow10.2
Applied pow-sqr0.2
Applied pow10.2
Applied pow10.2
Applied pow-sqr0.2
Applied pow-sqr0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019102 +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)))))))