\frac{x \cdot y - z \cdot t}{a}\frac{x \cdot y + \left(-z \cdot t\right)}{a}double f(double x, double y, double z, double t, double a) {
double r533603 = x;
double r533604 = y;
double r533605 = r533603 * r533604;
double r533606 = z;
double r533607 = t;
double r533608 = r533606 * r533607;
double r533609 = r533605 - r533608;
double r533610 = a;
double r533611 = r533609 / r533610;
return r533611;
}
double f(double x, double y, double z, double t, double a) {
double r533612 = x;
double r533613 = y;
double r533614 = r533612 * r533613;
double r533615 = z;
double r533616 = t;
double r533617 = r533615 * r533616;
double r533618 = -r533617;
double r533619 = r533614 + r533618;
double r533620 = a;
double r533621 = r533619 / r533620;
return r533621;
}




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 sub-neg7.8
Final simplification7.8
herbie shell --seed 2019303
(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))