\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 r835442 = x;
double r835443 = y;
double r835444 = r835442 * r835443;
double r835445 = z;
double r835446 = t;
double r835447 = a;
double r835448 = r835446 - r835447;
double r835449 = r835445 * r835448;
double r835450 = r835444 + r835449;
double r835451 = b;
double r835452 = r835451 - r835443;
double r835453 = r835445 * r835452;
double r835454 = r835443 + r835453;
double r835455 = r835450 / r835454;
return r835455;
}
double f(double x, double y, double z, double t, double a, double b) {
double r835456 = x;
double r835457 = y;
double r835458 = r835456 * r835457;
double r835459 = z;
double r835460 = t;
double r835461 = a;
double r835462 = r835460 - r835461;
double r835463 = r835459 * r835462;
double r835464 = r835458 + r835463;
double r835465 = b;
double r835466 = r835465 - r835457;
double r835467 = r835459 * r835466;
double r835468 = r835457 + r835467;
double r835469 = r835464 / r835468;
return r835469;
}




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.2 |
|---|---|
| Target | 18.0 |
| Herbie | 23.2 |
Initial program 23.2
Final simplification23.2
herbie shell --seed 2020001
(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)))))