\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{1}{z} \cdot \frac{y}{3}\right)double f(double x, double y, double z, double t) {
double r32848266 = x;
double r32848267 = y;
double r32848268 = z;
double r32848269 = 3.0;
double r32848270 = r32848268 * r32848269;
double r32848271 = r32848267 / r32848270;
double r32848272 = r32848266 - r32848271;
double r32848273 = t;
double r32848274 = r32848270 * r32848267;
double r32848275 = r32848273 / r32848274;
double r32848276 = r32848272 + r32848275;
return r32848276;
}
double f(double x, double y, double z, double t) {
double r32848277 = t;
double r32848278 = z;
double r32848279 = r32848277 / r32848278;
double r32848280 = 3.0;
double r32848281 = r32848279 / r32848280;
double r32848282 = y;
double r32848283 = r32848281 / r32848282;
double r32848284 = x;
double r32848285 = 1.0;
double r32848286 = r32848285 / r32848278;
double r32848287 = r32848282 / r32848280;
double r32848288 = r32848286 * r32848287;
double r32848289 = r32848284 - r32848288;
double r32848290 = r32848283 + r32848289;
return r32848290;
}




Bits error versus x




Bits error versus y




Bits error versus z




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