\frac{x \cdot y - z \cdot t}{a}\frac{x \cdot y - z \cdot t}{a}double f(double x, double y, double z, double t, double a) {
double r538724 = x;
double r538725 = y;
double r538726 = r538724 * r538725;
double r538727 = z;
double r538728 = t;
double r538729 = r538727 * r538728;
double r538730 = r538726 - r538729;
double r538731 = a;
double r538732 = r538730 / r538731;
return r538732;
}
double f(double x, double y, double z, double t, double a) {
double r538733 = x;
double r538734 = y;
double r538735 = r538733 * r538734;
double r538736 = z;
double r538737 = t;
double r538738 = r538736 * r538737;
double r538739 = r538735 - r538738;
double r538740 = a;
double r538741 = r538739 / r538740;
return r538741;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 7.8 |
|---|---|
| Target | 5.8 |
| Herbie | 7.8 |
Initial program 7.8
rmApplied *-un-lft-identity7.8
Applied *-un-lft-identity7.8
Applied times-frac7.8
Simplified7.8
Final simplification7.8
herbie shell --seed 2019303 +o rules:numerics
(FPCore (x y z t a)
:name "Data.Colour.Matrix:inverse from colour-2.3.3, B"
:precision binary64
:herbie-target
(if (< z -2.46868496869954822e170) (- (* (/ y a) x) (* (/ t a) z)) (if (< z 6.30983112197837121e-71) (/ (- (* x y) (* z t)) a) (- (* (/ y a) x) (* (/ t a) z))))
(/ (- (* x y) (* z t)) a))