Average Error: 3.8 → 2.5
Time: 35.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}\;t \le -5.0089747297515344 \cdot 10^{-254}:\\ \;\;\;\;\frac{x}{x + e^{\mathsf{fma}\left(z, \frac{\sqrt{t + a}}{t}, \left(-\left(b - c\right)\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right) \cdot 2.0} \cdot y}\\ \mathbf{elif}\;t \le 5.358377107920803 \cdot 10^{-277}:\\ \;\;\;\;\frac{x}{\mathsf{fma}\left(y, e^{2.0 \cdot \mathsf{fma}\left(c - b, \frac{5.0}{6.0} - \left(\frac{\frac{2.0}{t}}{3.0} - a\right), \left(\left(\frac{\sqrt{t + a}}{\frac{t}{z}}\right)\right)\right)}, x\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + e^{\mathsf{fma}\left(z, \frac{\sqrt{t + a}}{t}, \left(-\left(b - c\right)\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\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 -5.0089747297515344 \cdot 10^{-254}:\\
\;\;\;\;\frac{x}{x + e^{\mathsf{fma}\left(z, \frac{\sqrt{t + a}}{t}, \left(-\left(b - c\right)\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right) \cdot 2.0} \cdot y}\\

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

\mathbf{else}:\\
\;\;\;\;\frac{x}{x + e^{\mathsf{fma}\left(z, \frac{\sqrt{t + a}}{t}, \left(-\left(b - c\right)\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\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 r2664069 = x;
        double r2664070 = y;
        double r2664071 = 2.0;
        double r2664072 = z;
        double r2664073 = t;
        double r2664074 = a;
        double r2664075 = r2664073 + r2664074;
        double r2664076 = sqrt(r2664075);
        double r2664077 = r2664072 * r2664076;
        double r2664078 = r2664077 / r2664073;
        double r2664079 = b;
        double r2664080 = c;
        double r2664081 = r2664079 - r2664080;
        double r2664082 = 5.0;
        double r2664083 = 6.0;
        double r2664084 = r2664082 / r2664083;
        double r2664085 = r2664074 + r2664084;
        double r2664086 = 3.0;
        double r2664087 = r2664073 * r2664086;
        double r2664088 = r2664071 / r2664087;
        double r2664089 = r2664085 - r2664088;
        double r2664090 = r2664081 * r2664089;
        double r2664091 = r2664078 - r2664090;
        double r2664092 = r2664071 * r2664091;
        double r2664093 = exp(r2664092);
        double r2664094 = r2664070 * r2664093;
        double r2664095 = r2664069 + r2664094;
        double r2664096 = r2664069 / r2664095;
        return r2664096;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r2664097 = t;
        double r2664098 = -5.0089747297515344e-254;
        bool r2664099 = r2664097 <= r2664098;
        double r2664100 = x;
        double r2664101 = z;
        double r2664102 = a;
        double r2664103 = r2664097 + r2664102;
        double r2664104 = sqrt(r2664103);
        double r2664105 = r2664104 / r2664097;
        double r2664106 = b;
        double r2664107 = c;
        double r2664108 = r2664106 - r2664107;
        double r2664109 = -r2664108;
        double r2664110 = 5.0;
        double r2664111 = 6.0;
        double r2664112 = r2664110 / r2664111;
        double r2664113 = r2664102 + r2664112;
        double r2664114 = 2.0;
        double r2664115 = 3.0;
        double r2664116 = r2664097 * r2664115;
        double r2664117 = r2664114 / r2664116;
        double r2664118 = r2664113 - r2664117;
        double r2664119 = r2664109 * r2664118;
        double r2664120 = fma(r2664101, r2664105, r2664119);
        double r2664121 = r2664120 * r2664114;
        double r2664122 = exp(r2664121);
        double r2664123 = y;
        double r2664124 = r2664122 * r2664123;
        double r2664125 = r2664100 + r2664124;
        double r2664126 = r2664100 / r2664125;
        double r2664127 = 5.358377107920803e-277;
        bool r2664128 = r2664097 <= r2664127;
        double r2664129 = r2664107 - r2664106;
        double r2664130 = r2664114 / r2664097;
        double r2664131 = r2664130 / r2664115;
        double r2664132 = r2664131 - r2664102;
        double r2664133 = r2664112 - r2664132;
        double r2664134 = r2664097 / r2664101;
        double r2664135 = r2664104 / r2664134;
        double r2664136 = /* ERROR: no posit support in C */;
        double r2664137 = /* ERROR: no posit support in C */;
        double r2664138 = fma(r2664129, r2664133, r2664137);
        double r2664139 = r2664114 * r2664138;
        double r2664140 = exp(r2664139);
        double r2664141 = fma(r2664123, r2664140, r2664100);
        double r2664142 = r2664100 / r2664141;
        double r2664143 = r2664128 ? r2664142 : r2664126;
        double r2664144 = r2664099 ? r2664126 : r2664143;
        return r2664144;
}

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 < -5.0089747297515344e-254 or 5.358377107920803e-277 < t

    1. Initial program 3.1

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

      \[\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-frac2.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. Applied fma-neg1.4

      \[\leadsto \frac{x}{x + y \cdot e^{2.0 \cdot \color{blue}{\mathsf{fma}\left(\frac{z}{1}, \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)}}}\]

    if -5.0089747297515344e-254 < t < 5.358377107920803e-277

    1. Initial program 12.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. Simplified7.8

      \[\leadsto \color{blue}{\frac{x}{\mathsf{fma}\left(y, e^{2.0 \cdot \mathsf{fma}\left(c - b, \frac{5.0}{6.0} - \left(\frac{\frac{2.0}{t}}{3.0} - a\right), \frac{\sqrt{a + t}}{\frac{t}{z}}\right)}, x\right)}}\]
    3. Using strategy rm
    4. Applied insert-posit1616.9

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -5.0089747297515344 \cdot 10^{-254}:\\ \;\;\;\;\frac{x}{x + e^{\mathsf{fma}\left(z, \frac{\sqrt{t + a}}{t}, \left(-\left(b - c\right)\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right) \cdot 2.0} \cdot y}\\ \mathbf{elif}\;t \le 5.358377107920803 \cdot 10^{-277}:\\ \;\;\;\;\frac{x}{\mathsf{fma}\left(y, e^{2.0 \cdot \mathsf{fma}\left(c - b, \frac{5.0}{6.0} - \left(\frac{\frac{2.0}{t}}{3.0} - a\right), \left(\left(\frac{\sqrt{t + a}}{\frac{t}{z}}\right)\right)\right)}, x\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + e^{\mathsf{fma}\left(z, \frac{\sqrt{t + a}}{t}, \left(-\left(b - c\right)\right) \cdot \left(\left(a + \frac{5.0}{6.0}\right) - \frac{2.0}{t \cdot 3.0}\right)\right) \cdot 2.0} \cdot y}\\ \end{array}\]

Reproduce

herbie shell --seed 2019158 +o rules:numerics
(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)))))))))))