\frac{\left(\left(\frac{myTopRad + myBotRad}{2} \cdot 2\right) \cdot \pi\right) \cdot myTurns}{numPts}\begin{array}{l}
\mathbf{if}\;\left(\left(\frac{myTopRad + myBotRad}{2} \cdot 2\right) \cdot \pi\right) \cdot myTurns \le -1.32164110925618873 \cdot 10^{282} \lor \neg \left(\left(\left(\frac{myTopRad + myBotRad}{2} \cdot 2\right) \cdot \pi\right) \cdot myTurns \le -8.985908165073238 \cdot 10^{-279} \lor \neg \left(\left(\left(\frac{myTopRad + myBotRad}{2} \cdot 2\right) \cdot \pi\right) \cdot myTurns \le 1.61773499624090984 \cdot 10^{-295} \lor \neg \left(\left(\left(\frac{myTopRad + myBotRad}{2} \cdot 2\right) \cdot \pi\right) \cdot myTurns \le 7.8864022608982927 \cdot 10^{274}\right)\right)\right):\\
\;\;\;\;\left(\frac{myTurns}{numPts} \cdot \left(myTopRad + myBotRad\right)\right) \cdot \pi\\
\mathbf{else}:\\
\;\;\;\;\frac{\left(\left(\frac{myTopRad + myBotRad}{2} \cdot 2\right) \cdot \pi\right) \cdot myTurns}{numPts}\\
\end{array}double code(double myTopRad, double myBotRad, double myTurns, double numPts) {
return ((double) (((double) (((double) (((double) (((double) (((double) (myTopRad + myBotRad)) / 2.0)) * 2.0)) * ((double) M_PI))) * myTurns)) / numPts));
}
double code(double myTopRad, double myBotRad, double myTurns, double numPts) {
double VAR;
if (((((double) (((double) (((double) (((double) (((double) (myTopRad + myBotRad)) / 2.0)) * 2.0)) * ((double) M_PI))) * myTurns)) <= -1.3216411092561887e+282) || !((((double) (((double) (((double) (((double) (((double) (myTopRad + myBotRad)) / 2.0)) * 2.0)) * ((double) M_PI))) * myTurns)) <= -8.985908165073238e-279) || !((((double) (((double) (((double) (((double) (((double) (myTopRad + myBotRad)) / 2.0)) * 2.0)) * ((double) M_PI))) * myTurns)) <= 1.6177349962409098e-295) || !(((double) (((double) (((double) (((double) (((double) (myTopRad + myBotRad)) / 2.0)) * 2.0)) * ((double) M_PI))) * myTurns)) <= 7.886402260898293e+274))))) {
VAR = ((double) (((double) (((double) (myTurns / numPts)) * ((double) (myTopRad + myBotRad)))) * ((double) M_PI)));
} else {
VAR = ((double) (((double) (((double) (((double) (((double) (((double) (myTopRad + myBotRad)) / 2.0)) * 2.0)) * ((double) M_PI))) * myTurns)) / numPts));
}
return VAR;
}



Bits error versus myTopRad



Bits error versus myBotRad



Bits error versus myTurns



Bits error versus numPts
Results
if (* (* (* (/ (+ myTopRad myBotRad) 2.0) 2.0) PI) myTurns) < -1.32164110925618873e282 or -8.985908165073238e-279 < (* (* (* (/ (+ myTopRad myBotRad) 2.0) 2.0) PI) myTurns) < 1.61773499624090984e-295 or 7.8864022608982927e274 < (* (* (* (/ (+ myTopRad myBotRad) 2.0) 2.0) PI) myTurns) Initial program 38.8
Simplified0.4
if -1.32164110925618873e282 < (* (* (* (/ (+ myTopRad myBotRad) 2.0) 2.0) PI) myTurns) < -8.985908165073238e-279 or 1.61773499624090984e-295 < (* (* (* (/ (+ myTopRad myBotRad) 2.0) 2.0) PI) myTurns) < 7.8864022608982927e274Initial program 0.4
Final simplification0.4
herbie shell --seed 2020152
(FPCore (myTopRad myBotRad myTurns numPts)
:name "(/ (* (* (* (/ (+ myTopRad myBotRad) 2.0) 2.0) PI) myTurns) numPts)"
:precision binary64
(/ (* (* (* (/ (+ myTopRad myBotRad) 2.0) 2.0) PI) myTurns) numPts))