\frac{x}{y} \cdot \left(z - t\right) + tt + \frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{y} \cdot \sqrt[3]{y}} \cdot \frac{z - t}{\frac{\sqrt[3]{y}}{\sqrt[3]{x}}}double f(double x, double y, double z, double t) {
double r254023 = x;
double r254024 = y;
double r254025 = r254023 / r254024;
double r254026 = z;
double r254027 = t;
double r254028 = r254026 - r254027;
double r254029 = r254025 * r254028;
double r254030 = r254029 + r254027;
return r254030;
}
double f(double x, double y, double z, double t) {
double r254031 = t;
double r254032 = x;
double r254033 = cbrt(r254032);
double r254034 = r254033 * r254033;
double r254035 = y;
double r254036 = cbrt(r254035);
double r254037 = r254036 * r254036;
double r254038 = r254034 / r254037;
double r254039 = z;
double r254040 = r254039 - r254031;
double r254041 = r254036 / r254033;
double r254042 = r254040 / r254041;
double r254043 = r254038 * r254042;
double r254044 = r254031 + r254043;
return r254044;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 1.9 |
|---|---|
| Target | 2.3 |
| Herbie | 0.9 |
Initial program 1.9
Taylor expanded around 0 6.5
Simplified1.8
rmApplied add-cube-cbrt2.4
Applied add-cube-cbrt2.5
Applied times-frac2.5
Applied *-un-lft-identity2.5
Applied times-frac0.9
Simplified0.9
Final simplification0.9
herbie shell --seed 2019325
(FPCore (x y z t)
:name "Numeric.Signal.Multichannel:$cget from hsignal-0.2.7.1"
:precision binary64
:herbie-target
(if (< z 2.759456554562692e-282) (+ (* (/ x y) (- z t)) t) (if (< z 2.326994450874436e-110) (+ (* x (/ (- z t) y)) t) (+ (* (/ x y) (- z t)) t)))
(+ (* (/ x y) (- z t)) t))