Average Error: 4.0 → 2.2
Time: 17.5s
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 -1.029506448747373373326312209414469070372 \cdot 10^{-217} \lor \neg \left(t \le 1.29654489992086596584208224323850554466 \cdot 10^{-195}\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 -1.029506448747373373326312209414469070372 \cdot 10^{-217} \lor \neg \left(t \le 1.29654489992086596584208224323850554466 \cdot 10^{-195}\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 r96235 = x;
        double r96236 = y;
        double r96237 = 2.0;
        double r96238 = z;
        double r96239 = t;
        double r96240 = a;
        double r96241 = r96239 + r96240;
        double r96242 = sqrt(r96241);
        double r96243 = r96238 * r96242;
        double r96244 = r96243 / r96239;
        double r96245 = b;
        double r96246 = c;
        double r96247 = r96245 - r96246;
        double r96248 = 5.0;
        double r96249 = 6.0;
        double r96250 = r96248 / r96249;
        double r96251 = r96240 + r96250;
        double r96252 = 3.0;
        double r96253 = r96239 * r96252;
        double r96254 = r96237 / r96253;
        double r96255 = r96251 - r96254;
        double r96256 = r96247 * r96255;
        double r96257 = r96244 - r96256;
        double r96258 = r96237 * r96257;
        double r96259 = exp(r96258);
        double r96260 = r96236 * r96259;
        double r96261 = r96235 + r96260;
        double r96262 = r96235 / r96261;
        return r96262;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r96263 = t;
        double r96264 = -1.0295064487473734e-217;
        bool r96265 = r96263 <= r96264;
        double r96266 = 1.296544899920866e-195;
        bool r96267 = r96263 <= r96266;
        double r96268 = !r96267;
        bool r96269 = r96265 || r96268;
        double r96270 = x;
        double r96271 = y;
        double r96272 = 2.0;
        double r96273 = z;
        double r96274 = 1.0;
        double r96275 = r96273 / r96274;
        double r96276 = a;
        double r96277 = r96263 + r96276;
        double r96278 = sqrt(r96277);
        double r96279 = r96278 / r96263;
        double r96280 = b;
        double r96281 = c;
        double r96282 = r96280 - r96281;
        double r96283 = 5.0;
        double r96284 = 6.0;
        double r96285 = r96283 / r96284;
        double r96286 = r96276 + r96285;
        double r96287 = 3.0;
        double r96288 = r96263 * r96287;
        double r96289 = r96272 / r96288;
        double r96290 = r96286 - r96289;
        double r96291 = r96282 * r96290;
        double r96292 = -r96291;
        double r96293 = fma(r96275, r96279, r96292);
        double r96294 = r96272 * r96293;
        double r96295 = exp(r96294);
        double r96296 = r96271 * r96295;
        double r96297 = r96270 + r96296;
        double r96298 = r96270 / r96297;
        double r96299 = r96273 * r96278;
        double r96300 = r96276 - r96285;
        double r96301 = r96300 * r96288;
        double r96302 = r96299 * r96301;
        double r96303 = r96276 * r96276;
        double r96304 = r96285 * r96285;
        double r96305 = r96303 - r96304;
        double r96306 = r96305 * r96288;
        double r96307 = r96300 * r96272;
        double r96308 = r96306 - r96307;
        double r96309 = r96282 * r96308;
        double r96310 = r96263 * r96309;
        double r96311 = r96302 - r96310;
        double r96312 = r96263 * r96301;
        double r96313 = r96311 / r96312;
        double r96314 = r96272 * r96313;
        double r96315 = exp(r96314);
        double r96316 = r96271 * r96315;
        double r96317 = r96270 + r96316;
        double r96318 = r96270 / r96317;
        double r96319 = r96269 ? r96298 : r96318;
        return r96319;
}

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 < -1.0295064487473734e-217 or 1.296544899920866e-195 < t

    1. Initial program 2.9

      \[\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-identity2.9

      \[\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-frac1.6

      \[\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-neg0.8

      \[\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 -1.0295064487473734e-217 < t < 1.296544899920866e-195

    1. Initial program 9.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-+13.8

      \[\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-sub13.8

      \[\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/13.8

      \[\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-sub9.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.2

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -1.029506448747373373326312209414469070372 \cdot 10^{-217} \lor \neg \left(t \le 1.29654489992086596584208224323850554466 \cdot 10^{-195}\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 2019346 +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)))))))))))