\frac{60 \cdot \left(x - y\right)}{z - t} + a \cdot 120\frac{60}{\frac{z - t}{x - y}} + a \cdot 120double f(double x, double y, double z, double t, double a) {
double r545549 = 60.0;
double r545550 = x;
double r545551 = y;
double r545552 = r545550 - r545551;
double r545553 = r545549 * r545552;
double r545554 = z;
double r545555 = t;
double r545556 = r545554 - r545555;
double r545557 = r545553 / r545556;
double r545558 = a;
double r545559 = 120.0;
double r545560 = r545558 * r545559;
double r545561 = r545557 + r545560;
return r545561;
}
double f(double x, double y, double z, double t, double a) {
double r545562 = 60.0;
double r545563 = z;
double r545564 = t;
double r545565 = r545563 - r545564;
double r545566 = x;
double r545567 = y;
double r545568 = r545566 - r545567;
double r545569 = r545565 / r545568;
double r545570 = r545562 / r545569;
double r545571 = a;
double r545572 = 120.0;
double r545573 = r545571 * r545572;
double r545574 = r545570 + r545573;
return r545574;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 0.4 |
|---|---|
| Target | 0.2 |
| Herbie | 0.2 |
Initial program 0.4
rmApplied associate-/l*0.2
Final simplification0.2
herbie shell --seed 2019325
(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)))