\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\begin{array}{l}
\mathbf{if}\;t \le -281574713299796459520 \lor \neg \left(t \le 3.422950075620730720749696840768394601184 \cdot 10^{-8}\right):\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z}{\sqrt[3]{t} \cdot \sqrt[3]{t}} \cdot \frac{\sqrt{t + a}}{\sqrt[3]{t}} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \log \left(e^{\frac{2}{t \cdot 3}}\right)\right)\right)}}\\
\mathbf{else}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \frac{\left(z \cdot \frac{\sqrt{t + a}}{\sqrt[3]{t}}\right) \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right) - \left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \left(\left(b - c\right) \cdot \left(\left(a \cdot a - \frac{5}{6} \cdot \frac{5}{6}\right) \cdot \left(t \cdot 3\right) - \left(a - \frac{5}{6}\right) \cdot 2\right)\right)}{\left(\sqrt[3]{t} \cdot \sqrt[3]{t}\right) \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right)}}}\\
\end{array}double f(double x, double y, double z, double t, double a, double b, double c) {
double r299334 = x;
double r299335 = y;
double r299336 = 2.0;
double r299337 = z;
double r299338 = t;
double r299339 = a;
double r299340 = r299338 + r299339;
double r299341 = sqrt(r299340);
double r299342 = r299337 * r299341;
double r299343 = r299342 / r299338;
double r299344 = b;
double r299345 = c;
double r299346 = r299344 - r299345;
double r299347 = 5.0;
double r299348 = 6.0;
double r299349 = r299347 / r299348;
double r299350 = r299339 + r299349;
double r299351 = 3.0;
double r299352 = r299338 * r299351;
double r299353 = r299336 / r299352;
double r299354 = r299350 - r299353;
double r299355 = r299346 * r299354;
double r299356 = r299343 - r299355;
double r299357 = r299336 * r299356;
double r299358 = exp(r299357);
double r299359 = r299335 * r299358;
double r299360 = r299334 + r299359;
double r299361 = r299334 / r299360;
return r299361;
}
double f(double x, double y, double z, double t, double a, double b, double c) {
double r299362 = t;
double r299363 = -2.8157471329979646e+20;
bool r299364 = r299362 <= r299363;
double r299365 = 3.422950075620731e-08;
bool r299366 = r299362 <= r299365;
double r299367 = !r299366;
bool r299368 = r299364 || r299367;
double r299369 = x;
double r299370 = y;
double r299371 = 2.0;
double r299372 = z;
double r299373 = cbrt(r299362);
double r299374 = r299373 * r299373;
double r299375 = r299372 / r299374;
double r299376 = a;
double r299377 = r299362 + r299376;
double r299378 = sqrt(r299377);
double r299379 = r299378 / r299373;
double r299380 = r299375 * r299379;
double r299381 = b;
double r299382 = c;
double r299383 = r299381 - r299382;
double r299384 = 5.0;
double r299385 = 6.0;
double r299386 = r299384 / r299385;
double r299387 = r299376 + r299386;
double r299388 = 3.0;
double r299389 = r299362 * r299388;
double r299390 = r299371 / r299389;
double r299391 = exp(r299390);
double r299392 = log(r299391);
double r299393 = r299387 - r299392;
double r299394 = r299383 * r299393;
double r299395 = r299380 - r299394;
double r299396 = r299371 * r299395;
double r299397 = exp(r299396);
double r299398 = r299370 * r299397;
double r299399 = r299369 + r299398;
double r299400 = r299369 / r299399;
double r299401 = r299372 * r299379;
double r299402 = r299376 - r299386;
double r299403 = r299402 * r299389;
double r299404 = r299401 * r299403;
double r299405 = r299376 * r299376;
double r299406 = r299386 * r299386;
double r299407 = r299405 - r299406;
double r299408 = r299407 * r299389;
double r299409 = r299402 * r299371;
double r299410 = r299408 - r299409;
double r299411 = r299383 * r299410;
double r299412 = r299374 * r299411;
double r299413 = r299404 - r299412;
double r299414 = r299374 * r299403;
double r299415 = r299413 / r299414;
double r299416 = r299371 * r299415;
double r299417 = exp(r299416);
double r299418 = r299370 * r299417;
double r299419 = r299369 + r299418;
double r299420 = r299369 / r299419;
double r299421 = r299368 ? r299400 : r299420;
return r299421;
}




Bits error versus x




Bits error versus y




Bits error versus z




Bits error versus t




Bits error versus a




Bits error versus b




Bits error versus c
Results
| Original | 4.3 |
|---|---|
| Target | 3.2 |
| Herbie | 3.0 |
if t < -2.8157471329979646e+20 or 3.422950075620731e-08 < t Initial program 3.1
rmApplied add-cube-cbrt3.1
Applied times-frac0.1
rmApplied add-log-exp0.3
if -2.8157471329979646e+20 < t < 3.422950075620731e-08Initial program 5.5
rmApplied add-cube-cbrt5.5
Applied times-frac5.7
rmApplied flip-+8.3
Applied frac-sub8.4
Applied associate-*r/8.5
Applied associate-*l/8.3
Applied frac-sub5.8
Final simplification3.0
herbie shell --seed 2019322
(FPCore (x y z t a b c)
:name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, I"
:precision binary64
:herbie-target
(if (< t -2.118326644891581e-50) (/ x (+ x (* y (exp (* 2 (- (+ (* a c) (* 0.8333333333333334 c)) (* a b))))))) (if (< t 5.196588770651547e-123) (/ x (+ x (* y (exp (* 2 (/ (- (* (* z (sqrt (+ t a))) (* (* 3 t) (- a (/ 5 6)))) (* (- (* (+ (/ 5 6) a) (* 3 t)) 2) (* (- a (/ 5 6)) (* (- b c) t)))) (* (* (* t t) 3) (- a (/ 5 6))))))))) (/ x (+ x (* y (exp (* 2 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5 6)) (/ 2 (* t 3))))))))))))
(/ x (+ x (* y (exp (* 2 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5 6)) (/ 2 (* t 3)))))))))))