\left(x - \frac{y}{z \cdot 3}\right) + \frac{t}{\left(z \cdot 3\right) \cdot y}\left(x - \frac{y}{z \cdot 3}\right) + \frac{\sqrt[3]{t} \cdot \sqrt[3]{t}}{z \cdot 3} \cdot \frac{\sqrt[3]{t}}{y}double f(double x, double y, double z, double t) {
double r716938 = x;
double r716939 = y;
double r716940 = z;
double r716941 = 3.0;
double r716942 = r716940 * r716941;
double r716943 = r716939 / r716942;
double r716944 = r716938 - r716943;
double r716945 = t;
double r716946 = r716942 * r716939;
double r716947 = r716945 / r716946;
double r716948 = r716944 + r716947;
return r716948;
}
double f(double x, double y, double z, double t) {
double r716949 = x;
double r716950 = y;
double r716951 = z;
double r716952 = 3.0;
double r716953 = r716951 * r716952;
double r716954 = r716950 / r716953;
double r716955 = r716949 - r716954;
double r716956 = t;
double r716957 = cbrt(r716956);
double r716958 = r716957 * r716957;
double r716959 = r716958 / r716953;
double r716960 = r716957 / r716950;
double r716961 = r716959 * r716960;
double r716962 = r716955 + r716961;
return r716962;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 3.7 |
|---|---|
| Target | 1.9 |
| Herbie | 1.5 |
Initial program 3.7
rmApplied add-cube-cbrt3.9
Applied times-frac1.5
Final simplification1.5
herbie shell --seed 2020062
(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))))