\frac{x}{y} \cdot \left(z - t\right) + t\frac{\sqrt[3]{x} \cdot \sqrt[3]{x}}{\sqrt[3]{y} \cdot \sqrt[3]{y}} \cdot \left(\frac{\sqrt[3]{x}}{\sqrt[3]{y}} \cdot \left(z - t\right)\right) + tdouble f(double x, double y, double z, double t) {
double r33246148 = x;
double r33246149 = y;
double r33246150 = r33246148 / r33246149;
double r33246151 = z;
double r33246152 = t;
double r33246153 = r33246151 - r33246152;
double r33246154 = r33246150 * r33246153;
double r33246155 = r33246154 + r33246152;
return r33246155;
}
double f(double x, double y, double z, double t) {
double r33246156 = x;
double r33246157 = cbrt(r33246156);
double r33246158 = r33246157 * r33246157;
double r33246159 = y;
double r33246160 = cbrt(r33246159);
double r33246161 = r33246160 * r33246160;
double r33246162 = r33246158 / r33246161;
double r33246163 = r33246157 / r33246160;
double r33246164 = z;
double r33246165 = t;
double r33246166 = r33246164 - r33246165;
double r33246167 = r33246163 * r33246166;
double r33246168 = r33246162 * r33246167;
double r33246169 = r33246168 + r33246165;
return r33246169;
}




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-*l*0.9
Final simplification0.9
herbie shell --seed 2019174
(FPCore (x y z t)
:name "Numeric.Signal.Multichannel:$cget from hsignal-0.2.7.1"
: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))