Average Error: 3.7 → 4.0
Time: 36.0s
Precision: 64
\[\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\]
\[\begin{array}{l} \mathbf{if}\;t \le -5.869458934952860147042895437611662296973 \cdot 10^{-296} \lor \neg \left(t \le 3.585798647479515118878164820573513844078 \cdot 10^{-110}\right):\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{0.6666666666666666296592325124947819858789}{t}\right)\right)}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \frac{\left(z \cdot \sqrt{t + a}\right) \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right) - t \cdot \left(\left(b - c\right) \cdot \left(\left(a \cdot a - \frac{5}{6} \cdot \frac{5}{6}\right) \cdot \left(t \cdot 3\right) - \left(a - \frac{5}{6}\right) \cdot 2\right)\right)}{t \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right)}}}\\ \end{array}\]
\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}
\begin{array}{l}
\mathbf{if}\;t \le -5.869458934952860147042895437611662296973 \cdot 10^{-296} \lor \neg \left(t \le 3.585798647479515118878164820573513844078 \cdot 10^{-110}\right):\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{0.6666666666666666296592325124947819858789}{t}\right)\right)}}\\

\mathbf{else}:\\
\;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \frac{\left(z \cdot \sqrt{t + a}\right) \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right) - t \cdot \left(\left(b - c\right) \cdot \left(\left(a \cdot a - \frac{5}{6} \cdot \frac{5}{6}\right) \cdot \left(t \cdot 3\right) - \left(a - \frac{5}{6}\right) \cdot 2\right)\right)}{t \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right)}}}\\

\end{array}
double f(double x, double y, double z, double t, double a, double b, double c) {
        double r336900 = x;
        double r336901 = y;
        double r336902 = 2.0;
        double r336903 = z;
        double r336904 = t;
        double r336905 = a;
        double r336906 = r336904 + r336905;
        double r336907 = sqrt(r336906);
        double r336908 = r336903 * r336907;
        double r336909 = r336908 / r336904;
        double r336910 = b;
        double r336911 = c;
        double r336912 = r336910 - r336911;
        double r336913 = 5.0;
        double r336914 = 6.0;
        double r336915 = r336913 / r336914;
        double r336916 = r336905 + r336915;
        double r336917 = 3.0;
        double r336918 = r336904 * r336917;
        double r336919 = r336902 / r336918;
        double r336920 = r336916 - r336919;
        double r336921 = r336912 * r336920;
        double r336922 = r336909 - r336921;
        double r336923 = r336902 * r336922;
        double r336924 = exp(r336923);
        double r336925 = r336901 * r336924;
        double r336926 = r336900 + r336925;
        double r336927 = r336900 / r336926;
        return r336927;
}

double f(double x, double y, double z, double t, double a, double b, double c) {
        double r336928 = t;
        double r336929 = -5.86945893495286e-296;
        bool r336930 = r336928 <= r336929;
        double r336931 = 3.585798647479515e-110;
        bool r336932 = r336928 <= r336931;
        double r336933 = !r336932;
        bool r336934 = r336930 || r336933;
        double r336935 = x;
        double r336936 = y;
        double r336937 = 2.0;
        double r336938 = z;
        double r336939 = a;
        double r336940 = r336928 + r336939;
        double r336941 = sqrt(r336940);
        double r336942 = r336938 * r336941;
        double r336943 = r336942 / r336928;
        double r336944 = b;
        double r336945 = c;
        double r336946 = r336944 - r336945;
        double r336947 = 5.0;
        double r336948 = 6.0;
        double r336949 = r336947 / r336948;
        double r336950 = r336939 + r336949;
        double r336951 = 0.6666666666666666;
        double r336952 = r336951 / r336928;
        double r336953 = r336950 - r336952;
        double r336954 = r336946 * r336953;
        double r336955 = r336943 - r336954;
        double r336956 = r336937 * r336955;
        double r336957 = exp(r336956);
        double r336958 = r336936 * r336957;
        double r336959 = r336935 + r336958;
        double r336960 = r336935 / r336959;
        double r336961 = r336939 - r336949;
        double r336962 = 3.0;
        double r336963 = r336928 * r336962;
        double r336964 = r336961 * r336963;
        double r336965 = r336942 * r336964;
        double r336966 = r336939 * r336939;
        double r336967 = r336949 * r336949;
        double r336968 = r336966 - r336967;
        double r336969 = r336968 * r336963;
        double r336970 = r336961 * r336937;
        double r336971 = r336969 - r336970;
        double r336972 = r336946 * r336971;
        double r336973 = r336928 * r336972;
        double r336974 = r336965 - r336973;
        double r336975 = r336928 * r336964;
        double r336976 = r336974 / r336975;
        double r336977 = r336937 * r336976;
        double r336978 = exp(r336977);
        double r336979 = r336936 * r336978;
        double r336980 = r336935 + r336979;
        double r336981 = r336935 / r336980;
        double r336982 = r336934 ? r336960 : r336981;
        return r336982;
}

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

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Target

Original3.7
Target2.9
Herbie4.0
\[\begin{array}{l} \mathbf{if}\;t \lt -2.118326644891581057561884576920117070548 \cdot 10^{-50}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\left(a \cdot c + 0.8333333333333333703407674875052180141211 \cdot c\right) - a \cdot b\right)}}\\ \mathbf{elif}\;t \lt 5.196588770651547088010424937268931048836 \cdot 10^{-123}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \frac{\left(z \cdot \sqrt{t + a}\right) \cdot \left(\left(3 \cdot t\right) \cdot \left(a - \frac{5}{6}\right)\right) - \left(\left(\frac{5}{6} + a\right) \cdot \left(3 \cdot t\right) - 2\right) \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(\left(b - c\right) \cdot t\right)\right)}{\left(\left(t \cdot t\right) \cdot 3\right) \cdot \left(a - \frac{5}{6}\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\\ \end{array}\]

Derivation

  1. Split input into 2 regimes
  2. if t < -5.86945893495286e-296 or 3.585798647479515e-110 < t

    1. Initial program 3.0

      \[\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\]
    2. Taylor expanded around 0 3.0

      \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \color{blue}{\frac{0.6666666666666666296592325124947819858789}{t}}\right)\right)}}\]

    if -5.86945893495286e-296 < t < 3.585798647479515e-110

    1. Initial program 6.6

      \[\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{2}{t \cdot 3}\right)\right)}}\]
    2. Using strategy rm
    3. Applied flip-+10.6

      \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\color{blue}{\frac{a \cdot a - \frac{5}{6} \cdot \frac{5}{6}}{a - \frac{5}{6}}} - \frac{2}{t \cdot 3}\right)\right)}}\]
    4. Applied frac-sub10.7

      \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \color{blue}{\frac{\left(a \cdot a - \frac{5}{6} \cdot \frac{5}{6}\right) \cdot \left(t \cdot 3\right) - \left(a - \frac{5}{6}\right) \cdot 2}{\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)}}\right)}}\]
    5. Applied associate-*r/10.7

      \[\leadsto \frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \color{blue}{\frac{\left(b - c\right) \cdot \left(\left(a \cdot a - \frac{5}{6} \cdot \frac{5}{6}\right) \cdot \left(t \cdot 3\right) - \left(a - \frac{5}{6}\right) \cdot 2\right)}{\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)}}\right)}}\]
    6. Applied frac-sub7.8

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;t \le -5.869458934952860147042895437611662296973 \cdot 10^{-296} \lor \neg \left(t \le 3.585798647479515118878164820573513844078 \cdot 10^{-110}\right):\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \left(\frac{z \cdot \sqrt{t + a}}{t} - \left(b - c\right) \cdot \left(\left(a + \frac{5}{6}\right) - \frac{0.6666666666666666296592325124947819858789}{t}\right)\right)}}\\ \mathbf{else}:\\ \;\;\;\;\frac{x}{x + y \cdot e^{2 \cdot \frac{\left(z \cdot \sqrt{t + a}\right) \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right) - t \cdot \left(\left(b - c\right) \cdot \left(\left(a \cdot a - \frac{5}{6} \cdot \frac{5}{6}\right) \cdot \left(t \cdot 3\right) - \left(a - \frac{5}{6}\right) \cdot 2\right)\right)}{t \cdot \left(\left(a - \frac{5}{6}\right) \cdot \left(t \cdot 3\right)\right)}}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019306 
(FPCore (x y z t a b c)
  :name "Numeric.SpecFunctions:invIncompleteBetaWorker from math-functions-0.1.5.2, I"
  :precision binary64

  :herbie-target
  (if (< t -2.1183266448915811e-50) (/ x (+ x (* y (exp (* 2 (- (+ (* a c) (* 0.83333333333333337 c)) (* a b))))))) (if (< t 5.19658877065154709e-123) (/ x (+ x (* y (exp (* 2 (/ (- (* (* z (sqrt (+ t a))) (* (* 3 t) (- a (/ 5 6)))) (* (- (* (+ (/ 5 6) a) (* 3 t)) 2) (* (- a (/ 5 6)) (* (- b c) t)))) (* (* (* t t) 3) (- a (/ 5 6))))))))) (/ x (+ x (* y (exp (* 2 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5 6)) (/ 2 (* t 3))))))))))))

  (/ x (+ x (* y (exp (* 2 (- (/ (* z (sqrt (+ t a))) t) (* (- b c) (- (+ a (/ 5 6)) (/ 2 (* t 3)))))))))))