\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\frac{\frac{\frac{t}{z}}{3}}{y} + \left(x - \frac{\frac{y}{3}}{z}\right)double f(double x, double y, double z, double t) {
double r595003 = x;
double r595004 = y;
double r595005 = z;
double r595006 = 3.0;
double r595007 = r595005 * r595006;
double r595008 = r595004 / r595007;
double r595009 = r595003 - r595008;
double r595010 = t;
double r595011 = r595007 * r595004;
double r595012 = r595010 / r595011;
double r595013 = r595009 + r595012;
return r595013;
}
double f(double x, double y, double z, double t) {
double r595014 = t;
double r595015 = z;
double r595016 = r595014 / r595015;
double r595017 = 3.0;
double r595018 = r595016 / r595017;
double r595019 = y;
double r595020 = r595018 / r595019;
double r595021 = x;
double r595022 = r595019 / r595017;
double r595023 = r595022 / r595015;
double r595024 = r595021 - r595023;
double r595025 = r595020 + r595024;
return r595025;
}




Bits error versus x




Bits error versus y




Bits error versus z




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