\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) + \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|double f(double x) {
double r125225 = 1.0;
double r125226 = atan2(1.0, 0.0);
double r125227 = sqrt(r125226);
double r125228 = r125225 / r125227;
double r125229 = 2.0;
double r125230 = x;
double r125231 = fabs(r125230);
double r125232 = r125229 * r125231;
double r125233 = 3.0;
double r125234 = r125229 / r125233;
double r125235 = r125231 * r125231;
double r125236 = r125235 * r125231;
double r125237 = r125234 * r125236;
double r125238 = r125232 + r125237;
double r125239 = 5.0;
double r125240 = r125225 / r125239;
double r125241 = r125236 * r125231;
double r125242 = r125241 * r125231;
double r125243 = r125240 * r125242;
double r125244 = r125238 + r125243;
double r125245 = 21.0;
double r125246 = r125225 / r125245;
double r125247 = r125242 * r125231;
double r125248 = r125247 * r125231;
double r125249 = r125246 * r125248;
double r125250 = r125244 + r125249;
double r125251 = r125228 * r125250;
double r125252 = fabs(r125251);
return r125252;
}
double f(double x) {
double r125253 = 1.0;
double r125254 = atan2(1.0, 0.0);
double r125255 = sqrt(r125254);
double r125256 = r125253 / r125255;
double r125257 = 2.0;
double r125258 = x;
double r125259 = fabs(r125258);
double r125260 = r125257 * r125259;
double r125261 = 3.0;
double r125262 = r125257 / r125261;
double r125263 = r125259 * r125259;
double r125264 = r125263 * r125259;
double r125265 = r125262 * r125264;
double r125266 = r125260 + r125265;
double r125267 = 5.0;
double r125268 = r125253 / r125267;
double r125269 = r125264 * r125259;
double r125270 = r125269 * r125259;
double r125271 = r125268 * r125270;
double r125272 = r125266 + r125271;
double r125273 = 21.0;
double r125274 = r125253 / r125273;
double r125275 = r125270 * r125259;
double r125276 = r125275 * r125259;
double r125277 = r125274 * r125276;
double r125278 = r125272 + r125277;
double r125279 = r125256 * r125278;
double r125280 = fabs(r125279);
return r125280;
}



Bits error versus x
Results
Initial program 0.2
Final simplification0.2
herbie shell --seed 2020047
(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)))))))