x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\mathsf{fma}\left(\mathsf{fma}\left(2, \frac{1}{3}, -z \cdot 1\right) \cdot \left(y - x\right), 6, x\right) + \left(\left(y - x\right) \cdot 6\right) \cdot \mathsf{fma}\left(-z, 1, z \cdot 1\right)double f(double x, double y, double z) {
double r191502 = x;
double r191503 = y;
double r191504 = r191503 - r191502;
double r191505 = 6.0;
double r191506 = r191504 * r191505;
double r191507 = 2.0;
double r191508 = 3.0;
double r191509 = r191507 / r191508;
double r191510 = z;
double r191511 = r191509 - r191510;
double r191512 = r191506 * r191511;
double r191513 = r191502 + r191512;
return r191513;
}
double f(double x, double y, double z) {
double r191514 = 2.0;
double r191515 = 1.0;
double r191516 = 3.0;
double r191517 = r191515 / r191516;
double r191518 = z;
double r191519 = r191518 * r191515;
double r191520 = -r191519;
double r191521 = fma(r191514, r191517, r191520);
double r191522 = y;
double r191523 = x;
double r191524 = r191522 - r191523;
double r191525 = r191521 * r191524;
double r191526 = 6.0;
double r191527 = fma(r191525, r191526, r191523);
double r191528 = r191524 * r191526;
double r191529 = -r191518;
double r191530 = fma(r191529, r191515, r191519);
double r191531 = r191528 * r191530;
double r191532 = r191527 + r191531;
return r191532;
}



Bits error versus x



Bits error versus y



Bits error versus z
Initial program 0.4
rmApplied *-un-lft-identity0.4
Applied div-inv0.4
Applied prod-diff0.4
Applied distribute-lft-in0.4
Applied associate-+r+0.4
Simplified0.4
Final simplification0.4
herbie shell --seed 2020083 +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))))