\frac{60.0 \cdot \left(x - y\right)}{z - t} + a \cdot 120.0\mathsf{fma}\left(\frac{60.0}{z - t}, x - y, 120.0 \cdot a\right)double f(double x, double y, double z, double t, double a) {
double r35494636 = 60.0;
double r35494637 = x;
double r35494638 = y;
double r35494639 = r35494637 - r35494638;
double r35494640 = r35494636 * r35494639;
double r35494641 = z;
double r35494642 = t;
double r35494643 = r35494641 - r35494642;
double r35494644 = r35494640 / r35494643;
double r35494645 = a;
double r35494646 = 120.0;
double r35494647 = r35494645 * r35494646;
double r35494648 = r35494644 + r35494647;
return r35494648;
}
double f(double x, double y, double z, double t, double a) {
double r35494649 = 60.0;
double r35494650 = z;
double r35494651 = t;
double r35494652 = r35494650 - r35494651;
double r35494653 = r35494649 / r35494652;
double r35494654 = x;
double r35494655 = y;
double r35494656 = r35494654 - r35494655;
double r35494657 = 120.0;
double r35494658 = a;
double r35494659 = r35494657 * r35494658;
double r35494660 = fma(r35494653, r35494656, r35494659);
return r35494660;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
| Original | 0.4 |
|---|---|
| Target | 0.2 |
| Herbie | 0.1 |
Initial program 0.4
Simplified0.1
Final simplification0.1
herbie shell --seed 2019164 +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)))