x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\left(\left(\left(\left(-z\right) \cdot 6\right) \cdot y + x\right) + \left(\frac{2}{3} \cdot 6\right) \cdot \left(y - x\right)\right) + \left(\left(-z\right) \cdot 6\right) \cdot \left(-x\right)double f(double x, double y, double z) {
double r290308 = x;
double r290309 = y;
double r290310 = r290309 - r290308;
double r290311 = 6.0;
double r290312 = r290310 * r290311;
double r290313 = 2.0;
double r290314 = 3.0;
double r290315 = r290313 / r290314;
double r290316 = z;
double r290317 = r290315 - r290316;
double r290318 = r290312 * r290317;
double r290319 = r290308 + r290318;
return r290319;
}
double f(double x, double y, double z) {
double r290320 = z;
double r290321 = -r290320;
double r290322 = 6.0;
double r290323 = r290321 * r290322;
double r290324 = y;
double r290325 = r290323 * r290324;
double r290326 = x;
double r290327 = r290325 + r290326;
double r290328 = 2.0;
double r290329 = 3.0;
double r290330 = r290328 / r290329;
double r290331 = r290330 * r290322;
double r290332 = r290324 - r290326;
double r290333 = r290331 * r290332;
double r290334 = r290327 + r290333;
double r290335 = -r290326;
double r290336 = r290323 * r290335;
double r290337 = r290334 + r290336;
return r290337;
}



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-rgt-in0.2
Applied distribute-rgt-in0.2
Applied associate-+r+0.2
rmApplied sub-neg0.2
Applied distribute-rgt-in0.2
Applied associate-+r+0.2
rmApplied sub-neg0.2
Applied distribute-lft-in0.2
Applied associate-+r+0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2020064
(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))))