x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\mathsf{fma}\left(y - x, 6 \cdot \mathsf{fma}\left(\sqrt{\frac{2}{3}}, \sqrt{\frac{2}{3}}, -z\right), x\right)double f(double x, double y, double z) {
double r200223 = x;
double r200224 = y;
double r200225 = r200224 - r200223;
double r200226 = 6.0;
double r200227 = r200225 * r200226;
double r200228 = 2.0;
double r200229 = 3.0;
double r200230 = r200228 / r200229;
double r200231 = z;
double r200232 = r200230 - r200231;
double r200233 = r200227 * r200232;
double r200234 = r200223 + r200233;
return r200234;
}
double f(double x, double y, double z) {
double r200235 = y;
double r200236 = x;
double r200237 = r200235 - r200236;
double r200238 = 6.0;
double r200239 = 2.0;
double r200240 = 3.0;
double r200241 = r200239 / r200240;
double r200242 = sqrt(r200241);
double r200243 = z;
double r200244 = -r200243;
double r200245 = fma(r200242, r200242, r200244);
double r200246 = r200238 * r200245;
double r200247 = fma(r200237, r200246, r200236);
return r200247;
}



Bits error versus x



Bits error versus y



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