Average Error: 4.0 → 6.9
Time: 28.2s
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 -6.383228782902789 \cdot 10^{-256}:\\ \;\;\;\;\frac{x}{x + e^{\left(\frac{\sqrt{t + a} \cdot z}{t} - \left(\left(\frac{5.0}{6.0} + a\right) - \left(\left(\frac{\frac{2.0}{t}}{3.0}\right)\right)\right) \cdot \left(b - c\right)\right) \cdot 2.0} \cdot y}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2.0 \cdot \left(\frac{\sqrt{t + a} \cdot z}{t} - \left(b - c\right) \cdot \left(\left(\frac{5.0}{6.0} + a\right) - \sqrt[3]{\left(\frac{\frac{2.0}{t}}{3.0} \cdot \frac{\frac{2.0}{t}}{3.0}\right) \cdot \frac{\frac{2.0}{t}}{3.0}}\right)\right)}}\\ \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 -6.383228782902789 \cdot 10^{-256}:\\
\;\;\;\;\frac{x}{x + e^{\left(\frac{\sqrt{t + a} \cdot z}{t} - \left(\left(\frac{5.0}{6.0} + a\right) - \left(\left(\frac{\frac{2.0}{t}}{3.0}\right)\right)\right) \cdot \left(b - c\right)\right) \cdot 2.0} \cdot y}\\

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

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r3176237 = x;
        double r3176238 = y;
        double r3176239 = 2.0;
        double r3176240 = z;
        double r3176241 = t;
        double r3176242 = a;
        double r3176243 = r3176241 + r3176242;
        double r3176244 = sqrt(r3176243);
        double r3176245 = r3176240 * r3176244;
        double r3176246 = r3176245 / r3176241;
        double r3176247 = b;
        double r3176248 = c;
        double r3176249 = r3176247 - r3176248;
        double r3176250 = 5.0;
        double r3176251 = 6.0;
        double r3176252 = r3176250 / r3176251;
        double r3176253 = r3176242 + r3176252;
        double r3176254 = 3.0;
        double r3176255 = r3176241 * r3176254;
        double r3176256 = r3176239 / r3176255;
        double r3176257 = r3176253 - r3176256;
        double r3176258 = r3176249 * r3176257;
        double r3176259 = r3176246 - r3176258;
        double r3176260 = r3176239 * r3176259;
        double r3176261 = exp(r3176260);
        double r3176262 = r3176238 * r3176261;
        double r3176263 = r3176237 + r3176262;
        double r3176264 = r3176237 / r3176263;
        return r3176264;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r3176265 = t;
        double r3176266 = -6.383228782902789e-256;
        bool r3176267 = r3176265 <= r3176266;
        double r3176268 = x;
        double r3176269 = a;
        double r3176270 = r3176265 + r3176269;
        double r3176271 = sqrt(r3176270);
        double r3176272 = z;
        double r3176273 = r3176271 * r3176272;
        double r3176274 = r3176273 / r3176265;
        double r3176275 = 5.0;
        double r3176276 = 6.0;
        double r3176277 = r3176275 / r3176276;
        double r3176278 = r3176277 + r3176269;
        double r3176279 = 2.0;
        double r3176280 = r3176279 / r3176265;
        double r3176281 = 3.0;
        double r3176282 = r3176280 / r3176281;
        double r3176283 = /* ERROR: no posit support in C */;
        double r3176284 = /* ERROR: no posit support in C */;
        double r3176285 = r3176278 - r3176284;
        double r3176286 = b;
        double r3176287 = c;
        double r3176288 = r3176286 - r3176287;
        double r3176289 = r3176285 * r3176288;
        double r3176290 = r3176274 - r3176289;
        double r3176291 = r3176290 * r3176279;
        double r3176292 = exp(r3176291);
        double r3176293 = y;
        double r3176294 = r3176292 * r3176293;
        double r3176295 = r3176268 + r3176294;
        double r3176296 = r3176268 / r3176295;
        double r3176297 = r3176282 * r3176282;
        double r3176298 = r3176297 * r3176282;
        double r3176299 = cbrt(r3176298);
        double r3176300 = r3176278 - r3176299;
        double r3176301 = r3176288 * r3176300;
        double r3176302 = r3176274 - r3176301;
        double r3176303 = r3176279 * r3176302;
        double r3176304 = exp(r3176303);
        double r3176305 = r3176293 * r3176304;
        double r3176306 = r3176268 + r3176305;
        double r3176307 = r3176268 / r3176306;
        double r3176308 = r3176267 ? r3176296 : r3176307;
        return r3176308;
}

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 < -6.383228782902789e-256

    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 add-cbrt-cube5.0

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

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

      \[\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-posit1625.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) - \color{blue}{\left(\left(\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)\right)}}\]
    11. Simplified6.8

      \[\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}{\left(\left(\frac{\frac{2.0}{t}}{3.0}\right)\right)}\right)\right)}}\]

    if -6.383228782902789e-256 < t

    1. Initial program 3.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 add-cbrt-cube3.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(\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-cube6.8

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

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

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

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

      \[\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)}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification6.9

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

Reproduce

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