\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 r857769 = x;
double r857770 = y;
double r857771 = r857769 * r857770;
double r857772 = z;
double r857773 = t;
double r857774 = r857772 * r857773;
double r857775 = r857771 - r857774;
double r857776 = a;
double r857777 = r857775 / r857776;
return r857777;
}
double f(double x, double y, double z, double t, double a) {
double r857778 = x;
double r857779 = y;
double r857780 = r857778 * r857779;
double r857781 = z;
double r857782 = t;
double r857783 = r857781 * r857782;
double r857784 = r857780 - r857783;
double r857785 = a;
double r857786 = r857784 / r857785;
return r857786;
}




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 | 6.1 |
| Herbie | 7.8 |
Initial program 7.8
rmApplied clear-num8.0
rmApplied *-un-lft-identity8.0
Applied *-un-lft-identity8.0
Applied times-frac8.0
Applied add-cube-cbrt8.0
Applied times-frac8.0
Simplified8.0
Simplified7.8
Final simplification7.8
herbie shell --seed 2019350
(FPCore (x y z t a)
:name "Data.Colour.Matrix:inverse from colour-2.3.3, B"
:precision binary64
: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))