\frac{60.0 \cdot \left(x - y\right)}{z - t} + a \cdot 120.0\frac{60.0}{\frac{z - t}{x - y}} + a \cdot 120.0double f(double x, double y, double z, double t, double a) {
double r39045870 = 60.0;
double r39045871 = x;
double r39045872 = y;
double r39045873 = r39045871 - r39045872;
double r39045874 = r39045870 * r39045873;
double r39045875 = z;
double r39045876 = t;
double r39045877 = r39045875 - r39045876;
double r39045878 = r39045874 / r39045877;
double r39045879 = a;
double r39045880 = 120.0;
double r39045881 = r39045879 * r39045880;
double r39045882 = r39045878 + r39045881;
return r39045882;
}
double f(double x, double y, double z, double t, double a) {
double r39045883 = 60.0;
double r39045884 = z;
double r39045885 = t;
double r39045886 = r39045884 - r39045885;
double r39045887 = x;
double r39045888 = y;
double r39045889 = r39045887 - r39045888;
double r39045890 = r39045886 / r39045889;
double r39045891 = r39045883 / r39045890;
double r39045892 = a;
double r39045893 = 120.0;
double r39045894 = r39045892 * r39045893;
double r39045895 = r39045891 + r39045894;
return r39045895;
}




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.1 |
| Herbie | 0.1 |
Initial program 0.5
Simplified0.1
rmApplied div-inv0.2
rmApplied fma-udef0.2
Simplified0.2
rmApplied clear-num0.2
rmApplied associate-*l/0.1
Simplified0.1
Final simplification0.1
herbie shell --seed 2019158 +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)))