x + \left(y - x\right) \cdot \frac{z}{t}x + \left(\left(y - x\right) \cdot \frac{\sqrt[3]{z} \cdot \sqrt[3]{z}}{\sqrt[3]{t} \cdot \sqrt[3]{t}}\right) \cdot \frac{\sqrt[3]{z}}{\sqrt[3]{t}}double f(double x, double y, double z, double t) {
double r515265 = x;
double r515266 = y;
double r515267 = r515266 - r515265;
double r515268 = z;
double r515269 = t;
double r515270 = r515268 / r515269;
double r515271 = r515267 * r515270;
double r515272 = r515265 + r515271;
return r515272;
}
double f(double x, double y, double z, double t) {
double r515273 = x;
double r515274 = y;
double r515275 = r515274 - r515273;
double r515276 = z;
double r515277 = cbrt(r515276);
double r515278 = r515277 * r515277;
double r515279 = t;
double r515280 = cbrt(r515279);
double r515281 = r515280 * r515280;
double r515282 = r515278 / r515281;
double r515283 = r515275 * r515282;
double r515284 = r515277 / r515280;
double r515285 = r515283 * r515284;
double r515286 = r515273 + r515285;
return r515286;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.1 |
|---|---|
| Target | 2.3 |
| Herbie | 0.9 |
Initial program 2.1
rmApplied add-cube-cbrt2.6
Applied add-cube-cbrt2.7
Applied times-frac2.7
Applied associate-*r*0.9
Final simplification0.9
herbie shell --seed 2019326
(FPCore (x y z t)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:tickPosition from plot-0.2.3.4"
:precision binary64
:herbie-target
(if (< (* (- y x) (/ z t)) -1013646692435.887) (+ x (/ (- y x) (/ t z))) (if (< (* (- y x) (/ z t)) -0.0) (+ x (/ (* (- y x) z) t)) (+ x (/ (- y x) (/ t z)))))
(+ x (* (- y x) (/ z t))))