\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 r765083 = x;
double r765084 = y;
double r765085 = z;
double r765086 = 3.0;
double r765087 = r765085 * r765086;
double r765088 = r765084 / r765087;
double r765089 = r765083 - r765088;
double r765090 = t;
double r765091 = r765087 * r765084;
double r765092 = r765090 / r765091;
double r765093 = r765089 + r765092;
return r765093;
}
double f(double x, double y, double z, double t) {
double r765094 = x;
double r765095 = y;
double r765096 = z;
double r765097 = 3.0;
double r765098 = r765096 * r765097;
double r765099 = r765095 / r765098;
double r765100 = r765094 - r765099;
double r765101 = t;
double r765102 = cbrt(r765101);
double r765103 = r765102 * r765102;
double r765104 = r765103 / r765098;
double r765105 = r765102 / r765095;
double r765106 = r765104 * r765105;
double r765107 = r765100 + r765106;
return r765107;
}




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 +o rules:numerics
(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))))