\frac{x \cdot y - z \cdot t}{a}\frac{x \cdot y - t \cdot z}{a}double f(double x, double y, double z, double t, double a) {
double r34032069 = x;
double r34032070 = y;
double r34032071 = r34032069 * r34032070;
double r34032072 = z;
double r34032073 = t;
double r34032074 = r34032072 * r34032073;
double r34032075 = r34032071 - r34032074;
double r34032076 = a;
double r34032077 = r34032075 / r34032076;
return r34032077;
}
double f(double x, double y, double z, double t, double a) {
double r34032078 = x;
double r34032079 = y;
double r34032080 = r34032078 * r34032079;
double r34032081 = t;
double r34032082 = z;
double r34032083 = r34032081 * r34032082;
double r34032084 = r34032080 - r34032083;
double r34032085 = a;
double r34032086 = r34032084 / r34032085;
return r34032086;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 7.9 |
|---|---|
| Target | 5.8 |
| Herbie | 7.9 |
Initial program 7.9
Taylor expanded around inf 7.9
Final simplification7.9
herbie shell --seed 2019174 +o rules:numerics
(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))