Average Error: 51.6 → 51.6
Time: 7.7s
Precision: binary64
\[\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}\]
\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))))))))));
}

Error

Bits error versus R

Bits error versus h

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Initial program 51.6

    \[\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}\]
  2. Final simplification51.6

    \[\leadsto \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}\]

Reproduce

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))))))