x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)x + \left(\left(y - x\right) \cdot 6\right) \cdot \mathsf{fma}\left(\sqrt{\frac{2}{3}}, \sqrt{\frac{2}{3}}, -z\right)double f(double x, double y, double z) {
double r255150 = x;
double r255151 = y;
double r255152 = r255151 - r255150;
double r255153 = 6.0;
double r255154 = r255152 * r255153;
double r255155 = 2.0;
double r255156 = 3.0;
double r255157 = r255155 / r255156;
double r255158 = z;
double r255159 = r255157 - r255158;
double r255160 = r255154 * r255159;
double r255161 = r255150 + r255160;
return r255161;
}
double f(double x, double y, double z) {
double r255162 = x;
double r255163 = y;
double r255164 = r255163 - r255162;
double r255165 = 6.0;
double r255166 = r255164 * r255165;
double r255167 = 2.0;
double r255168 = 3.0;
double r255169 = r255167 / r255168;
double r255170 = sqrt(r255169);
double r255171 = z;
double r255172 = -r255171;
double r255173 = fma(r255170, r255170, r255172);
double r255174 = r255166 * r255173;
double r255175 = r255162 + r255174;
return r255175;
}



Bits error versus x



Bits error versus y



Bits error versus z
Initial program 0.4
rmApplied add-sqr-sqrt0.4
Applied fma-neg0.4
Final simplification0.4
herbie shell --seed 2020065 +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))))