\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 r1472106 = x;
double r1472107 = y;
double r1472108 = r1472106 * r1472107;
double r1472109 = z;
double r1472110 = t;
double r1472111 = a;
double r1472112 = r1472110 - r1472111;
double r1472113 = r1472109 * r1472112;
double r1472114 = r1472108 + r1472113;
double r1472115 = b;
double r1472116 = r1472115 - r1472107;
double r1472117 = r1472109 * r1472116;
double r1472118 = r1472107 + r1472117;
double r1472119 = r1472114 / r1472118;
return r1472119;
}
double f(double x, double y, double z, double t, double a, double b) {
double r1472120 = x;
double r1472121 = y;
double r1472122 = r1472120 * r1472121;
double r1472123 = z;
double r1472124 = t;
double r1472125 = a;
double r1472126 = r1472124 - r1472125;
double r1472127 = r1472123 * r1472126;
double r1472128 = r1472122 + r1472127;
double r1472129 = b;
double r1472130 = r1472129 - r1472121;
double r1472131 = r1472123 * r1472130;
double r1472132 = r1472121 + r1472131;
double r1472133 = r1472128 / r1472132;
return r1472133;
}




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.3 |
|---|---|
| Target | 18.1 |
| Herbie | 23.3 |
Initial program 23.3
Final simplification23.3
herbie shell --seed 2019198
(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)))))