\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|x\right|\right)}^{3} \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 r125159 = 1.0;
double r125160 = atan2(1.0, 0.0);
double r125161 = sqrt(r125160);
double r125162 = r125159 / r125161;
double r125163 = 2.0;
double r125164 = x;
double r125165 = fabs(r125164);
double r125166 = r125163 * r125165;
double r125167 = 3.0;
double r125168 = r125163 / r125167;
double r125169 = r125165 * r125165;
double r125170 = r125169 * r125165;
double r125171 = r125168 * r125170;
double r125172 = r125166 + r125171;
double r125173 = 5.0;
double r125174 = r125159 / r125173;
double r125175 = r125170 * r125165;
double r125176 = r125175 * r125165;
double r125177 = r125174 * r125176;
double r125178 = r125172 + r125177;
double r125179 = 21.0;
double r125180 = r125159 / r125179;
double r125181 = r125176 * r125165;
double r125182 = r125181 * r125165;
double r125183 = r125180 * r125182;
double r125184 = r125178 + r125183;
double r125185 = r125162 * r125184;
double r125186 = fabs(r125185);
return r125186;
}
double f(double x) {
double r125187 = 1.0;
double r125188 = atan2(1.0, 0.0);
double r125189 = sqrt(r125188);
double r125190 = r125187 / r125189;
double r125191 = 2.0;
double r125192 = x;
double r125193 = fabs(r125192);
double r125194 = r125191 * r125193;
double r125195 = 3.0;
double r125196 = r125191 / r125195;
double r125197 = r125193 * r125193;
double r125198 = r125197 * r125193;
double r125199 = r125196 * r125198;
double r125200 = r125194 + r125199;
double r125201 = 5.0;
double r125202 = r125187 / r125201;
double r125203 = r125198 * r125193;
double r125204 = r125203 * r125193;
double r125205 = r125202 * r125204;
double r125206 = r125200 + r125205;
double r125207 = 21.0;
double r125208 = r125187 / r125207;
double r125209 = 3.0;
double r125210 = pow(r125193, r125209);
double r125211 = r125210 * r125193;
double r125212 = r125211 * r125193;
double r125213 = r125212 * r125193;
double r125214 = r125213 * r125193;
double r125215 = r125208 * r125214;
double r125216 = r125206 + r125215;
double r125217 = r125190 * r125216;
double r125218 = fabs(r125217);
return r125218;
}



Bits error versus x
Results
Initial program 0.2
rmApplied pow10.2
Applied pow10.2
Applied pow10.2
Applied pow-prod-up0.2
Applied pow-prod-up0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020056 +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)))))))