\frac{x \cdot y + z \cdot \left(t - a\right)}{y + z \cdot \left(b - y\right)}\begin{array}{l}
\mathbf{if}\;z \le -1.219479179179928752539792709093514277923 \cdot 10^{112}:\\
\;\;\;\;\frac{t}{b} - \frac{a}{b}\\
\mathbf{elif}\;z \le 5.393088177919525543588651858528807956168 \cdot 10^{82}:\\
\;\;\;\;\left(z \cdot \left(t - a\right) + x \cdot y\right) \cdot \frac{1}{z \cdot \left(b - y\right) + y}\\
\mathbf{else}:\\
\;\;\;\;\frac{t}{b} - \frac{a}{b}\\
\end{array}double f(double x, double y, double z, double t, double a, double b) {
double r37410281 = x;
double r37410282 = y;
double r37410283 = r37410281 * r37410282;
double r37410284 = z;
double r37410285 = t;
double r37410286 = a;
double r37410287 = r37410285 - r37410286;
double r37410288 = r37410284 * r37410287;
double r37410289 = r37410283 + r37410288;
double r37410290 = b;
double r37410291 = r37410290 - r37410282;
double r37410292 = r37410284 * r37410291;
double r37410293 = r37410282 + r37410292;
double r37410294 = r37410289 / r37410293;
return r37410294;
}
double f(double x, double y, double z, double t, double a, double b) {
double r37410295 = z;
double r37410296 = -1.2194791791799288e+112;
bool r37410297 = r37410295 <= r37410296;
double r37410298 = t;
double r37410299 = b;
double r37410300 = r37410298 / r37410299;
double r37410301 = a;
double r37410302 = r37410301 / r37410299;
double r37410303 = r37410300 - r37410302;
double r37410304 = 5.3930881779195255e+82;
bool r37410305 = r37410295 <= r37410304;
double r37410306 = r37410298 - r37410301;
double r37410307 = r37410295 * r37410306;
double r37410308 = x;
double r37410309 = y;
double r37410310 = r37410308 * r37410309;
double r37410311 = r37410307 + r37410310;
double r37410312 = 1.0;
double r37410313 = r37410299 - r37410309;
double r37410314 = r37410295 * r37410313;
double r37410315 = r37410314 + r37410309;
double r37410316 = r37410312 / r37410315;
double r37410317 = r37410311 * r37410316;
double r37410318 = r37410305 ? r37410317 : r37410303;
double r37410319 = r37410297 ? r37410303 : r37410318;
return r37410319;
}




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 | 17.9 |
| Herbie | 19.3 |
if z < -1.2194791791799288e+112 or 5.3930881779195255e+82 < z Initial program 46.0
rmApplied add-cube-cbrt46.2
Applied associate-*l*46.2
rmApplied clear-num46.2
Simplified46.0
Taylor expanded around inf 33.9
if -1.2194791791799288e+112 < z < 5.3930881779195255e+82Initial program 11.9
rmApplied div-inv12.0
Final simplification19.3
herbie shell --seed 2019172
(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)))))