Average Error: 3.6 → 1.3
Time: 7.3s
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.888010628839333 \cdot 10^{-236}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \mathsf{fma}\left(z \cdot \sqrt{t + a}, \frac{1}{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 \left(\mathsf{fma}\left(z, \frac{\sqrt{t + a}}{t}, -\left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right) + \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right) \cdot \left(\left(-\left(b - c\right)\right) + \left(b - c\right)\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.888010628839333 \cdot 10^{-236}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \mathsf{fma}\left(z \cdot \sqrt{t + a}, \frac{1}{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 \left(\mathsf{fma}\left(z, \frac{\sqrt{t + a}}{t}, -\left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right) + \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right) \cdot \left(\left(-\left(b - c\right)\right) + \left(b - c\right)\right)\right)}}\\

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r61177 = x;
        double r61178 = y;
        double r61179 = 2.0;
        double r61180 = z;
        double r61181 = t;
        double r61182 = a;
        double r61183 = r61181 + r61182;
        double r61184 = sqrt(r61183);
        double r61185 = r61180 * r61184;
        double r61186 = r61185 / r61181;
        double r61187 = b;
        double r61188 = c;
        double r61189 = r61187 - r61188;
        double r61190 = 5.0;
        double r61191 = 6.0;
        double r61192 = r61190 / r61191;
        double r61193 = r61182 + r61192;
        double r61194 = 3.0;
        double r61195 = r61181 * r61194;
        double r61196 = r61179 / r61195;
        double r61197 = r61193 - r61196;
        double r61198 = r61189 * r61197;
        double r61199 = r61186 - r61198;
        double r61200 = r61179 * r61199;
        double r61201 = exp(r61200);
        double r61202 = r61178 * r61201;
        double r61203 = r61177 + r61202;
        double r61204 = r61177 / r61203;
        return r61204;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r61205 = t;
        double r61206 = 1.888010628839333e-236;
        bool r61207 = r61205 <= r61206;
        double r61208 = x;
        double r61209 = y;
        double r61210 = 2.0;
        double r61211 = z;
        double r61212 = a;
        double r61213 = r61205 + r61212;
        double r61214 = sqrt(r61213);
        double r61215 = r61211 * r61214;
        double r61216 = 1.0;
        double r61217 = r61216 / r61205;
        double r61218 = b;
        double r61219 = c;
        double r61220 = r61218 - r61219;
        double r61221 = 5.0;
        double r61222 = 6.0;
        double r61223 = r61221 / r61222;
        double r61224 = r61212 + r61223;
        double r61225 = 3.0;
        double r61226 = r61205 * r61225;
        double r61227 = r61210 / r61226;
        double r61228 = r61224 - r61227;
        double r61229 = r61220 * r61228;
        double r61230 = -r61229;
        double r61231 = fma(r61215, r61217, r61230);
        double r61232 = r61210 * r61231;
        double r61233 = exp(r61232);
        double r61234 = r61209 * r61233;
        double r61235 = r61208 + r61234;
        double r61236 = r61208 / r61235;
        double r61237 = r61214 / r61205;
        double r61238 = fma(r61211, r61237, r61230);
        double r61239 = -r61220;
        double r61240 = r61239 + r61220;
        double r61241 = r61228 * r61240;
        double r61242 = r61238 + r61241;
        double r61243 = r61210 * r61242;
        double r61244 = exp(r61243);
        double r61245 = r61209 * r61244;
        double r61246 = r61208 + r61245;
        double r61247 = r61208 / r61246;
        double r61248 = r61207 ? r61236 : r61247;
        return r61248;
}

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.888010628839333e-236

    1. Initial program 5.6

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

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

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

    if 1.888010628839333e-236 < t

    1. Initial program 2.7

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

      \[\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.3

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

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

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

      \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\mathsf{fma}\left(z, \frac{\sqrt{t + a}}{t}, -\left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right) + \color{blue}{\left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right) \cdot \left(\left(-\left(b - c\right)\right) + \left(b - c\right)\right)}\right)}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification1.3

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

Reproduce

herbie shell --seed 2020036 +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)))))))))))