1 - \left(\frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(0.254829592 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-0.284496736 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(1.421413741 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot \left(-1.453152027 + \frac{1}{1 + 0.3275911 \cdot \left|x\right|} \cdot 1.061405429\right)\right)\right)\right)\right) \cdot e^{-\left|x\right| \cdot \left|x\right|}\left(\sqrt[3]{1 - \left(\frac{1}{1 + \left|x\right| \cdot 0.3275911} \cdot \left(0.254829592 + \left(\sqrt{\frac{1}{1 - \left(\left|x\right| \cdot 0.3275911\right) \cdot \left(\left|x\right| \cdot 0.3275911\right)} \cdot \left(\left(1 - \left|x\right| \cdot 0.3275911\right) \cdot \left(1.421413741 + \left(\frac{1}{1 + \left|x\right| \cdot 0.3275911} \cdot 1.061405429 + -1.453152027\right) \cdot \frac{1}{1 + \left|x\right| \cdot 0.3275911}\right)\right)} \cdot \sqrt{\frac{1}{1 - \left(\left|x\right| \cdot 0.3275911\right) \cdot \left(\left|x\right| \cdot 0.3275911\right)} \cdot \left(\left(1 - \left|x\right| \cdot 0.3275911\right) \cdot \left(1.421413741 + \left(\frac{1}{1 + \left|x\right| \cdot 0.3275911} \cdot 1.061405429 + -1.453152027\right) \cdot \frac{1}{1 + \left|x\right| \cdot 0.3275911}\right)\right)} + -0.284496736\right) \cdot \frac{1}{1 + \left|x\right| \cdot 0.3275911}\right)\right) \cdot e^{\left|x\right| \cdot \left(-\left|x\right|\right)}} \cdot \sqrt[3]{1 - e^{\left|x\right| \cdot \left(-\left|x\right|\right)} \cdot \left(\frac{1}{1 + \left|x\right| \cdot 0.3275911} \cdot \left(0.254829592 + \left(-0.284496736 + \frac{1}{1 - \left(\left|x\right| \cdot 0.3275911\right) \cdot \left(\left|x\right| \cdot 0.3275911\right)} \cdot \left(\left(1 - \left|x\right| \cdot 0.3275911\right) \cdot \left(1.421413741 + \left(\frac{1}{1 + \left|x\right| \cdot 0.3275911} \cdot 1.061405429 + -1.453152027\right) \cdot \frac{1}{1 + \left|x\right| \cdot 0.3275911}\right)\right)\right) \cdot \frac{1}{1 + \left|x\right| \cdot 0.3275911}\right)\right)}\right) \cdot \sqrt[3]{1 - e^{\left|x\right| \cdot \left(-\left|x\right|\right)} \cdot \left(\frac{1}{1 + \left|x\right| \cdot 0.3275911} \cdot \left(0.254829592 + \left(-0.284496736 + \frac{1}{1 - \left(\left|x\right| \cdot 0.3275911\right) \cdot \left(\left|x\right| \cdot 0.3275911\right)} \cdot \left(\left(1 - \left|x\right| \cdot 0.3275911\right) \cdot \left(1.421413741 + \left(\frac{1}{1 + \left|x\right| \cdot 0.3275911} \cdot 1.061405429 + -1.453152027\right) \cdot \frac{1}{1 + \left|x\right| \cdot 0.3275911}\right)\right)\right) \cdot \frac{1}{1 + \left|x\right| \cdot 0.3275911}\right)\right)}double f(double x) {
double r3852303 = 1.0;
double r3852304 = 0.3275911;
double r3852305 = x;
double r3852306 = fabs(r3852305);
double r3852307 = r3852304 * r3852306;
double r3852308 = r3852303 + r3852307;
double r3852309 = r3852303 / r3852308;
double r3852310 = 0.254829592;
double r3852311 = -0.284496736;
double r3852312 = 1.421413741;
double r3852313 = -1.453152027;
double r3852314 = 1.061405429;
double r3852315 = r3852309 * r3852314;
double r3852316 = r3852313 + r3852315;
double r3852317 = r3852309 * r3852316;
double r3852318 = r3852312 + r3852317;
double r3852319 = r3852309 * r3852318;
double r3852320 = r3852311 + r3852319;
double r3852321 = r3852309 * r3852320;
double r3852322 = r3852310 + r3852321;
double r3852323 = r3852309 * r3852322;
double r3852324 = r3852306 * r3852306;
double r3852325 = -r3852324;
double r3852326 = exp(r3852325);
double r3852327 = r3852323 * r3852326;
double r3852328 = r3852303 - r3852327;
return r3852328;
}
double f(double x) {
double r3852329 = 1.0;
double r3852330 = x;
double r3852331 = fabs(r3852330);
double r3852332 = 0.3275911;
double r3852333 = r3852331 * r3852332;
double r3852334 = r3852329 + r3852333;
double r3852335 = r3852329 / r3852334;
double r3852336 = 0.254829592;
double r3852337 = r3852333 * r3852333;
double r3852338 = r3852329 - r3852337;
double r3852339 = r3852329 / r3852338;
double r3852340 = r3852329 - r3852333;
double r3852341 = 1.421413741;
double r3852342 = 1.061405429;
double r3852343 = r3852335 * r3852342;
double r3852344 = -1.453152027;
double r3852345 = r3852343 + r3852344;
double r3852346 = r3852345 * r3852335;
double r3852347 = r3852341 + r3852346;
double r3852348 = r3852340 * r3852347;
double r3852349 = r3852339 * r3852348;
double r3852350 = sqrt(r3852349);
double r3852351 = r3852350 * r3852350;
double r3852352 = -0.284496736;
double r3852353 = r3852351 + r3852352;
double r3852354 = r3852353 * r3852335;
double r3852355 = r3852336 + r3852354;
double r3852356 = r3852335 * r3852355;
double r3852357 = -r3852331;
double r3852358 = r3852331 * r3852357;
double r3852359 = exp(r3852358);
double r3852360 = r3852356 * r3852359;
double r3852361 = r3852329 - r3852360;
double r3852362 = cbrt(r3852361);
double r3852363 = r3852352 + r3852349;
double r3852364 = r3852363 * r3852335;
double r3852365 = r3852336 + r3852364;
double r3852366 = r3852335 * r3852365;
double r3852367 = r3852359 * r3852366;
double r3852368 = r3852329 - r3852367;
double r3852369 = cbrt(r3852368);
double r3852370 = r3852362 * r3852369;
double r3852371 = r3852370 * r3852369;
return r3852371;
}



Bits error versus x
Results
Initial program 13.7
rmApplied flip-+13.6
Applied associate-/r/13.6
Applied associate-*l*13.6
rmApplied add-cube-cbrt13.6
rmApplied add-sqr-sqrt12.9
Final simplification12.9
herbie shell --seed 2019153
(FPCore (x)
:name "Jmat.Real.erf"
(- 1 (* (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ 0.254829592 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ -0.284496736 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ 1.421413741 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) (+ -1.453152027 (* (/ 1 (+ 1 (* 0.3275911 (fabs x)))) 1.061405429))))))))) (exp (- (* (fabs x) (fabs x)))))))