\left(R \cdot R\right) \cdot \cos^{-1} \left(\frac{R - h}{R}\right) - \left(R - h\right) \cdot \sqrt{\left(2 \cdot R\right) \cdot h - h \cdot h}\left(R \cdot R\right) \cdot \cos^{-1} \left(\frac{R - h}{R}\right) - \left(R - h\right) \cdot \sqrt{\left(2 \cdot R\right) \cdot h - h \cdot h}double code(double R, double h) {
return ((double) (((double) (((double) (R * R)) * ((double) acos(((double) (((double) (R - h)) / R)))))) - ((double) (((double) (R - h)) * ((double) sqrt(((double) (((double) (((double) (2.0 * R)) * h)) - ((double) (h * h))))))))));
}
double code(double R, double h) {
return ((double) (((double) (((double) (R * R)) * ((double) acos(((double) (((double) (R - h)) / R)))))) - ((double) (((double) (R - h)) * ((double) sqrt(((double) (((double) (((double) (2.0 * R)) * h)) - ((double) (h * h))))))))));
}



Bits error versus R



Bits error versus h
Results
Initial program 51.6
Final simplification51.6
herbie shell --seed 2020152
(FPCore (R h)
:name "(- (* (* R R) (acos (/ (- R h) R))) (* (- R h) (sqrt (- (* (* 2.0 R) h) (* h h)))))"
:precision binary64
(- (* (* R R) (acos (/ (- R h) R))) (* (- R h) (sqrt (- (* (* 2.0 R) h) (* h h))))))