Average Error: 3.7 → 2.6
Time: 41.7s
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.292108726261348 \cdot 10^{+141}:\\ \;\;\;\;\frac{\frac{1.0 + \left(\beta \cdot \alpha + \left(\alpha + \beta\right)\right)}{\left(\alpha + 2\right) + \beta} \cdot \frac{1}{\left(\alpha + 2\right) + \beta}}{1.0 + \left(\left(\alpha + 2\right) + \beta\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{2.0}{\alpha \cdot \alpha} + \left(1 - \frac{1.0}{\alpha}\right)}{\left(\alpha + 2\right) + \beta}}{1.0 + \left(\left(\alpha + 2\right) + \beta\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.292108726261348 \cdot 10^{+141}:\\
\;\;\;\;\frac{\frac{1.0 + \left(\beta \cdot \alpha + \left(\alpha + \beta\right)\right)}{\left(\alpha + 2\right) + \beta} \cdot \frac{1}{\left(\alpha + 2\right) + \beta}}{1.0 + \left(\left(\alpha + 2\right) + \beta\right)}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{\frac{2.0}{\alpha \cdot \alpha} + \left(1 - \frac{1.0}{\alpha}\right)}{\left(\alpha + 2\right) + \beta}}{1.0 + \left(\left(\alpha + 2\right) + \beta\right)}\\

\end{array}
double f(double alpha, double beta) {
        double r3338804 = alpha;
        double r3338805 = beta;
        double r3338806 = r3338804 + r3338805;
        double r3338807 = r3338805 * r3338804;
        double r3338808 = r3338806 + r3338807;
        double r3338809 = 1.0;
        double r3338810 = r3338808 + r3338809;
        double r3338811 = 2.0;
        double r3338812 = 1.0;
        double r3338813 = r3338811 * r3338812;
        double r3338814 = r3338806 + r3338813;
        double r3338815 = r3338810 / r3338814;
        double r3338816 = r3338815 / r3338814;
        double r3338817 = r3338814 + r3338809;
        double r3338818 = r3338816 / r3338817;
        return r3338818;
}

double f(double alpha, double beta) {
        double r3338819 = alpha;
        double r3338820 = 3.292108726261348e+141;
        bool r3338821 = r3338819 <= r3338820;
        double r3338822 = 1.0;
        double r3338823 = beta;
        double r3338824 = r3338823 * r3338819;
        double r3338825 = r3338819 + r3338823;
        double r3338826 = r3338824 + r3338825;
        double r3338827 = r3338822 + r3338826;
        double r3338828 = 2.0;
        double r3338829 = r3338819 + r3338828;
        double r3338830 = r3338829 + r3338823;
        double r3338831 = r3338827 / r3338830;
        double r3338832 = 1.0;
        double r3338833 = r3338832 / r3338830;
        double r3338834 = r3338831 * r3338833;
        double r3338835 = r3338822 + r3338830;
        double r3338836 = r3338834 / r3338835;
        double r3338837 = 2.0;
        double r3338838 = r3338819 * r3338819;
        double r3338839 = r3338837 / r3338838;
        double r3338840 = r3338822 / r3338819;
        double r3338841 = r3338832 - r3338840;
        double r3338842 = r3338839 + r3338841;
        double r3338843 = r3338842 / r3338830;
        double r3338844 = r3338843 / r3338835;
        double r3338845 = r3338821 ? r3338836 : r3338844;
        return r3338845;
}

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.292108726261348e+141

    1. Initial program 1.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. Simplified1.1

      \[\leadsto \color{blue}{\frac{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{\left(\alpha + 2\right) + \beta}}{\left(\alpha + 2\right) + \beta}}{\left(\left(\alpha + 2\right) + \beta\right) + 1.0}}\]
    3. Using strategy rm
    4. Applied div-inv1.1

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

    if 3.292108726261348e+141 < alpha

    1. Initial program 15.4

      \[\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. Simplified15.4

      \[\leadsto \color{blue}{\frac{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{\left(\alpha + 2\right) + \beta}}{\left(\alpha + 2\right) + \beta}}{\left(\left(\alpha + 2\right) + \beta\right) + 1.0}}\]
    3. Taylor expanded around -inf 9.1

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 3.292108726261348 \cdot 10^{+141}:\\ \;\;\;\;\frac{\frac{1.0 + \left(\beta \cdot \alpha + \left(\alpha + \beta\right)\right)}{\left(\alpha + 2\right) + \beta} \cdot \frac{1}{\left(\alpha + 2\right) + \beta}}{1.0 + \left(\left(\alpha + 2\right) + \beta\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{2.0}{\alpha \cdot \alpha} + \left(1 - \frac{1.0}{\alpha}\right)}{\left(\alpha + 2\right) + \beta}}{1.0 + \left(\left(\alpha + 2\right) + \beta\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2019139 
(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)))