\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|1 \cdot \left(\frac{1 \cdot \left({\left(\left|x\right|\right)}^{6} \cdot \left(\left|x\right| \cdot \frac{1}{\sqrt{\pi}}\right)\right)}{21} + \frac{1}{\sqrt{\pi}} \cdot \mathsf{fma}\left(\left(\frac{1}{5} \cdot {\left(\left|x\right|\right)}^{3}\right) \cdot \left|x\right|, \left|x\right|, \mathsf{fma}\left(\left|x\right|, 2, {\left(\left|x\right|\right)}^{3} \cdot \frac{2}{3}\right)\right)\right)\right|double f(double x) {
double r142216 = 1.0;
double r142217 = atan2(1.0, 0.0);
double r142218 = sqrt(r142217);
double r142219 = r142216 / r142218;
double r142220 = 2.0;
double r142221 = x;
double r142222 = fabs(r142221);
double r142223 = r142220 * r142222;
double r142224 = 3.0;
double r142225 = r142220 / r142224;
double r142226 = r142222 * r142222;
double r142227 = r142226 * r142222;
double r142228 = r142225 * r142227;
double r142229 = r142223 + r142228;
double r142230 = 5.0;
double r142231 = r142216 / r142230;
double r142232 = r142227 * r142222;
double r142233 = r142232 * r142222;
double r142234 = r142231 * r142233;
double r142235 = r142229 + r142234;
double r142236 = 21.0;
double r142237 = r142216 / r142236;
double r142238 = r142233 * r142222;
double r142239 = r142238 * r142222;
double r142240 = r142237 * r142239;
double r142241 = r142235 + r142240;
double r142242 = r142219 * r142241;
double r142243 = fabs(r142242);
return r142243;
}
double f(double x) {
double r142244 = 1.0;
double r142245 = 1.0;
double r142246 = x;
double r142247 = fabs(r142246);
double r142248 = 6.0;
double r142249 = pow(r142247, r142248);
double r142250 = atan2(1.0, 0.0);
double r142251 = sqrt(r142250);
double r142252 = r142245 / r142251;
double r142253 = r142247 * r142252;
double r142254 = r142249 * r142253;
double r142255 = r142245 * r142254;
double r142256 = 21.0;
double r142257 = r142255 / r142256;
double r142258 = 5.0;
double r142259 = r142245 / r142258;
double r142260 = 3.0;
double r142261 = pow(r142247, r142260);
double r142262 = r142259 * r142261;
double r142263 = r142262 * r142247;
double r142264 = 2.0;
double r142265 = 3.0;
double r142266 = r142264 / r142265;
double r142267 = r142261 * r142266;
double r142268 = fma(r142247, r142264, r142267);
double r142269 = fma(r142263, r142247, r142268);
double r142270 = r142252 * r142269;
double r142271 = r142257 + r142270;
double r142272 = r142244 * r142271;
double r142273 = fabs(r142272);
return r142273;
}



Bits error versus x
Initial program 0.2
rmApplied *-un-lft-identity0.2
Applied *-un-lft-identity0.2
Applied times-frac0.2
Applied associate-*l*0.2
Simplified0.2
rmApplied fma-udef0.2
Applied distribute-lft-in0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020100 +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)))))))