\frac{60 \cdot \left(x - y\right)}{z - t} + a \cdot 120\frac{60}{z - t} \cdot \left(x - y\right) + a \cdot 120double f(double x, double y, double z, double t, double a) {
double r627014 = 60.0;
double r627015 = x;
double r627016 = y;
double r627017 = r627015 - r627016;
double r627018 = r627014 * r627017;
double r627019 = z;
double r627020 = t;
double r627021 = r627019 - r627020;
double r627022 = r627018 / r627021;
double r627023 = a;
double r627024 = 120.0;
double r627025 = r627023 * r627024;
double r627026 = r627022 + r627025;
return r627026;
}
double f(double x, double y, double z, double t, double a) {
double r627027 = 60.0;
double r627028 = z;
double r627029 = t;
double r627030 = r627028 - r627029;
double r627031 = r627027 / r627030;
double r627032 = x;
double r627033 = y;
double r627034 = r627032 - r627033;
double r627035 = r627031 * r627034;
double r627036 = a;
double r627037 = 120.0;
double r627038 = r627036 * r627037;
double r627039 = r627035 + r627038;
return r627039;
}




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
rmApplied associate-/r/0.2
Final simplification0.2
herbie shell --seed 2019208
(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)))