\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|\left(\left|x\right| \cdot \left(2 + \left({\left(\left|x\right|\right)}^{4} \cdot \frac{1}{5} + {\left(\left|x\right|\right)}^{6} \cdot \frac{1}{21}\right)\right)\right) \cdot \frac{1}{\sqrt{\pi}} + \frac{1}{\sqrt{\pi}} \cdot \frac{2}{\frac{3}{{\left(\left|x\right|\right)}^{3}}}\right|double f(double x) {
double r431116 = 1.0;
double r431117 = atan2(1.0, 0.0);
double r431118 = sqrt(r431117);
double r431119 = r431116 / r431118;
double r431120 = 2.0;
double r431121 = x;
double r431122 = fabs(r431121);
double r431123 = r431120 * r431122;
double r431124 = 3.0;
double r431125 = r431120 / r431124;
double r431126 = r431122 * r431122;
double r431127 = r431126 * r431122;
double r431128 = r431125 * r431127;
double r431129 = r431123 + r431128;
double r431130 = 5.0;
double r431131 = r431116 / r431130;
double r431132 = r431127 * r431122;
double r431133 = r431132 * r431122;
double r431134 = r431131 * r431133;
double r431135 = r431129 + r431134;
double r431136 = 21.0;
double r431137 = r431116 / r431136;
double r431138 = r431133 * r431122;
double r431139 = r431138 * r431122;
double r431140 = r431137 * r431139;
double r431141 = r431135 + r431140;
double r431142 = r431119 * r431141;
double r431143 = fabs(r431142);
return r431143;
}
double f(double x) {
double r431144 = x;
double r431145 = fabs(r431144);
double r431146 = 2.0;
double r431147 = 4.0;
double r431148 = pow(r431145, r431147);
double r431149 = 1.0;
double r431150 = 5.0;
double r431151 = r431149 / r431150;
double r431152 = r431148 * r431151;
double r431153 = 6.0;
double r431154 = pow(r431145, r431153);
double r431155 = 21.0;
double r431156 = r431149 / r431155;
double r431157 = r431154 * r431156;
double r431158 = r431152 + r431157;
double r431159 = r431146 + r431158;
double r431160 = r431145 * r431159;
double r431161 = atan2(1.0, 0.0);
double r431162 = sqrt(r431161);
double r431163 = r431149 / r431162;
double r431164 = r431160 * r431163;
double r431165 = 3.0;
double r431166 = 3.0;
double r431167 = pow(r431145, r431166);
double r431168 = r431165 / r431167;
double r431169 = r431146 / r431168;
double r431170 = r431163 * r431169;
double r431171 = r431164 + r431170;
double r431172 = fabs(r431171);
return r431172;
}



Bits error versus x
Results
Initial program 0.2
Simplified0.2
rmApplied distribute-lft-in0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020042
(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)))))))