Average Error: 4.0 → 2.0
Time: 15.0s
Precision: 64
\[\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 -6.177513430816546 \cdot 10^{-254} \lor \neg \left(t \le 3.7572636500080666 \cdot 10^{-270}\right):\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \mathsf{fma}\left(\frac{z}{1}, \frac{\sqrt{t + a}}{t}, -\left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \frac{\left(z \cdot \sqrt{t + a}\right) \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right) - t \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)}{t \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right)}}}\\ \end{array}\]
\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 -6.177513430816546 \cdot 10^{-254} \lor \neg \left(t \le 3.7572636500080666 \cdot 10^{-270}\right):\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \mathsf{fma}\left(\frac{z}{1}, \frac{\sqrt{t + a}}{t}, -\left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\\

\mathbf{else}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \frac{\left(z \cdot \sqrt{t + a}\right) \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right) - t \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)}{t \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 r87327 = x;
        double r87328 = y;
        double r87329 = 2.0;
        double r87330 = z;
        double r87331 = t;
        double r87332 = a;
        double r87333 = r87331 + r87332;
        double r87334 = sqrt(r87333);
        double r87335 = r87330 * r87334;
        double r87336 = r87335 / r87331;
        double r87337 = b;
        double r87338 = c;
        double r87339 = r87337 - r87338;
        double r87340 = 5.0;
        double r87341 = 6.0;
        double r87342 = r87340 / r87341;
        double r87343 = r87332 + r87342;
        double r87344 = 3.0;
        double r87345 = r87331 * r87344;
        double r87346 = r87329 / r87345;
        double r87347 = r87343 - r87346;
        double r87348 = r87339 * r87347;
        double r87349 = r87336 - r87348;
        double r87350 = r87329 * r87349;
        double r87351 = exp(r87350);
        double r87352 = r87328 * r87351;
        double r87353 = r87327 + r87352;
        double r87354 = r87327 / r87353;
        return r87354;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r87355 = t;
        double r87356 = -6.177513430816546e-254;
        bool r87357 = r87355 <= r87356;
        double r87358 = 3.7572636500080666e-270;
        bool r87359 = r87355 <= r87358;
        double r87360 = !r87359;
        bool r87361 = r87357 || r87360;
        double r87362 = x;
        double r87363 = y;
        double r87364 = 2.0;
        double r87365 = z;
        double r87366 = 1.0;
        double r87367 = r87365 / r87366;
        double r87368 = a;
        double r87369 = r87355 + r87368;
        double r87370 = sqrt(r87369);
        double r87371 = r87370 / r87355;
        double r87372 = b;
        double r87373 = c;
        double r87374 = r87372 - r87373;
        double r87375 = 5.0;
        double r87376 = 6.0;
        double r87377 = r87375 / r87376;
        double r87378 = r87368 + r87377;
        double r87379 = 3.0;
        double r87380 = r87355 * r87379;
        double r87381 = r87364 / r87380;
        double r87382 = r87378 - r87381;
        double r87383 = r87374 * r87382;
        double r87384 = -r87383;
        double r87385 = fma(r87367, r87371, r87384);
        double r87386 = r87364 * r87385;
        double r87387 = exp(r87386);
        double r87388 = r87363 * r87387;
        double r87389 = r87362 + r87388;
        double r87390 = r87362 / r87389;
        double r87391 = r87365 * r87370;
        double r87392 = r87368 - r87377;
        double r87393 = r87392 * r87380;
        double r87394 = r87391 * r87393;
        double r87395 = r87368 * r87368;
        double r87396 = r87377 * r87377;
        double r87397 = r87395 - r87396;
        double r87398 = r87397 * r87380;
        double r87399 = r87392 * r87364;
        double r87400 = r87398 - r87399;
        double r87401 = r87374 * r87400;
        double r87402 = r87355 * r87401;
        double r87403 = r87394 - r87402;
        double r87404 = r87355 * r87393;
        double r87405 = r87403 / r87404;
        double r87406 = r87364 * r87405;
        double r87407 = exp(r87406);
        double r87408 = r87363 * r87407;
        double r87409 = r87362 + r87408;
        double r87410 = r87362 / r87409;
        double r87411 = r87361 ? r87390 : r87410;
        return r87411;
}

Error

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

Derivation

  1. Split input into 2 regimes
  2. if t < -6.177513430816546e-254 or 3.7572636500080666e-270 < t

    1. Initial program 3.4

      \[\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)}}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity3.4

      \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{\color{blue}{1 \cdot t}} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\]
    4. Applied times-frac2.5

      \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\color{blue}{\frac{z}{1} \cdot \frac{\sqrt{t + a}}{t}} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\]
    5. Applied fma-neg1.4

      \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \color{blue}{\mathsf{fma}\left(\frac{z}{1}, \frac{\sqrt{t + a}}{t}, -\left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}}\]

    if -6.177513430816546e-254 < t < 3.7572636500080666e-270

    1. Initial program 11.8

      \[\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)}}\]
    2. Using strategy rm
    3. Applied flip-+15.7

      \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\color{blue}{\frac{a \cdot a - \frac{5}{6} \cdot \frac{5}{6}}{a - \frac{5}{6}}} - \frac{2}{t \cdot 3}\right)\right)}}\]
    4. Applied frac-sub15.7

      \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \color{blue}{\frac{\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}{\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)}}\right)}}\]
    5. Applied associate-*r/15.7

      \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \color{blue}{\frac{\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)}{\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)}}\right)}}\]
    6. Applied frac-sub10.8

      \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \color{blue}{\frac{\left(z \cdot \sqrt{t + a}\right) \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right) - t \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)}{t \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right)}}}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification2.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -6.177513430816546 \cdot 10^{-254} \lor \neg \left(t \le 3.7572636500080666 \cdot 10^{-270}\right):\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \mathsf{fma}\left(\frac{z}{1}, \frac{\sqrt{t + a}}{t}, -\left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \frac{\left(z \cdot \sqrt{t + a}\right) \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right) - t \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)}{t \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right)}}}\\ \end{array}\]

Reproduce

herbie shell --seed 2020089 +o rules:numerics
(FPCore (x y z t a b c)
  :name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2"
  :precision binary64
  (/ x (+ x (* y (exp (* 2 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5 6)) (/ 2 (* t 3)))))))))))