\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 r948172 = 60.0;
double r948173 = x;
double r948174 = y;
double r948175 = r948173 - r948174;
double r948176 = r948172 * r948175;
double r948177 = z;
double r948178 = t;
double r948179 = r948177 - r948178;
double r948180 = r948176 / r948179;
double r948181 = a;
double r948182 = 120.0;
double r948183 = r948181 * r948182;
double r948184 = r948180 + r948183;
return r948184;
}
double f(double x, double y, double z, double t, double a) {
double r948185 = 60.0;
double r948186 = z;
double r948187 = t;
double r948188 = r948186 - r948187;
double r948189 = x;
double r948190 = y;
double r948191 = r948189 - r948190;
double r948192 = r948188 / r948191;
double r948193 = r948185 / r948192;
double r948194 = a;
double r948195 = 120.0;
double r948196 = r948194 * r948195;
double r948197 = r948193 + r948196;
return r948197;
}




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 2020047
(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)))