\frac{x \cdot y + z \cdot \left(t - a\right)}{y + z \cdot \left(b - y\right)}\begin{array}{l}
\mathbf{if}\;z \le -7.71025579622562754 \cdot 10^{72} \lor \neg \left(z \le 7.73695011696723767 \cdot 10^{43}\right):\\
\;\;\;\;\frac{t}{b} - \frac{a}{b}\\
\mathbf{else}:\\
\;\;\;\;\frac{z \cdot \left(t - a\right) + x \cdot y}{\left(z \cdot b + y\right) - z \cdot y}\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r717319 = x;
double r717320 = y;
double r717321 = r717319 * r717320;
double r717322 = z;
double r717323 = t;
double r717324 = a;
double r717325 = r717323 - r717324;
double r717326 = r717322 * r717325;
double r717327 = r717321 + r717326;
double r717328 = b;
double r717329 = r717328 - r717320;
double r717330 = r717322 * r717329;
double r717331 = r717320 + r717330;
double r717332 = r717327 / r717331;
return r717332;
}
double f(double x, double y, double z, double t, double a, double b) {
double r717333 = z;
double r717334 = -7.710255796225628e+72;
bool r717335 = r717333 <= r717334;
double r717336 = 7.736950116967238e+43;
bool r717337 = r717333 <= r717336;
double r717338 = !r717337;
bool r717339 = r717335 || r717338;
double r717340 = t;
double r717341 = b;
double r717342 = r717340 / r717341;
double r717343 = a;
double r717344 = r717343 / r717341;
double r717345 = r717342 - r717344;
double r717346 = r717340 - r717343;
double r717347 = r717333 * r717346;
double r717348 = x;
double r717349 = y;
double r717350 = r717348 * r717349;
double r717351 = r717347 + r717350;
double r717352 = r717333 * r717341;
double r717353 = r717352 + r717349;
double r717354 = r717333 * r717349;
double r717355 = r717353 - r717354;
double r717356 = r717351 / r717355;
double r717357 = r717339 ? r717345 : r717356;
return r717357;
}




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.1 |
| Herbie | 20.4 |
if z < -7.710255796225628e+72 or 7.736950116967238e+43 < z Initial program 42.5
rmApplied clear-num42.6
rmApplied sub-neg42.6
Applied distribute-lft-in42.8
Applied associate-+r+42.8
Simplified42.8
Taylor expanded around inf 34.9
if -7.710255796225628e+72 < z < 7.736950116967238e+43Initial program 10.6
rmApplied clear-num10.7
rmApplied sub-neg10.7
Applied distribute-lft-in10.7
Applied associate-+r+10.7
Simplified10.7
rmApplied *-un-lft-identity10.7
Applied *-un-lft-identity10.7
Applied times-frac10.7
Applied add-cube-cbrt10.7
Applied times-frac10.7
Simplified10.7
Simplified10.6
Final simplification20.4
herbie shell --seed 2020046
(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)))))