x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\left(x + \left(y - x\right) \cdot \left(\frac{2}{3} \cdot 6\right)\right) + \left(\left(y - x\right) \cdot 6\right) \cdot \left(-z\right)double f(double x, double y, double z) {
double r491451 = x;
double r491452 = y;
double r491453 = r491452 - r491451;
double r491454 = 6.0;
double r491455 = r491453 * r491454;
double r491456 = 2.0;
double r491457 = 3.0;
double r491458 = r491456 / r491457;
double r491459 = z;
double r491460 = r491458 - r491459;
double r491461 = r491455 * r491460;
double r491462 = r491451 + r491461;
return r491462;
}
double f(double x, double y, double z) {
double r491463 = x;
double r491464 = y;
double r491465 = r491464 - r491463;
double r491466 = 2.0;
double r491467 = 3.0;
double r491468 = r491466 / r491467;
double r491469 = 6.0;
double r491470 = r491468 * r491469;
double r491471 = r491465 * r491470;
double r491472 = r491463 + r491471;
double r491473 = r491465 * r491469;
double r491474 = z;
double r491475 = -r491474;
double r491476 = r491473 * r491475;
double r491477 = r491472 + r491476;
return r491477;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
Initial program 0.4
rmApplied associate-*l*0.2
rmApplied sub-neg0.2
Applied distribute-lft-in0.2
Applied distribute-lft-in0.2
Applied associate-+r+0.2
Simplified0.2
rmApplied associate-*r*0.2
Final simplification0.2
herbie shell --seed 2020042
(FPCore (x y z)
:name "Data.Colour.RGBSpace.HSL:hsl from colour-2.3.3, D"
:precision binary64
(+ x (* (* (- y x) 6) (- (/ 2 3) z))))