Average Error: 3.8 → 2.4
Time: 54.0s
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1\]
\[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
\[\begin{array}{l} \mathbf{if}\;\beta \le 2.3645218943007731 \cdot 10^{162}:\\ \;\;\;\;\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\alpha + \left(3 + \beta\right)}\\ \mathbf{else}:\\ \;\;\;\;0\\ \end{array}\]
\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}
\begin{array}{l}
\mathbf{if}\;\beta \le 2.3645218943007731 \cdot 10^{162}:\\
\;\;\;\;\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\alpha + \left(3 + \beta\right)}\\

\mathbf{else}:\\
\;\;\;\;0\\

\end{array}
double f(double alpha, double beta) {
        double r114020 = alpha;
        double r114021 = beta;
        double r114022 = r114020 + r114021;
        double r114023 = r114021 * r114020;
        double r114024 = r114022 + r114023;
        double r114025 = 1.0;
        double r114026 = r114024 + r114025;
        double r114027 = 2.0;
        double r114028 = r114027 * r114025;
        double r114029 = r114022 + r114028;
        double r114030 = r114026 / r114029;
        double r114031 = r114030 / r114029;
        double r114032 = r114029 + r114025;
        double r114033 = r114031 / r114032;
        return r114033;
}

double f(double alpha, double beta) {
        double r114034 = beta;
        double r114035 = 2.364521894300773e+162;
        bool r114036 = r114034 <= r114035;
        double r114037 = alpha;
        double r114038 = r114037 + r114034;
        double r114039 = r114034 * r114037;
        double r114040 = r114038 + r114039;
        double r114041 = 1.0;
        double r114042 = r114040 + r114041;
        double r114043 = 2.0;
        double r114044 = r114043 * r114041;
        double r114045 = r114038 + r114044;
        double r114046 = r114042 / r114045;
        double r114047 = r114046 / r114045;
        double r114048 = 3.0;
        double r114049 = r114048 + r114034;
        double r114050 = r114037 + r114049;
        double r114051 = r114047 / r114050;
        double r114052 = 0.0;
        double r114053 = r114036 ? r114051 : r114052;
        return r114053;
}

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 beta < 2.364521894300773e+162

    1. Initial program 1.4

      \[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
    2. Taylor expanded around 0 1.4

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

    if 2.364521894300773e+162 < beta

    1. Initial program 16.5

      \[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
    2. Taylor expanded around inf 7.6

      \[\leadsto \color{blue}{0}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification2.4

    \[\leadsto \begin{array}{l} \mathbf{if}\;\beta \le 2.3645218943007731 \cdot 10^{162}:\\ \;\;\;\;\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\alpha + \left(3 + \beta\right)}\\ \mathbf{else}:\\ \;\;\;\;0\\ \end{array}\]

Reproduce

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