x \cdot \left(1 - y \cdot z\right)
x \cdot \left(1 - y \cdot z\right) + x \cdot \mathsf{fma}\left(-z, y, z \cdot y\right)double f(double x, double y, double z) {
double r229030 = x;
double r229031 = 1.0;
double r229032 = y;
double r229033 = z;
double r229034 = r229032 * r229033;
double r229035 = r229031 - r229034;
double r229036 = r229030 * r229035;
return r229036;
}
double f(double x, double y, double z) {
double r229037 = x;
double r229038 = 1.0;
double r229039 = y;
double r229040 = z;
double r229041 = r229039 * r229040;
double r229042 = r229038 - r229041;
double r229043 = r229037 * r229042;
double r229044 = -r229040;
double r229045 = r229040 * r229039;
double r229046 = fma(r229044, r229039, r229045);
double r229047 = r229037 * r229046;
double r229048 = r229043 + r229047;
return r229048;
}



Bits error versus x



Bits error versus y



Bits error versus z
Initial program 3.2
rmApplied add-cube-cbrt3.2
Applied prod-diff3.2
Applied distribute-lft-in3.2
Simplified3.2
Final simplification3.2
herbie shell --seed 2020025 +o rules:numerics
(FPCore (x y z)
:name "Data.Colour.RGBSpace.HSV:hsv from colour-2.3.3, I"
:precision binary64
(* x (- 1 (* y z))))