\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\frac{1}{\frac{y}{\frac{\frac{t}{z}}{3}}} + \left(x - \frac{y}{z \cdot 3}\right)double f(double x, double y, double z, double t) {
double r39796945 = x;
double r39796946 = y;
double r39796947 = z;
double r39796948 = 3.0;
double r39796949 = r39796947 * r39796948;
double r39796950 = r39796946 / r39796949;
double r39796951 = r39796945 - r39796950;
double r39796952 = t;
double r39796953 = r39796949 * r39796946;
double r39796954 = r39796952 / r39796953;
double r39796955 = r39796951 + r39796954;
return r39796955;
}
double f(double x, double y, double z, double t) {
double r39796956 = 1.0;
double r39796957 = y;
double r39796958 = t;
double r39796959 = z;
double r39796960 = r39796958 / r39796959;
double r39796961 = 3.0;
double r39796962 = r39796960 / r39796961;
double r39796963 = r39796957 / r39796962;
double r39796964 = r39796956 / r39796963;
double r39796965 = x;
double r39796966 = r39796959 * r39796961;
double r39796967 = r39796957 / r39796966;
double r39796968 = r39796965 - r39796967;
double r39796969 = r39796964 + r39796968;
return r39796969;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 3.9 |
|---|---|
| Target | 1.6 |
| Herbie | 1.7 |
Initial program 3.9
rmApplied associate-/r*1.6
rmApplied *-un-lft-identity1.6
Applied associate-/r*1.6
Simplified1.6
rmApplied clear-num1.7
Final simplification1.7
herbie shell --seed 2019200
(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))))