\frac{60.0 \cdot \left(x - y\right)}{z - t} + a \cdot 120.0\mathsf{fma}\left(a, 120.0, \frac{x - y}{\frac{z - t}{60.0}}\right)double f(double x, double y, double z, double t, double a) {
double r24842445 = 60.0;
double r24842446 = x;
double r24842447 = y;
double r24842448 = r24842446 - r24842447;
double r24842449 = r24842445 * r24842448;
double r24842450 = z;
double r24842451 = t;
double r24842452 = r24842450 - r24842451;
double r24842453 = r24842449 / r24842452;
double r24842454 = a;
double r24842455 = 120.0;
double r24842456 = r24842454 * r24842455;
double r24842457 = r24842453 + r24842456;
return r24842457;
}
double f(double x, double y, double z, double t, double a) {
double r24842458 = a;
double r24842459 = 120.0;
double r24842460 = x;
double r24842461 = y;
double r24842462 = r24842460 - r24842461;
double r24842463 = z;
double r24842464 = t;
double r24842465 = r24842463 - r24842464;
double r24842466 = 60.0;
double r24842467 = r24842465 / r24842466;
double r24842468 = r24842462 / r24842467;
double r24842469 = fma(r24842458, r24842459, r24842468);
return r24842469;
}




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.3
rmApplied associate-/l*0.1
Final simplification0.1
herbie shell --seed 2019163 +o rules:numerics
(FPCore (x y z t a)
:name "Data.Colour.RGB:hslsv from colour-2.3.3, B"
:herbie-target
(+ (/ 60.0 (/ (- z t) (- x y))) (* a 120.0))
(+ (/ (* 60.0 (- x y)) (- z t)) (* a 120.0)))