\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\left(x - \frac{y}{z \cdot 3}\right) + \frac{\frac{\frac{t}{z}}{3}}{y}double f(double x, double y, double z, double t) {
double r564851 = x;
double r564852 = y;
double r564853 = z;
double r564854 = 3.0;
double r564855 = r564853 * r564854;
double r564856 = r564852 / r564855;
double r564857 = r564851 - r564856;
double r564858 = t;
double r564859 = r564855 * r564852;
double r564860 = r564858 / r564859;
double r564861 = r564857 + r564860;
return r564861;
}
double f(double x, double y, double z, double t) {
double r564862 = x;
double r564863 = y;
double r564864 = z;
double r564865 = 3.0;
double r564866 = r564864 * r564865;
double r564867 = r564863 / r564866;
double r564868 = r564862 - r564867;
double r564869 = t;
double r564870 = r564869 / r564864;
double r564871 = r564870 / r564865;
double r564872 = r564871 / r564863;
double r564873 = r564868 + r564872;
return r564873;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 3.6 |
|---|---|
| Target | 1.8 |
| Herbie | 1.8 |
Initial program 3.6
rmApplied associate-/r*1.8
rmApplied associate-/r*1.8
Final simplification1.8
herbie shell --seed 2019303 +o rules:numerics
(FPCore (x y z t)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, H"
:precision binary64
:herbie-target
(+ (- x (/ y (* z 3))) (/ (/ t (* z 3)) y))
(+ (- x (/ y (* z 3))) (/ t (* (* z 3) y))))