\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 r119109 = 1.0;
double r119110 = atan2(1.0, 0.0);
double r119111 = sqrt(r119110);
double r119112 = r119109 / r119111;
double r119113 = 2.0;
double r119114 = x;
double r119115 = fabs(r119114);
double r119116 = r119113 * r119115;
double r119117 = 3.0;
double r119118 = r119113 / r119117;
double r119119 = r119115 * r119115;
double r119120 = r119119 * r119115;
double r119121 = r119118 * r119120;
double r119122 = r119116 + r119121;
double r119123 = 5.0;
double r119124 = r119109 / r119123;
double r119125 = r119120 * r119115;
double r119126 = r119125 * r119115;
double r119127 = r119124 * r119126;
double r119128 = r119122 + r119127;
double r119129 = 21.0;
double r119130 = r119109 / r119129;
double r119131 = r119126 * r119115;
double r119132 = r119131 * r119115;
double r119133 = r119130 * r119132;
double r119134 = r119128 + r119133;
double r119135 = r119112 * r119134;
double r119136 = fabs(r119135);
return r119136;
}
double f(double x) {
double r119137 = 1.0;
double r119138 = atan2(1.0, 0.0);
double r119139 = sqrt(r119138);
double r119140 = r119137 / r119139;
double r119141 = 2.0;
double r119142 = x;
double r119143 = fabs(r119142);
double r119144 = r119141 * r119143;
double r119145 = 3.0;
double r119146 = r119141 / r119145;
double r119147 = r119143 * r119143;
double r119148 = r119147 * r119143;
double r119149 = r119146 * r119148;
double r119150 = r119144 + r119149;
double r119151 = 5.0;
double r119152 = r119137 / r119151;
double r119153 = r119148 * r119143;
double r119154 = r119153 * r119143;
double r119155 = r119152 * r119154;
double r119156 = r119150 + r119155;
double r119157 = 21.0;
double r119158 = r119137 / r119157;
double r119159 = r119154 * r119143;
double r119160 = r119159 * r119143;
double r119161 = r119158 * r119160;
double r119162 = r119156 + r119161;
double r119163 = r119140 * r119162;
double r119164 = fabs(r119163);
return r119164;
}



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