Average Error: 4.1 → 6.2
Time: 1.6m
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}\;t \le -1.734220830051257 \cdot 10^{-93}:\\ \;\;\;\;\frac{x}{x + e^{\left(\frac{\left(\left(\sqrt{t + a} \cdot z\right)\right)}{t} - \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{3.0 \cdot t}\right) \cdot \left(b - c\right)\right) \cdot 2.0} \cdot y}\\ \mathbf{elif}\;t \le 2.4912890196465165 \cdot 10^{-86}:\\ \;\;\;\;\frac{x}{x + e^{2.0 \cdot \frac{\sqrt{t + a} \cdot \left(z \cdot \left(\left(a - \frac{5.0}{6.0}\right) \cdot \left(3.0 \cdot t\right)\right)\right) - \left(t \cdot \left(\left(\left(a - \frac{5.0}{6.0}\right) \cdot \left(3.0 \cdot t\right)\right) \cdot \left(a + \frac{5.0}{6.0}\right) - \left(a - \frac{5.0}{6.0}\right) \cdot 2.0\right)\right) \cdot \left(b - c\right)}{\left(\left(a - \frac{5.0}{6.0}\right) \cdot \left(3.0 \cdot t\right)\right) \cdot t}} \cdot y}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + e^{\left(\frac{\left(\left(\sqrt{t + a} \cdot z\right)\right)}{t} - \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{3.0 \cdot t}\right) \cdot \left(b - c\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}\;t \le -1.734220830051257 \cdot 10^{-93}:\\
\;\;\;\;\frac{x}{x + e^{\left(\frac{\left(\left(\sqrt{t + a} \cdot z\right)\right)}{t} - \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{3.0 \cdot t}\right) \cdot \left(b - c\right)\right) \cdot 2.0} \cdot y}\\

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

\mathbf{else}:\\
\;\;\;\;\frac{x}{x + e^{\left(\frac{\left(\left(\sqrt{t + a} \cdot z\right)\right)}{t} - \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{3.0 \cdot t}\right) \cdot \left(b - c\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 r5049759 = x;
        double r5049760 = y;
        double r5049761 = 2.0;
        double r5049762 = z;
        double r5049763 = t;
        double r5049764 = a;
        double r5049765 = r5049763 + r5049764;
        double r5049766 = sqrt(r5049765);
        double r5049767 = r5049762 * r5049766;
        double r5049768 = r5049767 / r5049763;
        double r5049769 = b;
        double r5049770 = c;
        double r5049771 = r5049769 - r5049770;
        double r5049772 = 5.0;
        double r5049773 = 6.0;
        double r5049774 = r5049772 / r5049773;
        double r5049775 = r5049764 + r5049774;
        double r5049776 = 3.0;
        double r5049777 = r5049763 * r5049776;
        double r5049778 = r5049761 / r5049777;
        double r5049779 = r5049775 - r5049778;
        double r5049780 = r5049771 * r5049779;
        double r5049781 = r5049768 - r5049780;
        double r5049782 = r5049761 * r5049781;
        double r5049783 = exp(r5049782);
        double r5049784 = r5049760 * r5049783;
        double r5049785 = r5049759 + r5049784;
        double r5049786 = r5049759 / r5049785;
        return r5049786;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r5049787 = t;
        double r5049788 = -1.734220830051257e-93;
        bool r5049789 = r5049787 <= r5049788;
        double r5049790 = x;
        double r5049791 = a;
        double r5049792 = r5049787 + r5049791;
        double r5049793 = sqrt(r5049792);
        double r5049794 = z;
        double r5049795 = r5049793 * r5049794;
        double r5049796 = /* ERROR: no posit support in C */;
        double r5049797 = /* ERROR: no posit support in C */;
        double r5049798 = r5049797 / r5049787;
        double r5049799 = 5.0;
        double r5049800 = 6.0;
        double r5049801 = r5049799 / r5049800;
        double r5049802 = r5049791 + r5049801;
        double r5049803 = 2.0;
        double r5049804 = 3.0;
        double r5049805 = r5049804 * r5049787;
        double r5049806 = r5049803 / r5049805;
        double r5049807 = r5049802 - r5049806;
        double r5049808 = b;
        double r5049809 = c;
        double r5049810 = r5049808 - r5049809;
        double r5049811 = r5049807 * r5049810;
        double r5049812 = r5049798 - r5049811;
        double r5049813 = r5049812 * r5049803;
        double r5049814 = exp(r5049813);
        double r5049815 = y;
        double r5049816 = r5049814 * r5049815;
        double r5049817 = r5049790 + r5049816;
        double r5049818 = r5049790 / r5049817;
        double r5049819 = 2.4912890196465165e-86;
        bool r5049820 = r5049787 <= r5049819;
        double r5049821 = r5049791 - r5049801;
        double r5049822 = r5049821 * r5049805;
        double r5049823 = r5049794 * r5049822;
        double r5049824 = r5049793 * r5049823;
        double r5049825 = r5049822 * r5049802;
        double r5049826 = r5049821 * r5049803;
        double r5049827 = r5049825 - r5049826;
        double r5049828 = r5049787 * r5049827;
        double r5049829 = r5049828 * r5049810;
        double r5049830 = r5049824 - r5049829;
        double r5049831 = r5049822 * r5049787;
        double r5049832 = r5049830 / r5049831;
        double r5049833 = r5049803 * r5049832;
        double r5049834 = exp(r5049833);
        double r5049835 = r5049834 * r5049815;
        double r5049836 = r5049790 + r5049835;
        double r5049837 = r5049790 / r5049836;
        double r5049838 = r5049820 ? r5049837 : r5049818;
        double r5049839 = r5049789 ? r5049818 : r5049838;
        return r5049839;
}

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.734220830051257e-93 or 2.4912890196465165e-86 < t

    1. Initial program 2.6

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

      \[\leadsto \frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{\color{blue}{\left(\left(z \cdot \sqrt{t + a}\right)\right)}}{t} - \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.734220830051257e-93 < t < 2.4912890196465165e-86

    1. Initial program 6.7

      \[\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 flip-+9.7

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

      \[\leadsto \frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \color{blue}{\frac{\left(a \cdot a - \frac{5.0}{6.0} \cdot \frac{5.0}{6.0}\right) \cdot \left(t \cdot 3.0\right) - \left(a - \frac{5.0}{6.0}\right) \cdot 2.0}{\left(a - \frac{5.0}{6.0}\right) \cdot \left(t \cdot 3.0\right)}}\right)}}\]
    5. Applied associate-*r/9.7

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

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

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

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

Reproduce

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