Average Error: 3.6 → 2.1
Time: 19.5s
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 1.38031043420997982278869925206117153783 \cdot 10^{163}:\\ \;\;\;\;\frac{\frac{1 + \mathsf{fma}\left(\alpha, \beta, \alpha + \beta\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)} \cdot \frac{1}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) + 1}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(0.25, \alpha, \mathsf{fma}\left(0.25, \beta, 0.5\right)\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) \cdot \left(1 + \mathsf{fma}\left(1, 2, \alpha + \beta\right)\right)}\\ \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 1.38031043420997982278869925206117153783 \cdot 10^{163}:\\
\;\;\;\;\frac{\frac{1 + \mathsf{fma}\left(\alpha, \beta, \alpha + \beta\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)} \cdot \frac{1}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) + 1}\\

\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(0.25, \alpha, \mathsf{fma}\left(0.25, \beta, 0.5\right)\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) \cdot \left(1 + \mathsf{fma}\left(1, 2, \alpha + \beta\right)\right)}\\

\end{array}
double f(double alpha, double beta) {
        double r142953 = alpha;
        double r142954 = beta;
        double r142955 = r142953 + r142954;
        double r142956 = r142954 * r142953;
        double r142957 = r142955 + r142956;
        double r142958 = 1.0;
        double r142959 = r142957 + r142958;
        double r142960 = 2.0;
        double r142961 = r142960 * r142958;
        double r142962 = r142955 + r142961;
        double r142963 = r142959 / r142962;
        double r142964 = r142963 / r142962;
        double r142965 = r142962 + r142958;
        double r142966 = r142964 / r142965;
        return r142966;
}

double f(double alpha, double beta) {
        double r142967 = beta;
        double r142968 = 1.3803104342099798e+163;
        bool r142969 = r142967 <= r142968;
        double r142970 = 1.0;
        double r142971 = alpha;
        double r142972 = r142971 + r142967;
        double r142973 = fma(r142971, r142967, r142972);
        double r142974 = r142970 + r142973;
        double r142975 = 2.0;
        double r142976 = fma(r142970, r142975, r142972);
        double r142977 = r142974 / r142976;
        double r142978 = 1.0;
        double r142979 = r142978 / r142976;
        double r142980 = r142977 * r142979;
        double r142981 = r142976 + r142970;
        double r142982 = r142980 / r142981;
        double r142983 = 0.25;
        double r142984 = 0.5;
        double r142985 = fma(r142983, r142967, r142984);
        double r142986 = fma(r142983, r142971, r142985);
        double r142987 = r142970 + r142976;
        double r142988 = r142976 * r142987;
        double r142989 = r142986 / r142988;
        double r142990 = r142969 ? r142982 : r142989;
        return r142990;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if beta < 1.3803104342099798e+163

    1. Initial program 1.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}\]
    2. Simplified1.1

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

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

    if 1.3803104342099798e+163 < 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. Simplified16.5

      \[\leadsto \color{blue}{\frac{\frac{\frac{1 + \mathsf{fma}\left(\alpha, \beta, \alpha + \beta\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) + 1}}\]
    3. Using strategy rm
    4. Applied div-inv16.5

      \[\leadsto \frac{\color{blue}{\frac{1 + \mathsf{fma}\left(\alpha, \beta, \alpha + \beta\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)} \cdot \frac{1}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) + 1}\]
    5. Using strategy rm
    6. Applied associate-*l/16.5

      \[\leadsto \frac{\color{blue}{\frac{\left(1 + \mathsf{fma}\left(\alpha, \beta, \alpha + \beta\right)\right) \cdot \frac{1}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) + 1}\]
    7. Applied associate-/l/17.6

      \[\leadsto \color{blue}{\frac{\left(1 + \mathsf{fma}\left(\alpha, \beta, \alpha + \beta\right)\right) \cdot \frac{1}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\left(\mathsf{fma}\left(1, 2, \alpha + \beta\right) + 1\right) \cdot \mathsf{fma}\left(1, 2, \alpha + \beta\right)}}\]
    8. Simplified17.6

      \[\leadsto \frac{\left(1 + \mathsf{fma}\left(\alpha, \beta, \alpha + \beta\right)\right) \cdot \frac{1}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\color{blue}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) \cdot \left(1 + \mathsf{fma}\left(1, 2, \alpha + \beta\right)\right)}}\]
    9. Using strategy rm
    10. Applied expm1-log1p-u17.6

      \[\leadsto \frac{\color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\left(1 + \mathsf{fma}\left(\alpha, \beta, \alpha + \beta\right)\right) \cdot \frac{1}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}\right)\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) \cdot \left(1 + \mathsf{fma}\left(1, 2, \alpha + \beta\right)\right)}\]
    11. Simplified17.6

      \[\leadsto \frac{\mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{1 + \mathsf{fma}\left(\alpha, \beta, \alpha + \beta\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}\right)}\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) \cdot \left(1 + \mathsf{fma}\left(1, 2, \alpha + \beta\right)\right)}\]
    12. Taylor expanded around 0 7.4

      \[\leadsto \frac{\color{blue}{0.25 \cdot \alpha + \left(0.5 + 0.25 \cdot \beta\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) \cdot \left(1 + \mathsf{fma}\left(1, 2, \alpha + \beta\right)\right)}\]
    13. Simplified7.4

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\beta \le 1.38031043420997982278869925206117153783 \cdot 10^{163}:\\ \;\;\;\;\frac{\frac{1 + \mathsf{fma}\left(\alpha, \beta, \alpha + \beta\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)} \cdot \frac{1}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) + 1}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(0.25, \alpha, \mathsf{fma}\left(0.25, \beta, 0.5\right)\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) \cdot \left(1 + \mathsf{fma}\left(1, 2, \alpha + \beta\right)\right)}\\ \end{array}\]

Reproduce

herbie shell --seed 2019323 +o rules:numerics
(FPCore (alpha beta)
  :name "Octave 3.8, jcobi/3"
  :precision binary64
  :pre (and (> alpha -1) (> beta -1))
  (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1)))