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 r398143 = x;
double r398144 = y;
double r398145 = r398144 - r398143;
double r398146 = z;
double r398147 = t;
double r398148 = r398146 / r398147;
double r398149 = r398145 * r398148;
double r398150 = r398143 + r398149;
return r398150;
}
double f(double x, double y, double z, double t) {
double r398151 = x;
double r398152 = y;
double r398153 = r398152 - r398151;
double r398154 = z;
double r398155 = cbrt(r398154);
double r398156 = r398155 * r398155;
double r398157 = t;
double r398158 = cbrt(r398157);
double r398159 = r398158 * r398158;
double r398160 = r398156 / r398159;
double r398161 = r398153 * r398160;
double r398162 = r398155 / r398158;
double r398163 = r398161 * r398162;
double r398164 = r398151 + r398163;
return r398164;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.9 |
|---|---|
| Target | 1.9 |
| Herbie | 0.9 |
Initial program 1.9
rmApplied add-cube-cbrt2.4
Applied add-cube-cbrt2.6
Applied times-frac2.6
Applied associate-*r*0.9
Final simplification0.9
herbie shell --seed 2020046
(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))))