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 r234645 = x;
double r234646 = y;
double r234647 = r234646 - r234645;
double r234648 = 6.0;
double r234649 = r234647 * r234648;
double r234650 = 2.0;
double r234651 = 3.0;
double r234652 = r234650 / r234651;
double r234653 = z;
double r234654 = r234652 - r234653;
double r234655 = r234649 * r234654;
double r234656 = r234645 + r234655;
return r234656;
}
double f(double x, double y, double z) {
double r234657 = x;
double r234658 = cbrt(r234657);
double r234659 = r234658 * r234658;
double r234660 = y;
double r234661 = r234660 - r234657;
double r234662 = 6.0;
double r234663 = r234661 * r234662;
double r234664 = 2.0;
double r234665 = 3.0;
double r234666 = r234664 / r234665;
double r234667 = z;
double r234668 = r234666 - r234667;
double r234669 = r234663 * r234668;
double r234670 = fma(r234659, r234658, r234669);
return r234670;
}



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 2019350 +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))))