\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 r1688910 = 60.0;
double r1688911 = x;
double r1688912 = y;
double r1688913 = r1688911 - r1688912;
double r1688914 = r1688910 * r1688913;
double r1688915 = z;
double r1688916 = t;
double r1688917 = r1688915 - r1688916;
double r1688918 = r1688914 / r1688917;
double r1688919 = a;
double r1688920 = 120.0;
double r1688921 = r1688919 * r1688920;
double r1688922 = r1688918 + r1688921;
return r1688922;
}
double f(double x, double y, double z, double t, double a) {
double r1688923 = 60.0;
double r1688924 = z;
double r1688925 = t;
double r1688926 = r1688924 - r1688925;
double r1688927 = x;
double r1688928 = y;
double r1688929 = r1688927 - r1688928;
double r1688930 = r1688926 / r1688929;
double r1688931 = r1688923 / r1688930;
double r1688932 = a;
double r1688933 = 120.0;
double r1688934 = r1688932 * r1688933;
double r1688935 = r1688931 + r1688934;
return r1688935;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




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