x \cdot \left(1 - y \cdot z\right)
\begin{array}{l}
\mathbf{if}\;y \cdot z = -\infty:\\
\;\;\;\;x \cdot 1 + \left(x \cdot z\right) \cdot \left(-y\right)\\
\mathbf{elif}\;y \cdot z \le 1.45551293622058124 \cdot 10^{302}:\\
\;\;\;\;x \cdot 1 + x \cdot \left(-y \cdot z\right)\\
\mathbf{else}:\\
\;\;\;\;x \cdot 1 + \left(x \cdot \left(y \cdot 1\right)\right) \cdot \left(-1 \cdot z\right)\\
\end{array}double code(double x, double y, double z) {
return (x * (1.0 - (y * z)));
}
double code(double x, double y, double z) {
double temp;
if (((y * z) <= -inf.0)) {
temp = ((x * 1.0) + ((x * z) * -y));
} else {
double temp_1;
if (((y * z) <= 1.4555129362205812e+302)) {
temp_1 = ((x * 1.0) + (x * -(y * z)));
} else {
temp_1 = ((x * 1.0) + ((x * (y * 1.0)) * (-1.0 * z)));
}
temp = temp_1;
}
return temp;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
if (* y z) < -inf.0Initial program 64.0
rmApplied sub-neg64.0
Applied distribute-lft-in64.0
rmApplied *-commutative64.0
Applied distribute-rgt-neg-in64.0
Applied associate-*r*0.3
if -inf.0 < (* y z) < 1.4555129362205812e+302Initial program 0.1
rmApplied sub-neg0.1
Applied distribute-lft-in0.1
if 1.4555129362205812e+302 < (* y z) Initial program 58.4
rmApplied sub-neg58.4
Applied distribute-lft-in58.4
rmApplied add-cube-cbrt58.5
Applied associate-*r*58.5
Applied distribute-rgt-neg-in58.5
Applied associate-*r*29.7
rmApplied *-un-lft-identity29.7
Applied *-un-lft-identity29.7
Applied swap-sqr29.7
Applied associate-*r*29.7
Applied associate-*r*1.3
Applied associate-*l*1.3
Simplified0.2
Final simplification0.1
herbie shell --seed 2020066
(FPCore (x y z)
:name "Data.Colour.RGBSpace.HSV:hsv from colour-2.3.3, I"
:precision binary64
(* x (- 1 (* y z))))