\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\left(x - \frac{1}{\frac{z \cdot 3}{y}}\right) + \frac{\frac{t}{z \cdot 3}}{y}double f(double x, double y, double z, double t) {
double r682920 = x;
double r682921 = y;
double r682922 = z;
double r682923 = 3.0;
double r682924 = r682922 * r682923;
double r682925 = r682921 / r682924;
double r682926 = r682920 - r682925;
double r682927 = t;
double r682928 = r682924 * r682921;
double r682929 = r682927 / r682928;
double r682930 = r682926 + r682929;
return r682930;
}
double f(double x, double y, double z, double t) {
double r682931 = x;
double r682932 = 1.0;
double r682933 = z;
double r682934 = 3.0;
double r682935 = r682933 * r682934;
double r682936 = y;
double r682937 = r682935 / r682936;
double r682938 = r682932 / r682937;
double r682939 = r682931 - r682938;
double r682940 = t;
double r682941 = r682940 / r682935;
double r682942 = r682941 / r682936;
double r682943 = r682939 + r682942;
return r682943;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 4.0 |
|---|---|
| Target | 1.7 |
| Herbie | 1.8 |
Initial program 4.0
rmApplied associate-/r*1.7
rmApplied clear-num1.8
Final simplification1.8
herbie shell --seed 2020045
(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))))