\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) + 1 \cdot \left(\left(\frac{1}{21} \cdot {\left(\left|x\right|\right)}^{6}\right) \cdot \left|x\right|\right)\right)\right|double f(double x) {
double r149376 = 1.0;
double r149377 = atan2(1.0, 0.0);
double r149378 = sqrt(r149377);
double r149379 = r149376 / r149378;
double r149380 = 2.0;
double r149381 = x;
double r149382 = fabs(r149381);
double r149383 = r149380 * r149382;
double r149384 = 3.0;
double r149385 = r149380 / r149384;
double r149386 = r149382 * r149382;
double r149387 = r149386 * r149382;
double r149388 = r149385 * r149387;
double r149389 = r149383 + r149388;
double r149390 = 5.0;
double r149391 = r149376 / r149390;
double r149392 = r149387 * r149382;
double r149393 = r149392 * r149382;
double r149394 = r149391 * r149393;
double r149395 = r149389 + r149394;
double r149396 = 21.0;
double r149397 = r149376 / r149396;
double r149398 = r149393 * r149382;
double r149399 = r149398 * r149382;
double r149400 = r149397 * r149399;
double r149401 = r149395 + r149400;
double r149402 = r149379 * r149401;
double r149403 = fabs(r149402);
return r149403;
}
double f(double x) {
double r149404 = 1.0;
double r149405 = atan2(1.0, 0.0);
double r149406 = sqrt(r149405);
double r149407 = r149404 / r149406;
double r149408 = 2.0;
double r149409 = x;
double r149410 = fabs(r149409);
double r149411 = r149408 * r149410;
double r149412 = 3.0;
double r149413 = r149408 / r149412;
double r149414 = r149410 * r149410;
double r149415 = r149414 * r149410;
double r149416 = r149413 * r149415;
double r149417 = r149411 + r149416;
double r149418 = 5.0;
double r149419 = r149404 / r149418;
double r149420 = r149415 * r149410;
double r149421 = r149420 * r149410;
double r149422 = r149419 * r149421;
double r149423 = r149417 + r149422;
double r149424 = 1.0;
double r149425 = 21.0;
double r149426 = r149424 / r149425;
double r149427 = 6.0;
double r149428 = pow(r149410, r149427);
double r149429 = r149426 * r149428;
double r149430 = r149429 * r149410;
double r149431 = r149404 * r149430;
double r149432 = r149423 + r149431;
double r149433 = r149407 * r149432;
double r149434 = fabs(r149433);
return r149434;
}



Bits error versus x
Results
Initial program 0.2
rmApplied div-inv0.2
Applied associate-*l*0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020062
(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)))))))