\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 r638482 = x;
double r638483 = y;
double r638484 = r638482 * r638483;
double r638485 = z;
double r638486 = t;
double r638487 = a;
double r638488 = r638486 - r638487;
double r638489 = r638485 * r638488;
double r638490 = r638484 + r638489;
double r638491 = b;
double r638492 = r638491 - r638483;
double r638493 = r638485 * r638492;
double r638494 = r638483 + r638493;
double r638495 = r638490 / r638494;
return r638495;
}
double f(double x, double y, double z, double t, double a, double b) {
double r638496 = x;
double r638497 = y;
double r638498 = r638496 * r638497;
double r638499 = z;
double r638500 = t;
double r638501 = a;
double r638502 = r638500 - r638501;
double r638503 = r638499 * r638502;
double r638504 = r638498 + r638503;
double r638505 = b;
double r638506 = r638505 - r638497;
double r638507 = r638499 * r638506;
double r638508 = r638497 + r638507;
double r638509 = r638504 / r638508;
return r638509;
}




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.2 |
| Herbie | 23.5 |
Initial program 23.5
Final simplification23.5
herbie shell --seed 2019305
(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)))))