\frac{x - y}{z - y} \cdot t\frac{\sqrt[3]{x - y} \cdot \sqrt[3]{x - y}}{\sqrt[3]{z - y} \cdot \sqrt[3]{z - y}} \cdot \left(\frac{\sqrt[3]{x - y}}{\sqrt[3]{z - y}} \cdot t\right)double f(double x, double y, double z, double t) {
double r568676 = x;
double r568677 = y;
double r568678 = r568676 - r568677;
double r568679 = z;
double r568680 = r568679 - r568677;
double r568681 = r568678 / r568680;
double r568682 = t;
double r568683 = r568681 * r568682;
return r568683;
}
double f(double x, double y, double z, double t) {
double r568684 = x;
double r568685 = y;
double r568686 = r568684 - r568685;
double r568687 = cbrt(r568686);
double r568688 = r568687 * r568687;
double r568689 = z;
double r568690 = r568689 - r568685;
double r568691 = cbrt(r568690);
double r568692 = r568691 * r568691;
double r568693 = r568688 / r568692;
double r568694 = r568687 / r568691;
double r568695 = t;
double r568696 = r568694 * r568695;
double r568697 = r568693 * r568696;
return r568697;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t
Results
| Original | 2.1 |
|---|---|
| Target | 2.1 |
| Herbie | 1.0 |
Initial program 2.1
rmApplied add-cube-cbrt3.2
Applied add-cube-cbrt2.9
Applied times-frac2.9
Applied associate-*l*1.0
Final simplification1.0
herbie shell --seed 2020060 +o rules:numerics
(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))