\left(x - \frac{y}{z \cdot 3.0}\right) + \frac{t}{\left(z \cdot 3.0\right) \cdot y}\frac{\frac{t}{3.0} \cdot \frac{1}{z}}{y} + \left(x - \frac{1}{z} \cdot \frac{y}{3.0}\right)double f(double x, double y, double z, double t) {
double r34264875 = x;
double r34264876 = y;
double r34264877 = z;
double r34264878 = 3.0;
double r34264879 = r34264877 * r34264878;
double r34264880 = r34264876 / r34264879;
double r34264881 = r34264875 - r34264880;
double r34264882 = t;
double r34264883 = r34264879 * r34264876;
double r34264884 = r34264882 / r34264883;
double r34264885 = r34264881 + r34264884;
return r34264885;
}
double f(double x, double y, double z, double t) {
double r34264886 = t;
double r34264887 = 3.0;
double r34264888 = r34264886 / r34264887;
double r34264889 = 1.0;
double r34264890 = z;
double r34264891 = r34264889 / r34264890;
double r34264892 = r34264888 * r34264891;
double r34264893 = y;
double r34264894 = r34264892 / r34264893;
double r34264895 = x;
double r34264896 = r34264893 / r34264887;
double r34264897 = r34264891 * r34264896;
double r34264898 = r34264895 - r34264897;
double r34264899 = r34264894 + r34264898;
return r34264899;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 3.5 |
|---|---|
| Target | 1.6 |
| Herbie | 1.6 |
Initial program 3.5
rmApplied associate-/r*1.6
rmApplied *-un-lft-identity1.6
Applied times-frac1.6
rmApplied *-un-lft-identity1.6
Applied times-frac1.6
Final simplification1.6
herbie shell --seed 2019163
(FPCore (x y z t)
:name "Diagrams.Solve.Polynomial:cubForm from diagrams-solve-0.1, H"
:herbie-target
(+ (- x (/ y (* z 3.0))) (/ (/ t (* z 3.0)) y))
(+ (- x (/ y (* z 3.0))) (/ t (* (* z 3.0) y))))