\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|\sqrt{\frac{1}{\pi}} \cdot \left(\mathsf{fma}\left(0.6666666666666666296592325124947819858789, \left(\left|x\right| \cdot \left|x\right|\right) \cdot \left|x\right|, \mathsf{fma}\left({\left(\left|x\right|\right)}^{5}, 0.2000000000000000111022302462515654042363, \mathsf{fma}\left(0.04761904761904761640423089374962728470564, {\left(\left|x\right|\right)}^{7}, \left|x\right| \cdot 2\right)\right)\right) \cdot 1\right)\right|double f(double x) {
double r5673206 = 1.0;
double r5673207 = atan2(1.0, 0.0);
double r5673208 = sqrt(r5673207);
double r5673209 = r5673206 / r5673208;
double r5673210 = 2.0;
double r5673211 = x;
double r5673212 = fabs(r5673211);
double r5673213 = r5673210 * r5673212;
double r5673214 = 3.0;
double r5673215 = r5673210 / r5673214;
double r5673216 = r5673212 * r5673212;
double r5673217 = r5673216 * r5673212;
double r5673218 = r5673215 * r5673217;
double r5673219 = r5673213 + r5673218;
double r5673220 = 5.0;
double r5673221 = r5673206 / r5673220;
double r5673222 = r5673217 * r5673212;
double r5673223 = r5673222 * r5673212;
double r5673224 = r5673221 * r5673223;
double r5673225 = r5673219 + r5673224;
double r5673226 = 21.0;
double r5673227 = r5673206 / r5673226;
double r5673228 = r5673223 * r5673212;
double r5673229 = r5673228 * r5673212;
double r5673230 = r5673227 * r5673229;
double r5673231 = r5673225 + r5673230;
double r5673232 = r5673209 * r5673231;
double r5673233 = fabs(r5673232);
return r5673233;
}
double f(double x) {
double r5673234 = 1.0;
double r5673235 = atan2(1.0, 0.0);
double r5673236 = r5673234 / r5673235;
double r5673237 = sqrt(r5673236);
double r5673238 = 0.6666666666666666;
double r5673239 = x;
double r5673240 = fabs(r5673239);
double r5673241 = r5673240 * r5673240;
double r5673242 = r5673241 * r5673240;
double r5673243 = 5.0;
double r5673244 = pow(r5673240, r5673243);
double r5673245 = 0.2;
double r5673246 = 0.047619047619047616;
double r5673247 = 7.0;
double r5673248 = pow(r5673240, r5673247);
double r5673249 = 2.0;
double r5673250 = r5673240 * r5673249;
double r5673251 = fma(r5673246, r5673248, r5673250);
double r5673252 = fma(r5673244, r5673245, r5673251);
double r5673253 = fma(r5673238, r5673242, r5673252);
double r5673254 = 1.0;
double r5673255 = r5673253 * r5673254;
double r5673256 = r5673237 * r5673255;
double r5673257 = fabs(r5673256);
return r5673257;
}



Bits error versus x
Initial program 0.2
Taylor expanded around 0 0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019200 +o rules:numerics
(FPCore (x)
:name "Jmat.Real.erfi, branch x less than or equal to 0.5"
(fabs (* (/ 1.0 (sqrt PI)) (+ (+ (+ (* 2.0 (fabs x)) (* (/ 2.0 3.0) (* (* (fabs x) (fabs x)) (fabs x)))) (* (/ 1.0 5.0) (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)))) (* (/ 1.0 21.0) (* (* (* (* (* (* (fabs x) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)) (fabs x)))))))