x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\mathsf{fma}\left(y - x, \frac{6}{3} \cdot 2 + 6 \cdot \left(-z\right), x\right)double f(double x, double y, double z) {
double r168446 = x;
double r168447 = y;
double r168448 = r168447 - r168446;
double r168449 = 6.0;
double r168450 = r168448 * r168449;
double r168451 = 2.0;
double r168452 = 3.0;
double r168453 = r168451 / r168452;
double r168454 = z;
double r168455 = r168453 - r168454;
double r168456 = r168450 * r168455;
double r168457 = r168446 + r168456;
return r168457;
}
double f(double x, double y, double z) {
double r168458 = y;
double r168459 = x;
double r168460 = r168458 - r168459;
double r168461 = 6.0;
double r168462 = 3.0;
double r168463 = r168461 / r168462;
double r168464 = 2.0;
double r168465 = r168463 * r168464;
double r168466 = z;
double r168467 = -r168466;
double r168468 = r168461 * r168467;
double r168469 = r168465 + r168468;
double r168470 = fma(r168460, r168469, r168459);
return r168470;
}



Bits error versus x



Bits error versus y



Bits error versus z
Initial program 0.4
Simplified0.2
rmApplied sub-neg0.2
Applied distribute-lft-in0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019323 +o rules:numerics
(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))))