4 \cdot \frac{{x}^{2}}{{pi}^{2}} - \left(\frac{x}{\left|x\right|} \cdot 2\right) \cdot \frac{x}{pi}4 \cdot \frac{{x}^{2}}{{pi}^{2}} - \left(\frac{x}{\left|x\right|} \cdot 2\right) \cdot \frac{x}{pi}double code(double x, double pi) {
return ((double) (((double) (4.0 * ((double) (((double) pow(x, 2.0)) / ((double) pow(pi, 2.0)))))) - ((double) (((double) (((double) (x / ((double) fabs(x)))) * 2.0)) * ((double) (x / pi))))));
}
double code(double x, double pi) {
return ((double) (((double) (4.0 * ((double) (((double) pow(x, 2.0)) / ((double) pow(pi, 2.0)))))) - ((double) (((double) (((double) (x / ((double) fabs(x)))) * 2.0)) * ((double) (x / pi))))));
}



Bits error versus x



Bits error versus pi
Results
Initial program 16.7
Final simplification16.7
herbie shell --seed 2020152
(FPCore (x pi)
:name "(- (* 4 (/ (pow x 2) (pow pi 2))) (* (* (/ x (fabs x)) 2) (/ x pi)))"
:precision binary64
(- (* 4.0 (/ (pow x 2.0) (pow pi 2.0))) (* (* (/ x (fabs x)) 2.0) (/ x pi))))