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 r215916 = x;
double r215917 = 1.0;
double r215918 = y;
double r215919 = z;
double r215920 = r215918 * r215919;
double r215921 = r215917 - r215920;
double r215922 = r215916 * r215921;
return r215922;
}
double f(double x, double y, double z) {
double r215923 = x;
double r215924 = 1.0;
double r215925 = y;
double r215926 = z;
double r215927 = r215925 * r215926;
double r215928 = r215924 - r215927;
double r215929 = r215923 * r215928;
double r215930 = -r215926;
double r215931 = r215926 * r215925;
double r215932 = fma(r215930, r215925, r215931);
double r215933 = r215923 * r215932;
double r215934 = r215929 + r215933;
return r215934;
}



Bits error versus x



Bits error versus y



Bits error versus z
Initial program 3.4
rmApplied add-cube-cbrt3.4
Applied prod-diff3.4
Applied distribute-lft-in3.4
Simplified3.4
Final simplification3.4
herbie shell --seed 2020039 +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))))