\frac{60 \cdot \left(x - y\right)}{z - t} + a \cdot 120\mathsf{fma}\left(120, a, \frac{60}{\frac{z - t}{x - y}}\right)double f(double x, double y, double z, double t, double a) {
double r865424 = 60.0;
double r865425 = x;
double r865426 = y;
double r865427 = r865425 - r865426;
double r865428 = r865424 * r865427;
double r865429 = z;
double r865430 = t;
double r865431 = r865429 - r865430;
double r865432 = r865428 / r865431;
double r865433 = a;
double r865434 = 120.0;
double r865435 = r865433 * r865434;
double r865436 = r865432 + r865435;
return r865436;
}
double f(double x, double y, double z, double t, double a) {
double r865437 = 120.0;
double r865438 = a;
double r865439 = 60.0;
double r865440 = z;
double r865441 = t;
double r865442 = r865440 - r865441;
double r865443 = x;
double r865444 = y;
double r865445 = r865443 - r865444;
double r865446 = r865442 / r865445;
double r865447 = r865439 / r865446;
double r865448 = fma(r865437, r865438, r865447);
return r865448;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
| Original | 0.4 |
|---|---|
| Target | 0.2 |
| Herbie | 0.1 |
Initial program 0.4
Simplified0.4
rmApplied associate-/l*0.1
Final simplification0.1
herbie shell --seed 2020062 +o rules:numerics
(FPCore (x y z t a)
:name "Data.Colour.RGB:hslsv from colour-2.3.3, B"
:precision binary64
:herbie-target
(+ (/ 60 (/ (- z t) (- x y))) (* a 120))
(+ (/ (* 60 (- x y)) (- z t)) (* a 120)))