Average Error: 3.5 → 2.4
Time: 38.9s
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1\]
\[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
\[\begin{array}{l} \mathbf{if}\;\alpha \le 3.948042311878287 \cdot 10^{+161}:\\ \;\;\;\;\frac{\sqrt{\frac{\frac{1.0 + \left(\beta \cdot \alpha + \left(\beta + \alpha\right)\right)}{\left(\beta + \alpha\right) + 2}}{\left(\beta + \alpha\right) + 2}} \cdot \sqrt{\frac{\frac{1.0 + \left(\beta \cdot \alpha + \left(\beta + \alpha\right)\right)}{\left(\beta + \alpha\right) + 2}}{\left(\beta + \alpha\right) + 2}}}{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\left(\beta + \alpha\right) \cdot 0.25 + 0.5}{\left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right) - 4}}{\frac{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}{\left(\beta + \alpha\right) - 2}}\\ \end{array}\]
\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}
\begin{array}{l}
\mathbf{if}\;\alpha \le 3.948042311878287 \cdot 10^{+161}:\\
\;\;\;\;\frac{\sqrt{\frac{\frac{1.0 + \left(\beta \cdot \alpha + \left(\beta + \alpha\right)\right)}{\left(\beta + \alpha\right) + 2}}{\left(\beta + \alpha\right) + 2}} \cdot \sqrt{\frac{\frac{1.0 + \left(\beta \cdot \alpha + \left(\beta + \alpha\right)\right)}{\left(\beta + \alpha\right) + 2}}{\left(\beta + \alpha\right) + 2}}}{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{\left(\beta + \alpha\right) \cdot 0.25 + 0.5}{\left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right) - 4}}{\frac{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}{\left(\beta + \alpha\right) - 2}}\\

\end{array}
double f(double alpha, double beta) {
        double r5870878 = alpha;
        double r5870879 = beta;
        double r5870880 = r5870878 + r5870879;
        double r5870881 = r5870879 * r5870878;
        double r5870882 = r5870880 + r5870881;
        double r5870883 = 1.0;
        double r5870884 = r5870882 + r5870883;
        double r5870885 = 2.0;
        double r5870886 = 1.0;
        double r5870887 = r5870885 * r5870886;
        double r5870888 = r5870880 + r5870887;
        double r5870889 = r5870884 / r5870888;
        double r5870890 = r5870889 / r5870888;
        double r5870891 = r5870888 + r5870883;
        double r5870892 = r5870890 / r5870891;
        return r5870892;
}

double f(double alpha, double beta) {
        double r5870893 = alpha;
        double r5870894 = 3.948042311878287e+161;
        bool r5870895 = r5870893 <= r5870894;
        double r5870896 = 1.0;
        double r5870897 = beta;
        double r5870898 = r5870897 * r5870893;
        double r5870899 = r5870897 + r5870893;
        double r5870900 = r5870898 + r5870899;
        double r5870901 = r5870896 + r5870900;
        double r5870902 = 2.0;
        double r5870903 = r5870899 + r5870902;
        double r5870904 = r5870901 / r5870903;
        double r5870905 = r5870904 / r5870903;
        double r5870906 = sqrt(r5870905);
        double r5870907 = r5870906 * r5870906;
        double r5870908 = r5870896 + r5870903;
        double r5870909 = r5870907 / r5870908;
        double r5870910 = 0.25;
        double r5870911 = r5870899 * r5870910;
        double r5870912 = 0.5;
        double r5870913 = r5870911 + r5870912;
        double r5870914 = r5870899 * r5870899;
        double r5870915 = 4.0;
        double r5870916 = r5870914 - r5870915;
        double r5870917 = r5870913 / r5870916;
        double r5870918 = r5870899 - r5870902;
        double r5870919 = r5870908 / r5870918;
        double r5870920 = r5870917 / r5870919;
        double r5870921 = r5870895 ? r5870909 : r5870920;
        return r5870921;
}

Error

Bits error versus alpha

Bits error versus beta

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if alpha < 3.948042311878287e+161

    1. Initial program 1.3

      \[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt1.4

      \[\leadsto \frac{\color{blue}{\sqrt{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}} \cdot \sqrt{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]

    if 3.948042311878287e+161 < alpha

    1. Initial program 15.6

      \[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    2. Using strategy rm
    3. Applied flip-+16.9

      \[\leadsto \frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\color{blue}{\frac{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - \left(2 \cdot 1\right) \cdot \left(2 \cdot 1\right)}{\left(\alpha + \beta\right) - 2 \cdot 1}}}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    4. Applied associate-/r/16.9

      \[\leadsto \frac{\color{blue}{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - \left(2 \cdot 1\right) \cdot \left(2 \cdot 1\right)} \cdot \left(\left(\alpha + \beta\right) - 2 \cdot 1\right)}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    5. Applied associate-/l*16.9

      \[\leadsto \color{blue}{\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - \left(2 \cdot 1\right) \cdot \left(2 \cdot 1\right)}}{\frac{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}{\left(\alpha + \beta\right) - 2 \cdot 1}}}\]
    6. Taylor expanded around 0 7.7

      \[\leadsto \frac{\frac{\color{blue}{0.25 \cdot \alpha + \left(0.25 \cdot \beta + 0.5\right)}}{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - \left(2 \cdot 1\right) \cdot \left(2 \cdot 1\right)}}{\frac{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}{\left(\alpha + \beta\right) - 2 \cdot 1}}\]
    7. Simplified7.7

      \[\leadsto \frac{\frac{\color{blue}{0.25 \cdot \left(\alpha + \beta\right) + 0.5}}{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - \left(2 \cdot 1\right) \cdot \left(2 \cdot 1\right)}}{\frac{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}{\left(\alpha + \beta\right) - 2 \cdot 1}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification2.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 3.948042311878287 \cdot 10^{+161}:\\ \;\;\;\;\frac{\sqrt{\frac{\frac{1.0 + \left(\beta \cdot \alpha + \left(\beta + \alpha\right)\right)}{\left(\beta + \alpha\right) + 2}}{\left(\beta + \alpha\right) + 2}} \cdot \sqrt{\frac{\frac{1.0 + \left(\beta \cdot \alpha + \left(\beta + \alpha\right)\right)}{\left(\beta + \alpha\right) + 2}}{\left(\beta + \alpha\right) + 2}}}{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\left(\beta + \alpha\right) \cdot 0.25 + 0.5}{\left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right) - 4}}{\frac{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}{\left(\beta + \alpha\right) - 2}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019164 
(FPCore (alpha beta)
  :name "Octave 3.8, jcobi/3"
  :pre (and (> alpha -1) (> beta -1))
  (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)))