x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\left(6 \cdot \left(\frac{2}{3} - z\right)\right) \cdot \left(y - x\right) + xdouble f(double x, double y, double z) {
double r149424 = x;
double r149425 = y;
double r149426 = r149425 - r149424;
double r149427 = 6.0;
double r149428 = r149426 * r149427;
double r149429 = 2.0;
double r149430 = 3.0;
double r149431 = r149429 / r149430;
double r149432 = z;
double r149433 = r149431 - r149432;
double r149434 = r149428 * r149433;
double r149435 = r149424 + r149434;
return r149435;
}
double f(double x, double y, double z) {
double r149436 = 6.0;
double r149437 = 2.0;
double r149438 = 3.0;
double r149439 = r149437 / r149438;
double r149440 = z;
double r149441 = r149439 - r149440;
double r149442 = r149436 * r149441;
double r149443 = y;
double r149444 = x;
double r149445 = r149443 - r149444;
double r149446 = r149442 * r149445;
double r149447 = r149446 + r149444;
return r149447;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
Initial program 0.4
Simplified0.2
rmApplied add-sqr-sqrt11.9
Applied associate-*r*12.4
rmApplied fma-udef12.5
Simplified0.2
Final simplification0.2
herbie shell --seed 2019347 +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))))