\frac{x}{y} \cdot \left(z - t\right) + t\frac{\sqrt[3]{z - t}}{\frac{y}{\sqrt[3]{x}}} \cdot \left(\left(\sqrt[3]{x} \cdot \sqrt[3]{x}\right) \cdot \left(\sqrt[3]{z - t} \cdot \sqrt[3]{z - t}\right)\right) + tdouble f(double x, double y, double z, double t) {
double r20359843 = x;
double r20359844 = y;
double r20359845 = r20359843 / r20359844;
double r20359846 = z;
double r20359847 = t;
double r20359848 = r20359846 - r20359847;
double r20359849 = r20359845 * r20359848;
double r20359850 = r20359849 + r20359847;
return r20359850;
}
double f(double x, double y, double z, double t) {
double r20359851 = z;
double r20359852 = t;
double r20359853 = r20359851 - r20359852;
double r20359854 = cbrt(r20359853);
double r20359855 = y;
double r20359856 = x;
double r20359857 = cbrt(r20359856);
double r20359858 = r20359855 / r20359857;
double r20359859 = r20359854 / r20359858;
double r20359860 = r20359857 * r20359857;
double r20359861 = r20359854 * r20359854;
double r20359862 = r20359860 * r20359861;
double r20359863 = r20359859 * r20359862;
double r20359864 = r20359863 + r20359852;
return r20359864;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.1 |
|---|---|
| Target | 2.4 |
| Herbie | 1.8 |
Initial program 2.1
Taylor expanded around 0 6.4
Simplified2.0
rmApplied add-cube-cbrt2.5
Applied *-un-lft-identity2.5
Applied times-frac2.5
Applied add-cube-cbrt2.6
Applied times-frac1.8
Simplified1.8
Final simplification1.8
herbie shell --seed 2019172 +o rules:numerics
(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))