x + \left(\left(y - x\right) \cdot 6.0\right) \cdot \left(\frac{2.0}{3.0} - z\right)\mathsf{fma}\left(\sqrt[3]{x} \cdot \sqrt[3]{x}, \sqrt[3]{x}, \left(\frac{2.0}{3.0} - z\right) \cdot \left(\left(y - x\right) \cdot 6.0\right)\right)double f(double x, double y, double z) {
double r13386483 = x;
double r13386484 = y;
double r13386485 = r13386484 - r13386483;
double r13386486 = 6.0;
double r13386487 = r13386485 * r13386486;
double r13386488 = 2.0;
double r13386489 = 3.0;
double r13386490 = r13386488 / r13386489;
double r13386491 = z;
double r13386492 = r13386490 - r13386491;
double r13386493 = r13386487 * r13386492;
double r13386494 = r13386483 + r13386493;
return r13386494;
}
double f(double x, double y, double z) {
double r13386495 = x;
double r13386496 = cbrt(r13386495);
double r13386497 = r13386496 * r13386496;
double r13386498 = 2.0;
double r13386499 = 3.0;
double r13386500 = r13386498 / r13386499;
double r13386501 = z;
double r13386502 = r13386500 - r13386501;
double r13386503 = y;
double r13386504 = r13386503 - r13386495;
double r13386505 = 6.0;
double r13386506 = r13386504 * r13386505;
double r13386507 = r13386502 * r13386506;
double r13386508 = fma(r13386497, r13386496, r13386507);
return r13386508;
}



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 2019163 +o rules:numerics
(FPCore (x y z)
:name "Data.Colour.RGBSpace.HSL:hsl from colour-2.3.3, D"
(+ x (* (* (- y x) 6.0) (- (/ 2.0 3.0) z))))