Average Error: 4.0 → 4.7
Time: 1.0m
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}\;x \le -5.622640931064597 \cdot 10^{-197}:\\ \;\;\;\;\frac{x}{e^{2.0 \cdot \log \left(e^{\frac{z \cdot \sqrt{t + a}}{t} - \left(a + \left(\frac{5.0}{6.0} - \frac{\frac{2.0}{t}}{3.0}\right)\right) \cdot \left(b - c\right)}\right)} \cdot y + x}\\ \mathbf{elif}\;x \le -1.4237820514682587 \cdot 10^{-289}:\\ \;\;\;\;\frac{x}{e^{2.0 \cdot \left(\left(\frac{z}{\frac{t}{\sqrt{t + a}}} - \left(b - c\right) \cdot \left(\left(a - \frac{2.0}{3.0 \cdot t}\right) + \frac{5.0}{6.0}\right)\right)\right)} \cdot y + x}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{e^{2.0 \cdot \log \left(e^{\frac{z \cdot \sqrt{t + a}}{t} - \left(a + \left(\frac{5.0}{6.0} - \frac{\frac{2.0}{t}}{3.0}\right)\right) \cdot \left(b - c\right)}\right)} \cdot y + x}\\ \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}\;x \le -5.622640931064597 \cdot 10^{-197}:\\
\;\;\;\;\frac{x}{e^{2.0 \cdot \log \left(e^{\frac{z \cdot \sqrt{t + a}}{t} - \left(a + \left(\frac{5.0}{6.0} - \frac{\frac{2.0}{t}}{3.0}\right)\right) \cdot \left(b - c\right)}\right)} \cdot y + x}\\

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

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

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r3959550 = x;
        double r3959551 = y;
        double r3959552 = 2.0;
        double r3959553 = z;
        double r3959554 = t;
        double r3959555 = a;
        double r3959556 = r3959554 + r3959555;
        double r3959557 = sqrt(r3959556);
        double r3959558 = r3959553 * r3959557;
        double r3959559 = r3959558 / r3959554;
        double r3959560 = b;
        double r3959561 = c;
        double r3959562 = r3959560 - r3959561;
        double r3959563 = 5.0;
        double r3959564 = 6.0;
        double r3959565 = r3959563 / r3959564;
        double r3959566 = r3959555 + r3959565;
        double r3959567 = 3.0;
        double r3959568 = r3959554 * r3959567;
        double r3959569 = r3959552 / r3959568;
        double r3959570 = r3959566 - r3959569;
        double r3959571 = r3959562 * r3959570;
        double r3959572 = r3959559 - r3959571;
        double r3959573 = r3959552 * r3959572;
        double r3959574 = exp(r3959573);
        double r3959575 = r3959551 * r3959574;
        double r3959576 = r3959550 + r3959575;
        double r3959577 = r3959550 / r3959576;
        return r3959577;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r3959578 = x;
        double r3959579 = -5.622640931064597e-197;
        bool r3959580 = r3959578 <= r3959579;
        double r3959581 = 2.0;
        double r3959582 = z;
        double r3959583 = t;
        double r3959584 = a;
        double r3959585 = r3959583 + r3959584;
        double r3959586 = sqrt(r3959585);
        double r3959587 = r3959582 * r3959586;
        double r3959588 = r3959587 / r3959583;
        double r3959589 = 5.0;
        double r3959590 = 6.0;
        double r3959591 = r3959589 / r3959590;
        double r3959592 = r3959581 / r3959583;
        double r3959593 = 3.0;
        double r3959594 = r3959592 / r3959593;
        double r3959595 = r3959591 - r3959594;
        double r3959596 = r3959584 + r3959595;
        double r3959597 = b;
        double r3959598 = c;
        double r3959599 = r3959597 - r3959598;
        double r3959600 = r3959596 * r3959599;
        double r3959601 = r3959588 - r3959600;
        double r3959602 = exp(r3959601);
        double r3959603 = log(r3959602);
        double r3959604 = r3959581 * r3959603;
        double r3959605 = exp(r3959604);
        double r3959606 = y;
        double r3959607 = r3959605 * r3959606;
        double r3959608 = r3959607 + r3959578;
        double r3959609 = r3959578 / r3959608;
        double r3959610 = -1.4237820514682587e-289;
        bool r3959611 = r3959578 <= r3959610;
        double r3959612 = r3959583 / r3959586;
        double r3959613 = r3959582 / r3959612;
        double r3959614 = r3959593 * r3959583;
        double r3959615 = r3959581 / r3959614;
        double r3959616 = r3959584 - r3959615;
        double r3959617 = r3959616 + r3959591;
        double r3959618 = r3959599 * r3959617;
        double r3959619 = r3959613 - r3959618;
        double r3959620 = /* ERROR: no posit support in C */;
        double r3959621 = /* ERROR: no posit support in C */;
        double r3959622 = r3959581 * r3959621;
        double r3959623 = exp(r3959622);
        double r3959624 = r3959623 * r3959606;
        double r3959625 = r3959624 + r3959578;
        double r3959626 = r3959578 / r3959625;
        double r3959627 = r3959611 ? r3959626 : r3959609;
        double r3959628 = r3959580 ? r3959609 : r3959627;
        return r3959628;
}

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 x < -5.622640931064597e-197 or -1.4237820514682587e-289 < x

    1. Initial program 3.8

      \[\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 add-log-exp8.5

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

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

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

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

    if -5.622640931064597e-197 < x < -1.4237820514682587e-289

    1. Initial program 5.5

      \[\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 add-cbrt-cube5.5

      \[\leadsto \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 \color{blue}{\sqrt[3]{\left(3.0 \cdot 3.0\right) \cdot 3.0}}}\right)\right)}}\]
    4. Applied add-cbrt-cube9.2

      \[\leadsto \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}{\color{blue}{\sqrt[3]{\left(t \cdot t\right) \cdot t}} \cdot \sqrt[3]{\left(3.0 \cdot 3.0\right) \cdot 3.0}}\right)\right)}}\]
    5. Applied cbrt-unprod9.2

      \[\leadsto \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}{\color{blue}{\sqrt[3]{\left(\left(t \cdot t\right) \cdot t\right) \cdot \left(\left(3.0 \cdot 3.0\right) \cdot 3.0\right)}}}\right)\right)}}\]
    6. Applied add-cbrt-cube9.2

      \[\leadsto \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{\color{blue}{\sqrt[3]{\left(2.0 \cdot 2.0\right) \cdot 2.0}}}{\sqrt[3]{\left(\left(t \cdot t\right) \cdot t\right) \cdot \left(\left(3.0 \cdot 3.0\right) \cdot 3.0\right)}}\right)\right)}}\]
    7. Applied cbrt-undiv9.3

      \[\leadsto \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) - \color{blue}{\sqrt[3]{\frac{\left(2.0 \cdot 2.0\right) \cdot 2.0}{\left(\left(t \cdot t\right) \cdot t\right) \cdot \left(\left(3.0 \cdot 3.0\right) \cdot 3.0\right)}}}\right)\right)}}\]
    8. Simplified9.3

      \[\leadsto \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) - \sqrt[3]{\color{blue}{\frac{\frac{2.0}{t}}{3.0} \cdot \left(\frac{\frac{2.0}{t}}{3.0} \cdot \frac{\frac{2.0}{t}}{3.0}\right)}}\right)\right)}}\]
    9. Using strategy rm
    10. Applied insert-posit1620.1

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

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

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

Reproduce

herbie shell --seed 2019165 
(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)))))))))))