\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\left(x - \frac{\frac{y}{z}}{3}\right) + \frac{0.333333333333333315}{\frac{y}{\frac{t}{z}}}double f(double x, double y, double z, double t) {
double r959953 = x;
double r959954 = y;
double r959955 = z;
double r959956 = 3.0;
double r959957 = r959955 * r959956;
double r959958 = r959954 / r959957;
double r959959 = r959953 - r959958;
double r959960 = t;
double r959961 = r959957 * r959954;
double r959962 = r959960 / r959961;
double r959963 = r959959 + r959962;
return r959963;
}
double f(double x, double y, double z, double t) {
double r959964 = x;
double r959965 = y;
double r959966 = z;
double r959967 = r959965 / r959966;
double r959968 = 3.0;
double r959969 = r959967 / r959968;
double r959970 = r959964 - r959969;
double r959971 = 0.3333333333333333;
double r959972 = t;
double r959973 = r959972 / r959966;
double r959974 = r959965 / r959973;
double r959975 = r959971 / r959974;
double r959976 = r959970 + r959975;
return r959976;
}




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 associate-/r*1.6
Taylor expanded around 0 1.6
rmApplied associate-/l*1.6
Final simplification1.6
herbie shell --seed 2020057
(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))))