x \cdot \left(1 - y \cdot z\right)
x \cdot 1 + \left(-x \cdot \left(z \cdot y\right)\right)
double f(double x, double y, double z) {
double r229567 = x;
double r229568 = 1.0;
double r229569 = y;
double r229570 = z;
double r229571 = r229569 * r229570;
double r229572 = r229568 - r229571;
double r229573 = r229567 * r229572;
return r229573;
}
double f(double x, double y, double z) {
double r229574 = x;
double r229575 = 1.0;
double r229576 = r229574 * r229575;
double r229577 = z;
double r229578 = y;
double r229579 = r229577 * r229578;
double r229580 = r229574 * r229579;
double r229581 = -r229580;
double r229582 = r229576 + r229581;
return r229582;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
Initial program 3.6
rmApplied add-cube-cbrt4.8
Applied associate-*l*4.8
rmApplied sub-neg4.8
Applied distribute-lft-in4.8
Applied distribute-lft-in4.8
Simplified3.9
Simplified3.5
Final simplification3.5
herbie shell --seed 2019199 +o rules:numerics
(FPCore (x y z)
:name "Data.Colour.RGBSpace.HSV:hsv from colour-2.3.3, I"
(* x (- 1.0 (* y z))))