x + \left(y - x\right) \cdot \frac{z}{t}x + \frac{y - x}{\frac{\sqrt[3]{t}}{\sqrt[3]{z}} \cdot \frac{\sqrt[3]{t}}{\sqrt[3]{z}}} \cdot \frac{\sqrt[3]{z}}{\sqrt[3]{t}}double f(double x, double y, double z, double t) {
double r30177135 = x;
double r30177136 = y;
double r30177137 = r30177136 - r30177135;
double r30177138 = z;
double r30177139 = t;
double r30177140 = r30177138 / r30177139;
double r30177141 = r30177137 * r30177140;
double r30177142 = r30177135 + r30177141;
return r30177142;
}
double f(double x, double y, double z, double t) {
double r30177143 = x;
double r30177144 = y;
double r30177145 = r30177144 - r30177143;
double r30177146 = t;
double r30177147 = cbrt(r30177146);
double r30177148 = z;
double r30177149 = cbrt(r30177148);
double r30177150 = r30177147 / r30177149;
double r30177151 = r30177150 * r30177150;
double r30177152 = r30177145 / r30177151;
double r30177153 = r30177149 / r30177147;
double r30177154 = r30177152 * r30177153;
double r30177155 = r30177143 + r30177154;
return r30177155;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.8 |
|---|---|
| Target | 2.1 |
| Herbie | 0.9 |
Initial program 1.8
rmApplied add-cube-cbrt2.3
Applied add-cube-cbrt2.5
Applied times-frac2.5
Applied associate-*r*0.9
Simplified0.9
Final simplification0.9
herbie shell --seed 2019162
(FPCore (x y z t)
:name "Graphics.Rendering.Plot.Render.Plot.Axis:tickPosition from plot-0.2.3.4"
:herbie-target
(if (< (* (- y x) (/ z t)) -1013646692435.8867) (+ 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))))