x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\mathsf{fma}\left(y - x, 6 \cdot \frac{2}{3}, x\right) + \left(\left(y - x\right) \cdot 6\right) \cdot \left(-z\right)double f(double x, double y, double z) {
double r227923 = x;
double r227924 = y;
double r227925 = r227924 - r227923;
double r227926 = 6.0;
double r227927 = r227925 * r227926;
double r227928 = 2.0;
double r227929 = 3.0;
double r227930 = r227928 / r227929;
double r227931 = z;
double r227932 = r227930 - r227931;
double r227933 = r227927 * r227932;
double r227934 = r227923 + r227933;
return r227934;
}
double f(double x, double y, double z) {
double r227935 = y;
double r227936 = x;
double r227937 = r227935 - r227936;
double r227938 = 6.0;
double r227939 = 2.0;
double r227940 = 3.0;
double r227941 = r227939 / r227940;
double r227942 = r227938 * r227941;
double r227943 = fma(r227937, r227942, r227936);
double r227944 = r227937 * r227938;
double r227945 = z;
double r227946 = -r227945;
double r227947 = r227944 * r227946;
double r227948 = r227943 + r227947;
return r227948;
}



Bits error versus x



Bits error versus y



Bits error versus z
Initial program 0.4
rmApplied sub-neg0.4
Applied distribute-lft-in0.4
Applied associate-+r+0.4
Simplified0.2
Final simplification0.2
herbie shell --seed 2019208 +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))))