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 r300453 = x;
double r300454 = 1.0;
double r300455 = y;
double r300456 = z;
double r300457 = r300455 * r300456;
double r300458 = r300454 - r300457;
double r300459 = r300453 * r300458;
return r300459;
}
double f(double x, double y, double z) {
double r300460 = x;
double r300461 = 1.0;
double r300462 = y;
double r300463 = z;
double r300464 = r300462 * r300463;
double r300465 = r300461 - r300464;
double r300466 = r300460 * r300465;
double r300467 = -r300463;
double r300468 = r300463 * r300462;
double r300469 = fma(r300467, r300462, r300468);
double r300470 = r300460 * r300469;
double r300471 = r300466 + r300470;
return r300471;
}



Bits error versus x



Bits error versus y



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