x + \left(\left(y - x\right) \cdot 6\right) \cdot \left(\frac{2}{3} - z\right)\left(x + \left(6 \cdot \frac{2}{3}\right) \cdot \left(y - x\right)\right) + \left(-\left(z \cdot 6\right) \cdot \left(y - x\right)\right)double f(double x, double y, double z) {
double r242209 = x;
double r242210 = y;
double r242211 = r242210 - r242209;
double r242212 = 6.0;
double r242213 = r242211 * r242212;
double r242214 = 2.0;
double r242215 = 3.0;
double r242216 = r242214 / r242215;
double r242217 = z;
double r242218 = r242216 - r242217;
double r242219 = r242213 * r242218;
double r242220 = r242209 + r242219;
return r242220;
}
double f(double x, double y, double z) {
double r242221 = x;
double r242222 = 6.0;
double r242223 = 2.0;
double r242224 = 3.0;
double r242225 = r242223 / r242224;
double r242226 = r242222 * r242225;
double r242227 = y;
double r242228 = r242227 - r242221;
double r242229 = r242226 * r242228;
double r242230 = r242221 + r242229;
double r242231 = z;
double r242232 = r242231 * r242222;
double r242233 = r242232 * r242228;
double r242234 = -r242233;
double r242235 = r242230 + r242234;
return r242235;
}



Bits error versus x



Bits error versus y



Bits error versus z
Results
Initial program 0.4
rmApplied sub-neg0.4
Applied distribute-lft-in0.4
Applied associate-+r+0.4
Simplified0.2
rmApplied pow10.2
Applied pow10.2
Applied pow10.2
Applied pow-prod-down0.2
Applied pow-prod-down0.2
Simplified0.2
Final simplification0.2
herbie shell --seed 2019194
(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))))