x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)x + \left(\left(y - x\right) \cdot \left(\frac{2}{3} \cdot 6\right) + \left(y - x\right) \cdot \left(\left(-z\right) \cdot 6\right)\right)double f(double x, double y, double z) {
double r300450 = x;
double r300451 = y;
double r300452 = r300451 - r300450;
double r300453 = 6.0;
double r300454 = r300452 * r300453;
double r300455 = 2.0;
double r300456 = 3.0;
double r300457 = r300455 / r300456;
double r300458 = z;
double r300459 = r300457 - r300458;
double r300460 = r300454 * r300459;
double r300461 = r300450 + r300460;
return r300461;
}
double f(double x, double y, double z) {
double r300462 = x;
double r300463 = y;
double r300464 = r300463 - r300462;
double r300465 = 2.0;
double r300466 = 3.0;
double r300467 = r300465 / r300466;
double r300468 = 6.0;
double r300469 = r300467 * r300468;
double r300470 = r300464 * r300469;
double r300471 = z;
double r300472 = -r300471;
double r300473 = r300472 * r300468;
double r300474 = r300464 * r300473;
double r300475 = r300470 + r300474;
double r300476 = r300462 + r300475;
return r300476;
}



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
Simplified0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020039
(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))))