\frac{x \cdot y - z \cdot t}{a}\frac{x \cdot y}{a} - \frac{t \cdot z}{a}double f(double x, double y, double z, double t, double a) {
double r41512072 = x;
double r41512073 = y;
double r41512074 = r41512072 * r41512073;
double r41512075 = z;
double r41512076 = t;
double r41512077 = r41512075 * r41512076;
double r41512078 = r41512074 - r41512077;
double r41512079 = a;
double r41512080 = r41512078 / r41512079;
return r41512080;
}
double f(double x, double y, double z, double t, double a) {
double r41512081 = x;
double r41512082 = y;
double r41512083 = r41512081 * r41512082;
double r41512084 = a;
double r41512085 = r41512083 / r41512084;
double r41512086 = t;
double r41512087 = z;
double r41512088 = r41512086 * r41512087;
double r41512089 = r41512088 / r41512084;
double r41512090 = r41512085 - r41512089;
return r41512090;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a
Results
| Original | 6.7 |
|---|---|
| Target | 5.8 |
| Herbie | 6.7 |
Initial program 6.7
rmApplied clear-num7.0
rmApplied div-inv7.1
Applied associate-/r*6.9
Taylor expanded around inf 6.7
Final simplification6.7
herbie shell --seed 2019158
(FPCore (x y z t a)
:name "Data.Colour.Matrix:inverse from colour-2.3.3, B"
: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))