Average Error: 4.0 → 4.6
Time: 26.8s
Precision: 64
\[\frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\]
\[\begin{array}{l} \mathbf{if}\;b - c \le -1.3562954072489081 \cdot 10^{+104}:\\ \;\;\;\;\frac{x}{x + e^{\left(\left(\left(\frac{\sqrt{a + t}}{t}\right)\right) \cdot z - \left(b - c\right) \cdot \left(\left(\frac{5.0}{6.0} + a\right) - \frac{2.0}{3.0 \cdot t}\right)\right) \cdot 2.0} \cdot y}\\ \mathbf{elif}\;b - c \le 2.13457590843716 \cdot 10^{-161}:\\ \;\;\;\;\frac{x}{x + e^{\left(\frac{\sqrt{a + t}}{t} \cdot z - \left(\left(\frac{5.0}{6.0} + a\right) - \left(\left(\frac{2.0}{3.0 \cdot t}\right)\right)\right) \cdot \left(b - c\right)\right) \cdot 2.0} \cdot y}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + e^{\left(\left(\left(\frac{\sqrt{a + t}}{t}\right)\right) \cdot z - \left(b - c\right) \cdot \left(\left(\frac{5.0}{6.0} + a\right) - \frac{2.0}{3.0 \cdot t}\right)\right) \cdot 2.0} \cdot y}\\ \end{array}\]
\frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}
\begin{array}{l}
\mathbf{if}\;b - c \le -1.3562954072489081 \cdot 10^{+104}:\\
\;\;\;\;\frac{x}{x + e^{\left(\left(\left(\frac{\sqrt{a + t}}{t}\right)\right) \cdot z - \left(b - c\right) \cdot \left(\left(\frac{5.0}{6.0} + a\right) - \frac{2.0}{3.0 \cdot t}\right)\right) \cdot 2.0} \cdot y}\\

\mathbf{elif}\;b - c \le 2.13457590843716 \cdot 10^{-161}:\\
\;\;\;\;\frac{x}{x + e^{\left(\frac{\sqrt{a + t}}{t} \cdot z - \left(\left(\frac{5.0}{6.0} + a\right) - \left(\left(\frac{2.0}{3.0 \cdot t}\right)\right)\right) \cdot \left(b - c\right)\right) \cdot 2.0} \cdot y}\\

\mathbf{else}:\\
\;\;\;\;\frac{x}{x + e^{\left(\left(\left(\frac{\sqrt{a + t}}{t}\right)\right) \cdot z - \left(b - c\right) \cdot \left(\left(\frac{5.0}{6.0} + a\right) - \frac{2.0}{3.0 \cdot t}\right)\right) \cdot 2.0} \cdot y}\\

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r2962205 = x;
        double r2962206 = y;
        double r2962207 = 2.0;
        double r2962208 = z;
        double r2962209 = t;
        double r2962210 = a;
        double r2962211 = r2962209 + r2962210;
        double r2962212 = sqrt(r2962211);
        double r2962213 = r2962208 * r2962212;
        double r2962214 = r2962213 / r2962209;
        double r2962215 = b;
        double r2962216 = c;
        double r2962217 = r2962215 - r2962216;
        double r2962218 = 5.0;
        double r2962219 = 6.0;
        double r2962220 = r2962218 / r2962219;
        double r2962221 = r2962210 + r2962220;
        double r2962222 = 3.0;
        double r2962223 = r2962209 * r2962222;
        double r2962224 = r2962207 / r2962223;
        double r2962225 = r2962221 - r2962224;
        double r2962226 = r2962217 * r2962225;
        double r2962227 = r2962214 - r2962226;
        double r2962228 = r2962207 * r2962227;
        double r2962229 = exp(r2962228);
        double r2962230 = r2962206 * r2962229;
        double r2962231 = r2962205 + r2962230;
        double r2962232 = r2962205 / r2962231;
        return r2962232;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r2962233 = b;
        double r2962234 = c;
        double r2962235 = r2962233 - r2962234;
        double r2962236 = -1.3562954072489081e+104;
        bool r2962237 = r2962235 <= r2962236;
        double r2962238 = x;
        double r2962239 = a;
        double r2962240 = t;
        double r2962241 = r2962239 + r2962240;
        double r2962242 = sqrt(r2962241);
        double r2962243 = r2962242 / r2962240;
        double r2962244 = /* ERROR: no posit support in C */;
        double r2962245 = /* ERROR: no posit support in C */;
        double r2962246 = z;
        double r2962247 = r2962245 * r2962246;
        double r2962248 = 5.0;
        double r2962249 = 6.0;
        double r2962250 = r2962248 / r2962249;
        double r2962251 = r2962250 + r2962239;
        double r2962252 = 2.0;
        double r2962253 = 3.0;
        double r2962254 = r2962253 * r2962240;
        double r2962255 = r2962252 / r2962254;
        double r2962256 = r2962251 - r2962255;
        double r2962257 = r2962235 * r2962256;
        double r2962258 = r2962247 - r2962257;
        double r2962259 = r2962258 * r2962252;
        double r2962260 = exp(r2962259);
        double r2962261 = y;
        double r2962262 = r2962260 * r2962261;
        double r2962263 = r2962238 + r2962262;
        double r2962264 = r2962238 / r2962263;
        double r2962265 = 2.13457590843716e-161;
        bool r2962266 = r2962235 <= r2962265;
        double r2962267 = r2962243 * r2962246;
        double r2962268 = /* ERROR: no posit support in C */;
        double r2962269 = /* ERROR: no posit support in C */;
        double r2962270 = r2962251 - r2962269;
        double r2962271 = r2962270 * r2962235;
        double r2962272 = r2962267 - r2962271;
        double r2962273 = r2962272 * r2962252;
        double r2962274 = exp(r2962273);
        double r2962275 = r2962274 * r2962261;
        double r2962276 = r2962238 + r2962275;
        double r2962277 = r2962238 / r2962276;
        double r2962278 = r2962266 ? r2962277 : r2962264;
        double r2962279 = r2962237 ? r2962264 : r2962278;
        return r2962279;
}

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 (- b c) < -1.3562954072489081e+104 or 2.13457590843716e-161 < (- b c)

    1. Initial program 5.0

      \[\frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity5.0

      \[\leadsto \frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{\color{blue}{1 \cdot t}} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\]
    4. Applied times-frac4.4

      \[\leadsto \frac{x}{x + y \cdot e^{2.0 \cdot \left(\color{blue}{\frac{z}{1} \cdot \frac{\sqrt{t + a}}{t}} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\]
    5. Simplified4.4

      \[\leadsto \frac{x}{x + y \cdot e^{2.0 \cdot \left(\color{blue}{z} \cdot \frac{\sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\]
    6. Using strategy rm
    7. Applied insert-posit164.8

      \[\leadsto \frac{x}{x + y \cdot e^{2.0 \cdot \left(z \cdot \color{blue}{\left(\left(\frac{\sqrt{t + a}}{t}\right)\right)} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\]

    if -1.3562954072489081e+104 < (- b c) < 2.13457590843716e-161

    1. Initial program 1.2

      \[\frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity1.2

      \[\leadsto \frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{\color{blue}{1 \cdot t}} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\]
    4. Applied times-frac1.3

      \[\leadsto \frac{x}{x + y \cdot e^{2.0 \cdot \left(\color{blue}{\frac{z}{1} \cdot \frac{\sqrt{t + a}}{t}} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\]
    5. Simplified1.3

      \[\leadsto \frac{x}{x + y \cdot e^{2.0 \cdot \left(\color{blue}{z} \cdot \frac{\sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right)}}\]
    6. Using strategy rm
    7. Applied insert-posit164.1

      \[\leadsto \frac{x}{x + y \cdot e^{2.0 \cdot \left(z \cdot \frac{\sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \color{blue}{\left(\left(\frac{2.0}{t \cdot 3.0}\right)\right)}\right)\right)}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification4.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;b - c \le -1.3562954072489081 \cdot 10^{+104}:\\ \;\;\;\;\frac{x}{x + e^{\left(\left(\left(\frac{\sqrt{a + t}}{t}\right)\right) \cdot z - \left(b - c\right) \cdot \left(\left(\frac{5.0}{6.0} + a\right) - \frac{2.0}{3.0 \cdot t}\right)\right) \cdot 2.0} \cdot y}\\ \mathbf{elif}\;b - c \le 2.13457590843716 \cdot 10^{-161}:\\ \;\;\;\;\frac{x}{x + e^{\left(\frac{\sqrt{a + t}}{t} \cdot z - \left(\left(\frac{5.0}{6.0} + a\right) - \left(\left(\frac{2.0}{3.0 \cdot t}\right)\right)\right) \cdot \left(b - c\right)\right) \cdot 2.0} \cdot y}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + e^{\left(\left(\left(\frac{\sqrt{a + t}}{t}\right)\right) \cdot z - \left(b - c\right) \cdot \left(\left(\frac{5.0}{6.0} + a\right) - \frac{2.0}{3.0 \cdot t}\right)\right) \cdot 2.0} \cdot y}\\ \end{array}\]

Reproduce

herbie shell --seed 2019164 
(FPCore (x y z t a b c)
  :name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2"
  (/ x (+ x (* y (exp (* 2.0 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5.0 6.0)) (/ 2.0 (* t 3.0)))))))))))