x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\left(x + \left(\frac{2}{3} \cdot 6\right) \cdot \left(y - x\right)\right) + \left(\left(y - x\right) \cdot 6\right) \cdot \left(-z\right)double f(double x, double y, double z) {
double r264214 = x;
double r264215 = y;
double r264216 = r264215 - r264214;
double r264217 = 6.0;
double r264218 = r264216 * r264217;
double r264219 = 2.0;
double r264220 = 3.0;
double r264221 = r264219 / r264220;
double r264222 = z;
double r264223 = r264221 - r264222;
double r264224 = r264218 * r264223;
double r264225 = r264214 + r264224;
return r264225;
}
double f(double x, double y, double z) {
double r264226 = x;
double r264227 = 2.0;
double r264228 = 3.0;
double r264229 = r264227 / r264228;
double r264230 = 6.0;
double r264231 = r264229 * r264230;
double r264232 = y;
double r264233 = r264232 - r264226;
double r264234 = r264231 * r264233;
double r264235 = r264226 + r264234;
double r264236 = r264233 * r264230;
double r264237 = z;
double r264238 = -r264237;
double r264239 = r264236 * r264238;
double r264240 = r264235 + r264239;
return r264240;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
Initial program 0.4
rmApplied associate-*l*0.2
rmApplied sub-neg0.2
Applied distribute-lft-in0.2
Applied distribute-lft-in0.2
Applied associate-+r+0.2
Simplified0.2
rmApplied associate-*r*0.2
Final simplification0.2
herbie shell --seed 2019356
(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))))