\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 r708396 = x;
double r708397 = y;
double r708398 = r708396 * r708397;
double r708399 = z;
double r708400 = t;
double r708401 = r708399 * r708400;
double r708402 = r708398 - r708401;
double r708403 = a;
double r708404 = r708402 / r708403;
return r708404;
}
double f(double x, double y, double z, double t, double a) {
double r708405 = x;
double r708406 = y;
double r708407 = r708405 * r708406;
double r708408 = z;
double r708409 = t;
double r708410 = r708408 * r708409;
double r708411 = r708407 - r708410;
double r708412 = a;
double r708413 = r708411 / r708412;
return r708413;
}




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.6 |
| Herbie | 7.3 |
Initial program 7.3
rmApplied *-un-lft-identity7.3
Applied *-un-lft-identity7.3
Applied times-frac7.3
Simplified7.3
Final simplification7.3
herbie shell --seed 2020027
(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))