\frac{x \cdot y + z \cdot \left(t - a\right)}{y + z \cdot \left(b - y\right)}\frac{x \cdot y + z \cdot \left(t - a\right)}{y + z \cdot \left(b - y\right)}double f(double x, double y, double z, double t, double a, double b) {
double r737845 = x;
double r737846 = y;
double r737847 = r737845 * r737846;
double r737848 = z;
double r737849 = t;
double r737850 = a;
double r737851 = r737849 - r737850;
double r737852 = r737848 * r737851;
double r737853 = r737847 + r737852;
double r737854 = b;
double r737855 = r737854 - r737846;
double r737856 = r737848 * r737855;
double r737857 = r737846 + r737856;
double r737858 = r737853 / r737857;
return r737858;
}
double f(double x, double y, double z, double t, double a, double b) {
double r737859 = x;
double r737860 = y;
double r737861 = r737859 * r737860;
double r737862 = z;
double r737863 = t;
double r737864 = a;
double r737865 = r737863 - r737864;
double r737866 = r737862 * r737865;
double r737867 = r737861 + r737866;
double r737868 = b;
double r737869 = r737868 - r737860;
double r737870 = r737862 * r737869;
double r737871 = r737860 + r737870;
double r737872 = r737867 / r737871;
return r737872;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b
Results
| Original | 23.5 |
|---|---|
| Target | 18.5 |
| Herbie | 23.5 |
Initial program 23.5
Final simplification23.5
herbie shell --seed 2020034
(FPCore (x y z t a b)
:name "Development.Shake.Progress:decay from shake-0.15.5"
:precision binary64
:herbie-target
(- (/ (+ (* z t) (* y x)) (+ y (* z (- b y)))) (/ a (+ (- b y) (/ y z))))
(/ (+ (* x y) (* z (- t a))) (+ y (* z (- b y)))))