\frac{x}{y} \cdot \left(z - t\right) + t\frac{x}{\sqrt[3]{y} \cdot \sqrt[3]{y}} \cdot \frac{z - t}{\sqrt[3]{y}} + tdouble f(double x, double y, double z, double t) {
double r437629 = x;
double r437630 = y;
double r437631 = r437629 / r437630;
double r437632 = z;
double r437633 = t;
double r437634 = r437632 - r437633;
double r437635 = r437631 * r437634;
double r437636 = r437635 + r437633;
return r437636;
}
double f(double x, double y, double z, double t) {
double r437637 = x;
double r437638 = y;
double r437639 = cbrt(r437638);
double r437640 = r437639 * r437639;
double r437641 = r437637 / r437640;
double r437642 = z;
double r437643 = t;
double r437644 = r437642 - r437643;
double r437645 = r437644 / r437639;
double r437646 = r437641 * r437645;
double r437647 = r437646 + r437643;
return r437647;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.0 |
|---|---|
| Target | 2.3 |
| Herbie | 3.2 |
Initial program 2.0
rmApplied div-inv2.1
Applied associate-*l*6.6
Simplified6.6
rmApplied add-cube-cbrt7.1
Applied *-un-lft-identity7.1
Applied times-frac7.1
Applied associate-*r*3.2
Simplified3.2
Final simplification3.2
herbie shell --seed 2020047
(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))