\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 r693128 = x;
double r693129 = y;
double r693130 = r693128 * r693129;
double r693131 = z;
double r693132 = t;
double r693133 = r693131 * r693132;
double r693134 = r693130 - r693133;
double r693135 = a;
double r693136 = r693134 / r693135;
return r693136;
}
double f(double x, double y, double z, double t, double a) {
double r693137 = x;
double r693138 = y;
double r693139 = r693137 * r693138;
double r693140 = z;
double r693141 = t;
double r693142 = r693140 * r693141;
double r693143 = r693139 - r693142;
double r693144 = a;
double r693145 = r693143 / r693144;
return r693145;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 8.0 |
|---|---|
| Target | 6.2 |
| Herbie | 8.0 |
Initial program 8.0
rmApplied div-inv8.1
Final simplification8.0
herbie shell --seed 2019304
(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))