\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 \cdot \left({\left(\left|x\right|\right)}^{6} \cdot \left(\frac{1}{21} \cdot \left|x\right|\right)\right)}{\sqrt{\pi}} + \frac{1}{\sqrt{\pi}} \cdot \mathsf{fma}\left(\left|x\right|, 2, \mathsf{fma}\left(\frac{2}{3}, {\left(\left|x\right|\right)}^{3}, {\left(\left|x\right|\right)}^{4} \cdot \left(\frac{1}{5} \cdot \left|x\right|\right)\right)\right)\right|double f(double x) {
double r102289 = 1.0;
double r102290 = atan2(1.0, 0.0);
double r102291 = sqrt(r102290);
double r102292 = r102289 / r102291;
double r102293 = 2.0;
double r102294 = x;
double r102295 = fabs(r102294);
double r102296 = r102293 * r102295;
double r102297 = 3.0;
double r102298 = r102293 / r102297;
double r102299 = r102295 * r102295;
double r102300 = r102299 * r102295;
double r102301 = r102298 * r102300;
double r102302 = r102296 + r102301;
double r102303 = 5.0;
double r102304 = r102289 / r102303;
double r102305 = r102300 * r102295;
double r102306 = r102305 * r102295;
double r102307 = r102304 * r102306;
double r102308 = r102302 + r102307;
double r102309 = 21.0;
double r102310 = r102289 / r102309;
double r102311 = r102306 * r102295;
double r102312 = r102311 * r102295;
double r102313 = r102310 * r102312;
double r102314 = r102308 + r102313;
double r102315 = r102292 * r102314;
double r102316 = fabs(r102315);
return r102316;
}
double f(double x) {
double r102317 = 1.0;
double r102318 = x;
double r102319 = fabs(r102318);
double r102320 = 6.0;
double r102321 = pow(r102319, r102320);
double r102322 = 21.0;
double r102323 = r102317 / r102322;
double r102324 = r102323 * r102319;
double r102325 = r102321 * r102324;
double r102326 = r102317 * r102325;
double r102327 = atan2(1.0, 0.0);
double r102328 = sqrt(r102327);
double r102329 = r102326 / r102328;
double r102330 = r102317 / r102328;
double r102331 = 2.0;
double r102332 = 3.0;
double r102333 = r102331 / r102332;
double r102334 = 3.0;
double r102335 = pow(r102319, r102334);
double r102336 = 4.0;
double r102337 = pow(r102319, r102336);
double r102338 = 5.0;
double r102339 = r102317 / r102338;
double r102340 = r102339 * r102319;
double r102341 = r102337 * r102340;
double r102342 = fma(r102333, r102335, r102341);
double r102343 = fma(r102319, r102331, r102342);
double r102344 = r102330 * r102343;
double r102345 = r102329 + r102344;
double r102346 = fabs(r102345);
return r102346;
}



Bits error versus x
Initial program 0.2
rmApplied distribute-rgt-in0.2
Simplified0.2
Simplified0.1
Final simplification0.1
herbie shell --seed 2019208 +o rules:numerics
(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)))))))