\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 r554078 = x;
double r554079 = y;
double r554080 = r554078 * r554079;
double r554081 = z;
double r554082 = t;
double r554083 = r554081 * r554082;
double r554084 = r554080 - r554083;
double r554085 = a;
double r554086 = r554084 / r554085;
return r554086;
}
double f(double x, double y, double z, double t, double a) {
double r554087 = x;
double r554088 = y;
double r554089 = r554087 * r554088;
double r554090 = z;
double r554091 = t;
double r554092 = r554090 * r554091;
double r554093 = r554089 - r554092;
double r554094 = a;
double r554095 = r554093 / r554094;
return r554095;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 7.5 |
|---|---|
| Target | 5.8 |
| Herbie | 7.5 |
Initial program 7.5
Final simplification7.5
herbie shell --seed 2019326
(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))