x \cdot \frac{\frac{y}{z} \cdot t}{t}\begin{array}{l}
\mathbf{if}\;\frac{y}{z} \le -5.0746832567059644 \cdot 10^{+132}:\\
\;\;\;\;\frac{1}{\frac{z}{y \cdot x}}\\
\mathbf{elif}\;\frac{y}{z} \le -3.2662471639158817 \cdot 10^{-215}:\\
\;\;\;\;\frac{x}{\frac{z}{y}}\\
\mathbf{elif}\;\frac{y}{z} \le 6.625650070508862 \cdot 10^{-168}:\\
\;\;\;\;\left(y \cdot x\right) \cdot \frac{1}{z}\\
\mathbf{elif}\;\frac{y}{z} \le 5.643944490104231 \cdot 10^{+261}:\\
\;\;\;\;x \cdot \frac{y}{z}\\
\mathbf{else}:\\
\;\;\;\;\frac{1}{\frac{z}{y \cdot x}}\\
\end{array}double f(double x, double y, double z, double t) {
double r7415162 = x;
double r7415163 = y;
double r7415164 = z;
double r7415165 = r7415163 / r7415164;
double r7415166 = t;
double r7415167 = r7415165 * r7415166;
double r7415168 = r7415167 / r7415166;
double r7415169 = r7415162 * r7415168;
return r7415169;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r7415170 = y;
double r7415171 = z;
double r7415172 = r7415170 / r7415171;
double r7415173 = -5.0746832567059644e+132;
bool r7415174 = r7415172 <= r7415173;
double r7415175 = 1.0;
double r7415176 = x;
double r7415177 = r7415170 * r7415176;
double r7415178 = r7415171 / r7415177;
double r7415179 = r7415175 / r7415178;
double r7415180 = -3.2662471639158817e-215;
bool r7415181 = r7415172 <= r7415180;
double r7415182 = r7415171 / r7415170;
double r7415183 = r7415176 / r7415182;
double r7415184 = 6.625650070508862e-168;
bool r7415185 = r7415172 <= r7415184;
double r7415186 = r7415175 / r7415171;
double r7415187 = r7415177 * r7415186;
double r7415188 = 5.643944490104231e+261;
bool r7415189 = r7415172 <= r7415188;
double r7415190 = r7415176 * r7415172;
double r7415191 = r7415189 ? r7415190 : r7415179;
double r7415192 = r7415185 ? r7415187 : r7415191;
double r7415193 = r7415181 ? r7415183 : r7415192;
double r7415194 = r7415174 ? r7415179 : r7415193;
return r7415194;
}



Bits error versus x



Bits error versus y



Bits error versus z



Bits error versus t
Results
if (/ y z) < -5.0746832567059644e+132 or 5.643944490104231e+261 < (/ y z) Initial program 34.4
Simplified21.9
Taylor expanded around -inf 2.7
rmApplied clear-num2.8
if -5.0746832567059644e+132 < (/ y z) < -3.2662471639158817e-215Initial program 7.1
Simplified0.2
Taylor expanded around -inf 10.0
rmApplied associate-/l*0.2
if -3.2662471639158817e-215 < (/ y z) < 6.625650070508862e-168Initial program 17.5
Simplified10.2
Taylor expanded around -inf 0.7
rmApplied div-inv0.7
if 6.625650070508862e-168 < (/ y z) < 5.643944490104231e+261Initial program 9.2
Simplified0.3
Final simplification0.7
herbie shell --seed 2019121
(FPCore (x y z t)
:name "Graphics.Rendering.Chart.Backend.Diagrams:calcFontMetrics from Chart-diagrams-1.5.1"
(* x (/ (* (/ y z) t) t)))