Average Error: 3.6 → 2.7
Time: 37.8s
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.9275252152036123 \cdot 10^{+114}:\\ \;\;\;\;\frac{\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(\frac{2.0}{\alpha \cdot \alpha} + 1\right) - \frac{1.0}{\alpha}}{\left(\beta + \alpha\right) + 2}}{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}\\ \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.9275252152036123 \cdot 10^{+114}:\\
\;\;\;\;\frac{\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(\frac{2.0}{\alpha \cdot \alpha} + 1\right) - \frac{1.0}{\alpha}}{\left(\beta + \alpha\right) + 2}}{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}\\

\end{array}
double f(double alpha, double beta) {
        double r2721704 = alpha;
        double r2721705 = beta;
        double r2721706 = r2721704 + r2721705;
        double r2721707 = r2721705 * r2721704;
        double r2721708 = r2721706 + r2721707;
        double r2721709 = 1.0;
        double r2721710 = r2721708 + r2721709;
        double r2721711 = 2.0;
        double r2721712 = 1.0;
        double r2721713 = r2721711 * r2721712;
        double r2721714 = r2721706 + r2721713;
        double r2721715 = r2721710 / r2721714;
        double r2721716 = r2721715 / r2721714;
        double r2721717 = r2721714 + r2721709;
        double r2721718 = r2721716 / r2721717;
        return r2721718;
}

double f(double alpha, double beta) {
        double r2721719 = alpha;
        double r2721720 = 3.9275252152036123e+114;
        bool r2721721 = r2721719 <= r2721720;
        double r2721722 = 1.0;
        double r2721723 = beta;
        double r2721724 = r2721723 * r2721719;
        double r2721725 = r2721723 + r2721719;
        double r2721726 = r2721724 + r2721725;
        double r2721727 = r2721722 + r2721726;
        double r2721728 = 2.0;
        double r2721729 = r2721725 + r2721728;
        double r2721730 = r2721727 / r2721729;
        double r2721731 = r2721730 / r2721729;
        double r2721732 = r2721722 + r2721729;
        double r2721733 = r2721731 / r2721732;
        double r2721734 = 2.0;
        double r2721735 = r2721719 * r2721719;
        double r2721736 = r2721734 / r2721735;
        double r2721737 = 1.0;
        double r2721738 = r2721736 + r2721737;
        double r2721739 = r2721722 / r2721719;
        double r2721740 = r2721738 - r2721739;
        double r2721741 = r2721740 / r2721729;
        double r2721742 = r2721741 / r2721732;
        double r2721743 = r2721721 ? r2721733 : r2721742;
        return r2721743;
}

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.9275252152036123e+114

    1. Initial program 0.8

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

      \[\leadsto \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}}{\color{blue}{1.0 + \left(\left(\alpha + \beta\right) + 2 \cdot 1\right)}}\]

    if 3.9275252152036123e+114 < alpha

    1. Initial program 14.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}\]
    2. Using strategy rm
    3. Applied +-commutative14.1

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

      \[\leadsto \frac{\frac{\color{blue}{\left(2.0 \cdot \frac{1}{{\alpha}^{2}} + 1\right) - 1.0 \cdot \frac{1}{\alpha}}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{1.0 + \left(\left(\alpha + \beta\right) + 2 \cdot 1\right)}\]
    5. Simplified9.6

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 3.9275252152036123 \cdot 10^{+114}:\\ \;\;\;\;\frac{\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(\frac{2.0}{\alpha \cdot \alpha} + 1\right) - \frac{1.0}{\alpha}}{\left(\beta + \alpha\right) + 2}}{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2019153 +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)))