x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\mathsf{fma}\left(\sqrt[3]{x} \cdot \sqrt[3]{x}, \sqrt[3]{x}, \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\right)double f(double x, double y, double z) {
double r226728 = x;
double r226729 = y;
double r226730 = r226729 - r226728;
double r226731 = 6.0;
double r226732 = r226730 * r226731;
double r226733 = 2.0;
double r226734 = 3.0;
double r226735 = r226733 / r226734;
double r226736 = z;
double r226737 = r226735 - r226736;
double r226738 = r226732 * r226737;
double r226739 = r226728 + r226738;
return r226739;
}
double f(double x, double y, double z) {
double r226740 = x;
double r226741 = cbrt(r226740);
double r226742 = r226741 * r226741;
double r226743 = y;
double r226744 = r226743 - r226740;
double r226745 = 6.0;
double r226746 = r226744 * r226745;
double r226747 = 2.0;
double r226748 = 3.0;
double r226749 = r226747 / r226748;
double r226750 = z;
double r226751 = r226749 - r226750;
double r226752 = r226746 * r226751;
double r226753 = fma(r226742, r226741, r226752);
return r226753;
}



Bits error versus x



Bits error versus y



Bits error versus z
Initial program 0.4
rmApplied add-cube-cbrt0.5
Applied fma-def0.5
Final simplification0.5
herbie shell --seed 2020047 +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))))