\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(\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|double f(double x) {
double r167304 = 1.0;
double r167305 = atan2(1.0, 0.0);
double r167306 = sqrt(r167305);
double r167307 = r167304 / r167306;
double r167308 = 2.0;
double r167309 = x;
double r167310 = fabs(r167309);
double r167311 = r167308 * r167310;
double r167312 = 3.0;
double r167313 = r167308 / r167312;
double r167314 = r167310 * r167310;
double r167315 = r167314 * r167310;
double r167316 = r167313 * r167315;
double r167317 = r167311 + r167316;
double r167318 = 5.0;
double r167319 = r167304 / r167318;
double r167320 = r167315 * r167310;
double r167321 = r167320 * r167310;
double r167322 = r167319 * r167321;
double r167323 = r167317 + r167322;
double r167324 = 21.0;
double r167325 = r167304 / r167324;
double r167326 = r167321 * r167310;
double r167327 = r167326 * r167310;
double r167328 = r167325 * r167327;
double r167329 = r167323 + r167328;
double r167330 = r167307 * r167329;
double r167331 = fabs(r167330);
return r167331;
}
double f(double x) {
double r167332 = 1.0;
double r167333 = atan2(1.0, 0.0);
double r167334 = sqrt(r167333);
double r167335 = r167332 / r167334;
double r167336 = 2.0;
double r167337 = x;
double r167338 = fabs(r167337);
double r167339 = r167336 * r167338;
double r167340 = 3.0;
double r167341 = r167336 / r167340;
double r167342 = r167338 * r167338;
double r167343 = r167342 * r167338;
double r167344 = r167341 * r167343;
double r167345 = r167339 + r167344;
double r167346 = 5.0;
double r167347 = r167332 / r167346;
double r167348 = r167343 * r167338;
double r167349 = r167348 * r167338;
double r167350 = r167347 * r167349;
double r167351 = r167345 + r167350;
double r167352 = 21.0;
double r167353 = r167332 / r167352;
double r167354 = r167349 * r167338;
double r167355 = r167354 * r167338;
double r167356 = r167353 * r167355;
double r167357 = r167351 + r167356;
double r167358 = r167335 * r167357;
double r167359 = fabs(r167358);
return r167359;
}



Bits error versus x
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2020047
(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)))))))