\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 r741453 = x;
double r741454 = y;
double r741455 = r741453 * r741454;
double r741456 = z;
double r741457 = t;
double r741458 = r741456 * r741457;
double r741459 = r741455 - r741458;
double r741460 = a;
double r741461 = r741459 / r741460;
return r741461;
}
double f(double x, double y, double z, double t, double a) {
double r741462 = x;
double r741463 = y;
double r741464 = r741462 * r741463;
double r741465 = z;
double r741466 = t;
double r741467 = r741465 * r741466;
double r741468 = r741464 - r741467;
double r741469 = a;
double r741470 = r741468 / r741469;
return r741470;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 7.7 |
|---|---|
| Target | 6.2 |
| Herbie | 7.7 |
Initial program 7.7
Final simplification7.7
herbie shell --seed 2020002 +o rules:numerics
(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))