\frac{x \cdot y + z \cdot \left(t - a\right)}{y + z \cdot \left(b - y\right)}\frac{z \cdot \left(t - a\right) + x \cdot y}{\left(b - y\right) \cdot z + y}double f(double x, double y, double z, double t, double a, double b) {
double r47447387 = x;
double r47447388 = y;
double r47447389 = r47447387 * r47447388;
double r47447390 = z;
double r47447391 = t;
double r47447392 = a;
double r47447393 = r47447391 - r47447392;
double r47447394 = r47447390 * r47447393;
double r47447395 = r47447389 + r47447394;
double r47447396 = b;
double r47447397 = r47447396 - r47447388;
double r47447398 = r47447390 * r47447397;
double r47447399 = r47447388 + r47447398;
double r47447400 = r47447395 / r47447399;
return r47447400;
}
double f(double x, double y, double z, double t, double a, double b) {
double r47447401 = z;
double r47447402 = t;
double r47447403 = a;
double r47447404 = r47447402 - r47447403;
double r47447405 = r47447401 * r47447404;
double r47447406 = x;
double r47447407 = y;
double r47447408 = r47447406 * r47447407;
double r47447409 = r47447405 + r47447408;
double r47447410 = b;
double r47447411 = r47447410 - r47447407;
double r47447412 = r47447411 * r47447401;
double r47447413 = r47447412 + r47447407;
double r47447414 = r47447409 / r47447413;
return r47447414;
}




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 | 22.9 |
|---|---|
| Target | 17.8 |
| Herbie | 22.9 |
Initial program 22.9
Final simplification22.9
herbie shell --seed 2019171
(FPCore (x y z t a b)
:name "Development.Shake.Progress:decay from shake-0.15.5"
:herbie-target
(- (/ (+ (* z t) (* y x)) (+ y (* z (- b y)))) (/ a (+ (- b y) (/ y z))))
(/ (+ (* x y) (* z (- t a))) (+ y (* z (- b y)))))