Average Error: 3.6 → 2.1
Time: 1.8m
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 1.6790194235791028 \cdot 10^{+189}:\\ \;\;\;\;\frac{\frac{\frac{1.0 + \left(\left(\beta + \alpha\right) + \beta \cdot \alpha\right)}{\left(\beta + \alpha\right) + 2}}{\left(\beta + \alpha\right) + 2}}{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}\\ \mathbf{else}:\\ \;\;\;\;0\\ \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 1.6790194235791028 \cdot 10^{+189}:\\
\;\;\;\;\frac{\frac{\frac{1.0 + \left(\left(\beta + \alpha\right) + \beta \cdot \alpha\right)}{\left(\beta + \alpha\right) + 2}}{\left(\beta + \alpha\right) + 2}}{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}\\

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

\end{array}
double f(double alpha, double beta) {
        double r6252806 = alpha;
        double r6252807 = beta;
        double r6252808 = r6252806 + r6252807;
        double r6252809 = r6252807 * r6252806;
        double r6252810 = r6252808 + r6252809;
        double r6252811 = 1.0;
        double r6252812 = r6252810 + r6252811;
        double r6252813 = 2.0;
        double r6252814 = 1.0;
        double r6252815 = r6252813 * r6252814;
        double r6252816 = r6252808 + r6252815;
        double r6252817 = r6252812 / r6252816;
        double r6252818 = r6252817 / r6252816;
        double r6252819 = r6252816 + r6252811;
        double r6252820 = r6252818 / r6252819;
        return r6252820;
}

double f(double alpha, double beta) {
        double r6252821 = alpha;
        double r6252822 = 1.6790194235791028e+189;
        bool r6252823 = r6252821 <= r6252822;
        double r6252824 = 1.0;
        double r6252825 = beta;
        double r6252826 = r6252825 + r6252821;
        double r6252827 = r6252825 * r6252821;
        double r6252828 = r6252826 + r6252827;
        double r6252829 = r6252824 + r6252828;
        double r6252830 = 2.0;
        double r6252831 = r6252826 + r6252830;
        double r6252832 = r6252829 / r6252831;
        double r6252833 = r6252832 / r6252831;
        double r6252834 = r6252824 + r6252831;
        double r6252835 = r6252833 / r6252834;
        double r6252836 = 0.0;
        double r6252837 = r6252823 ? r6252835 : r6252836;
        return r6252837;
}

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 < 1.6790194235791028e+189

    1. Initial program 1.7

      \[\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 +-commutative1.7

      \[\leadsto \frac{\frac{\frac{\color{blue}{\left(\beta \cdot \alpha + \left(\alpha + \beta\right)\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 1.6790194235791028e+189 < alpha

    1. Initial program 16.2

      \[\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 +-commutative16.2

      \[\leadsto \frac{\frac{\frac{\color{blue}{\left(\beta \cdot \alpha + \left(\alpha + \beta\right)\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}\]
    4. Taylor expanded around inf 5.1

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

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

Reproduce

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