x \cdot \frac{\frac{y}{z} \cdot t}{t}\frac{\sqrt[3]{y} \cdot \sqrt[3]{x}}{z} \cdot \left(\sqrt[3]{x} \cdot \left(\sqrt[3]{x} \cdot \left(\sqrt[3]{y} \cdot \sqrt[3]{y}\right)\right)\right)double f(double x, double y, double z, double t) {
double r750827 = x;
double r750828 = y;
double r750829 = z;
double r750830 = r750828 / r750829;
double r750831 = t;
double r750832 = r750830 * r750831;
double r750833 = r750832 / r750831;
double r750834 = r750827 * r750833;
return r750834;
}
double f(double x, double y, double z, double __attribute__((unused)) t) {
double r750835 = y;
double r750836 = cbrt(r750835);
double r750837 = x;
double r750838 = cbrt(r750837);
double r750839 = r750836 * r750838;
double r750840 = z;
double r750841 = r750839 / r750840;
double r750842 = r750836 * r750836;
double r750843 = r750838 * r750842;
double r750844 = r750838 * r750843;
double r750845 = r750841 * r750844;
return r750845;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 15.1 |
|---|---|
| Target | 1.8 |
| Herbie | 2.1 |
Initial program 15.1
Simplified6.2
rmApplied associate-/l*6.1
rmApplied add-cube-cbrt6.9
Applied *-un-lft-identity6.9
Applied times-frac6.9
Applied add-cube-cbrt7.2
Applied times-frac3.3
Simplified3.3
Simplified2.1
Final simplification2.1
herbie shell --seed 2019174
(FPCore (x y z t)
:name "Graphics.Rendering.Chart.Backend.Diagrams:calcFontMetrics from Chart-diagrams-1.5.1, B"
:herbie-target
(if (< (/ (* (/ y z) t) t) -1.20672205123045e+245) (/ y (/ z x)) (if (< (/ (* (/ y z) t) t) -5.907522236933906e-275) (* x (/ y z)) (if (< (/ (* (/ y z) t) t) 5.658954423153415e-65) (/ y (/ z x)) (if (< (/ (* (/ y z) t) t) 2.0087180502407133e+217) (* x (/ y z)) (/ (* y x) z)))))
(* x (/ (* (/ y z) t) t)))