x + \left(\left(y - x\right) \cdot 6\right) \cdot z
\left(y - x\right) \cdot \left(6 \cdot z\right) + x
double f(double x, double y, double z) {
double r813354 = x;
double r813355 = y;
double r813356 = r813355 - r813354;
double r813357 = 6.0;
double r813358 = r813356 * r813357;
double r813359 = z;
double r813360 = r813358 * r813359;
double r813361 = r813354 + r813360;
return r813361;
}
double f(double x, double y, double z) {
double r813362 = y;
double r813363 = x;
double r813364 = r813362 - r813363;
double r813365 = 6.0;
double r813366 = z;
double r813367 = r813365 * r813366;
double r813368 = r813364 * r813367;
double r813369 = r813368 + r813363;
return r813369;
}




Bits error versus x




Bits error versus y




Bits error versus z
Results
| Original | 0.3 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 0.3
Simplified0.2
rmApplied fma-udef0.2
Final simplification0.2
herbie shell --seed 2020039 +o rules:numerics
(FPCore (x y z)
:name "Data.Colour.RGBSpace.HSL:hsl from colour-2.3.3, E"
:precision binary64
:herbie-target
(- x (* (* 6 z) (- x y)))
(+ x (* (* (- y x) 6) z)))