\frac{x \cdot y - z \cdot t}{a}\frac{1}{\frac{a}{x \cdot y - z \cdot t}}double f(double x, double y, double z, double t, double a) {
double r591019 = x;
double r591020 = y;
double r591021 = r591019 * r591020;
double r591022 = z;
double r591023 = t;
double r591024 = r591022 * r591023;
double r591025 = r591021 - r591024;
double r591026 = a;
double r591027 = r591025 / r591026;
return r591027;
}
double f(double x, double y, double z, double t, double a) {
double r591028 = 1.0;
double r591029 = a;
double r591030 = x;
double r591031 = y;
double r591032 = r591030 * r591031;
double r591033 = z;
double r591034 = t;
double r591035 = r591033 * r591034;
double r591036 = r591032 - r591035;
double r591037 = r591029 / r591036;
double r591038 = r591028 / r591037;
return r591038;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 7.6 |
|---|---|
| Target | 6.3 |
| Herbie | 7.8 |
Initial program 7.6
rmApplied clear-num7.8
Final simplification7.8
herbie shell --seed 2019199
(FPCore (x y z t a)
:name "Data.Colour.Matrix:inverse from colour-2.3.3, B"
:herbie-target
(if (< z -2.468684968699548e+170) (- (* (/ y a) x) (* (/ t a) z)) (if (< z 6.309831121978371e-71) (/ (- (* x y) (* z t)) a) (- (* (/ y a) x) (* (/ t a) z))))
(/ (- (* x y) (* z t)) a))