\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}{y + z \cdot \left(b - y\right)}double f(double x, double y, double z, double t, double a, double b) {
double r39390564 = x;
double r39390565 = y;
double r39390566 = r39390564 * r39390565;
double r39390567 = z;
double r39390568 = t;
double r39390569 = a;
double r39390570 = r39390568 - r39390569;
double r39390571 = r39390567 * r39390570;
double r39390572 = r39390566 + r39390571;
double r39390573 = b;
double r39390574 = r39390573 - r39390565;
double r39390575 = r39390567 * r39390574;
double r39390576 = r39390565 + r39390575;
double r39390577 = r39390572 / r39390576;
return r39390577;
}
double f(double x, double y, double z, double t, double a, double b) {
double r39390578 = z;
double r39390579 = t;
double r39390580 = a;
double r39390581 = r39390579 - r39390580;
double r39390582 = r39390578 * r39390581;
double r39390583 = x;
double r39390584 = y;
double r39390585 = r39390583 * r39390584;
double r39390586 = r39390582 + r39390585;
double r39390587 = b;
double r39390588 = r39390587 - r39390584;
double r39390589 = r39390578 * r39390588;
double r39390590 = r39390584 + r39390589;
double r39390591 = r39390586 / r39390590;
return r39390591;
}




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.0 |
| Herbie | 23.5 |
Initial program 23.5
rmApplied clear-num23.6
rmApplied div-inv23.7
Applied associate-/r*23.7
rmApplied *-un-lft-identity23.7
Applied add-cube-cbrt23.7
Applied times-frac23.7
Applied *-un-lft-identity23.7
Applied add-cube-cbrt23.7
Applied times-frac23.7
Applied times-frac23.7
Simplified23.7
Simplified23.5
Final simplification23.5
herbie shell --seed 2019170
(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)))))