\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 r769629 = 60.0;
double r769630 = x;
double r769631 = y;
double r769632 = r769630 - r769631;
double r769633 = r769629 * r769632;
double r769634 = z;
double r769635 = t;
double r769636 = r769634 - r769635;
double r769637 = r769633 / r769636;
double r769638 = a;
double r769639 = 120.0;
double r769640 = r769638 * r769639;
double r769641 = r769637 + r769640;
return r769641;
}
double f(double x, double y, double z, double t, double a) {
double r769642 = 60.0;
double r769643 = z;
double r769644 = t;
double r769645 = r769643 - r769644;
double r769646 = r769642 / r769645;
double r769647 = x;
double r769648 = y;
double r769649 = r769647 - r769648;
double r769650 = r769646 * r769649;
double r769651 = a;
double r769652 = 120.0;
double r769653 = r769651 * r769652;
double r769654 = r769650 + r769653;
return r769654;
}




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.1 |
Initial program 0.4
rmApplied associate-/l*0.2
rmApplied associate-/r/0.1
Final simplification0.1
herbie shell --seed 2020021
(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)))