\frac{x - y}{z - y} \cdot t\left(x - y\right) \cdot \frac{t}{z - y}double f(double x, double y, double z, double t) {
double r341767 = x;
double r341768 = y;
double r341769 = r341767 - r341768;
double r341770 = z;
double r341771 = r341770 - r341768;
double r341772 = r341769 / r341771;
double r341773 = t;
double r341774 = r341772 * r341773;
return r341774;
}
double f(double x, double y, double z, double t) {
double r341775 = x;
double r341776 = y;
double r341777 = r341775 - r341776;
double r341778 = t;
double r341779 = z;
double r341780 = r341779 - r341776;
double r341781 = r341778 / r341780;
double r341782 = r341777 * r341781;
return r341782;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.3 |
|---|---|
| Target | 2.2 |
| Herbie | 10.7 |
if (/ (- x y) (- z y)) < -3.9393291706671915e-183 or 1.715054494440415e-266 < (/ (- x y) (- z y)) < 1.4182513325054067e+187Initial program 0.9
if -3.9393291706671915e-183 < (/ (- x y) (- z y)) < 1.715054494440415e-266 or 1.4182513325054067e+187 < (/ (- x y) (- z y)) Initial program 11.7
rmApplied div-inv11.7
Applied associate-*l*1.0
Simplified1.0
Final simplification10.7
herbie shell --seed 2019291
(FPCore (x y z t)
:name "Numeric.Signal.Multichannel:$cput from hsignal-0.2.7.1"
:precision binary64
:herbie-target
(/ t (/ (- z y) (- x y)))
(* (/ (- x y) (- z y)) t))