\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 r520100 = x;
double r520101 = y;
double r520102 = r520100 * r520101;
double r520103 = z;
double r520104 = t;
double r520105 = r520103 * r520104;
double r520106 = r520102 - r520105;
double r520107 = a;
double r520108 = r520106 / r520107;
return r520108;
}
double f(double x, double y, double z, double t, double a) {
double r520109 = x;
double r520110 = y;
double r520111 = r520109 * r520110;
double r520112 = z;
double r520113 = t;
double r520114 = r520112 * r520113;
double r520115 = r520111 - r520114;
double r520116 = a;
double r520117 = r520115 / r520116;
return r520117;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 7.3 |
|---|---|
| Target | 5.7 |
| Herbie | 7.3 |
Initial program 7.3
rmApplied *-un-lft-identity7.3
Final simplification7.3
herbie shell --seed 2019323
(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))