x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -6.122731566035475311671418161909773301552 \cdot 10^{157} \lor \neg \left(\frac{y}{z} \le -2.242439350440375267697031348628742827796 \cdot 10^{-179} \lor \neg \left(\frac{y}{z} \le 5.129556799950046333853278890491110988102 \cdot 10^{-271} \lor \neg \left(\frac{y}{z} \le 1.795095217187765936797771641264103283314 \cdot 10^{286}\right)\right)\right):\\
\;\;\;\;\frac{x \cdot y}{z}\\
\mathbf{else}:\\
\;\;\;\;x \cdot \frac{y}{z}\\
\end{array}double f(double x, double y, double z, double t) {
double r85229 = x;
double r85230 = y;
double r85231 = z;
double r85232 = r85230 / r85231;
double r85233 = t;
double r85234 = r85232 * r85233;
double r85235 = r85234 / r85233;
double r85236 = r85229 * r85235;
return r85236;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r85237 = y;
double r85238 = z;
double r85239 = r85237 / r85238;
double r85240 = -6.122731566035475e+157;
bool r85241 = r85239 <= r85240;
double r85242 = -2.2424393504403753e-179;
bool r85243 = r85239 <= r85242;
double r85244 = 5.129556799950046e-271;
bool r85245 = r85239 <= r85244;
double r85246 = 1.795095217187766e+286;
bool r85247 = r85239 <= r85246;
double r85248 = !r85247;
bool r85249 = r85245 || r85248;
double r85250 = !r85249;
bool r85251 = r85243 || r85250;
double r85252 = !r85251;
bool r85253 = r85241 || r85252;
double r85254 = x;
double r85255 = r85254 * r85237;
double r85256 = r85255 / r85238;
double r85257 = r85254 * r85239;
double r85258 = r85253 ? r85256 : r85257;
return r85258;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -6.122731566035475e+157 or -2.2424393504403753e-179 < (/ y z) < 5.129556799950046e-271 or 1.795095217187766e+286 < (/ y z) Initial program 24.3
Simplified16.0
rmApplied *-un-lft-identity16.0
Applied add-cube-cbrt16.4
Applied times-frac16.4
Applied associate-*r*4.3
Simplified4.3
rmApplied add-cube-cbrt4.5
rmApplied associate-*r/1.9
Simplified1.0
if -6.122731566035475e+157 < (/ y z) < -2.2424393504403753e-179 or 5.129556799950046e-271 < (/ y z) < 1.795095217187766e+286Initial program 9.0
Simplified0.2
Final simplification0.5
herbie shell --seed 2019354 +o rules:numerics
(FPCore (x y z t)
:name "Graphics.Rendering.Chart.Backend.Diagrams:calcFontMetrics from Chart-diagrams-1.5.1"
:precision binary64
(* x (/ (* (/ y z) t) t)))