Average Error: 16.5 → 6.0
Time: 5.3s
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1\]
\[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}\]
\[\begin{array}{l} \mathbf{if}\;\alpha \le 410714263654.793396:\\ \;\;\;\;\frac{\left(\frac{\beta}{\left(\alpha + \beta\right) + 2} - \mathsf{fma}\left(\frac{\alpha}{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - 2 \cdot 2}, \left(\alpha + \beta\right) - 2, -1 \cdot 1\right)\right) - \mathsf{fma}\left(-1, 1, 1 \cdot 1\right)}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \mathsf{fma}\left(4, \frac{1}{{\alpha}^{2}}, -\mathsf{fma}\left(2, \frac{1}{\alpha}, 8 \cdot \frac{1}{{\alpha}^{3}}\right)\right)}{2}\\ \end{array}\]
\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}
\begin{array}{l}
\mathbf{if}\;\alpha \le 410714263654.793396:\\
\;\;\;\;\frac{\left(\frac{\beta}{\left(\alpha + \beta\right) + 2} - \mathsf{fma}\left(\frac{\alpha}{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - 2 \cdot 2}, \left(\alpha + \beta\right) - 2, -1 \cdot 1\right)\right) - \mathsf{fma}\left(-1, 1, 1 \cdot 1\right)}{2}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \mathsf{fma}\left(4, \frac{1}{{\alpha}^{2}}, -\mathsf{fma}\left(2, \frac{1}{\alpha}, 8 \cdot \frac{1}{{\alpha}^{3}}\right)\right)}{2}\\

\end{array}
double f(double alpha, double beta) {
        double r94926 = beta;
        double r94927 = alpha;
        double r94928 = r94926 - r94927;
        double r94929 = r94927 + r94926;
        double r94930 = 2.0;
        double r94931 = r94929 + r94930;
        double r94932 = r94928 / r94931;
        double r94933 = 1.0;
        double r94934 = r94932 + r94933;
        double r94935 = r94934 / r94930;
        return r94935;
}

double f(double alpha, double beta) {
        double r94936 = alpha;
        double r94937 = 410714263654.7934;
        bool r94938 = r94936 <= r94937;
        double r94939 = beta;
        double r94940 = r94936 + r94939;
        double r94941 = 2.0;
        double r94942 = r94940 + r94941;
        double r94943 = r94939 / r94942;
        double r94944 = r94940 * r94940;
        double r94945 = r94941 * r94941;
        double r94946 = r94944 - r94945;
        double r94947 = r94936 / r94946;
        double r94948 = r94940 - r94941;
        double r94949 = 1.0;
        double r94950 = 1.0;
        double r94951 = r94949 * r94950;
        double r94952 = -r94951;
        double r94953 = fma(r94947, r94948, r94952);
        double r94954 = r94943 - r94953;
        double r94955 = -r94949;
        double r94956 = fma(r94955, r94950, r94951);
        double r94957 = r94954 - r94956;
        double r94958 = r94957 / r94941;
        double r94959 = 4.0;
        double r94960 = 2.0;
        double r94961 = pow(r94936, r94960);
        double r94962 = r94950 / r94961;
        double r94963 = r94950 / r94936;
        double r94964 = 8.0;
        double r94965 = 3.0;
        double r94966 = pow(r94936, r94965);
        double r94967 = r94950 / r94966;
        double r94968 = r94964 * r94967;
        double r94969 = fma(r94941, r94963, r94968);
        double r94970 = -r94969;
        double r94971 = fma(r94959, r94962, r94970);
        double r94972 = r94943 - r94971;
        double r94973 = r94972 / r94941;
        double r94974 = r94938 ? r94958 : r94973;
        return r94974;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if alpha < 410714263654.7934

    1. Initial program 0.2

      \[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}\]
    2. Using strategy rm
    3. Applied div-sub0.2

      \[\leadsto \frac{\color{blue}{\left(\frac{\beta}{\left(\alpha + \beta\right) + 2} - \frac{\alpha}{\left(\alpha + \beta\right) + 2}\right)} + 1}{2}\]
    4. Applied associate-+l-0.2

      \[\leadsto \frac{\color{blue}{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)}}{2}\]
    5. Using strategy rm
    6. Applied *-un-lft-identity0.2

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - \color{blue}{1 \cdot 1}\right)}{2}\]
    7. Applied flip-+0.2

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\frac{\alpha}{\color{blue}{\frac{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - 2 \cdot 2}{\left(\alpha + \beta\right) - 2}}} - 1 \cdot 1\right)}{2}\]
    8. Applied associate-/r/0.2

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\color{blue}{\frac{\alpha}{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - 2 \cdot 2} \cdot \left(\left(\alpha + \beta\right) - 2\right)} - 1 \cdot 1\right)}{2}\]
    9. Applied prod-diff0.2

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \color{blue}{\left(\mathsf{fma}\left(\frac{\alpha}{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - 2 \cdot 2}, \left(\alpha + \beta\right) - 2, -1 \cdot 1\right) + \mathsf{fma}\left(-1, 1, 1 \cdot 1\right)\right)}}{2}\]
    10. Applied associate--r+0.2

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

    if 410714263654.7934 < alpha

    1. Initial program 50.2

      \[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2} + 1}{2}\]
    2. Using strategy rm
    3. Applied div-sub50.2

      \[\leadsto \frac{\color{blue}{\left(\frac{\beta}{\left(\alpha + \beta\right) + 2} - \frac{\alpha}{\left(\alpha + \beta\right) + 2}\right)} + 1}{2}\]
    4. Applied associate-+l-48.6

      \[\leadsto \frac{\color{blue}{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2} - 1\right)}}{2}\]
    5. Taylor expanded around inf 18.1

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \color{blue}{\left(4 \cdot \frac{1}{{\alpha}^{2}} - \left(2 \cdot \frac{1}{\alpha} + 8 \cdot \frac{1}{{\alpha}^{3}}\right)\right)}}{2}\]
    6. Simplified18.1

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \color{blue}{\mathsf{fma}\left(4, \frac{1}{{\alpha}^{2}}, -\mathsf{fma}\left(2, \frac{1}{\alpha}, 8 \cdot \frac{1}{{\alpha}^{3}}\right)\right)}}{2}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification6.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 410714263654.793396:\\ \;\;\;\;\frac{\left(\frac{\beta}{\left(\alpha + \beta\right) + 2} - \mathsf{fma}\left(\frac{\alpha}{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - 2 \cdot 2}, \left(\alpha + \beta\right) - 2, -1 \cdot 1\right)\right) - \mathsf{fma}\left(-1, 1, 1 \cdot 1\right)}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\beta}{\left(\alpha + \beta\right) + 2} - \mathsf{fma}\left(4, \frac{1}{{\alpha}^{2}}, -\mathsf{fma}\left(2, \frac{1}{\alpha}, 8 \cdot \frac{1}{{\alpha}^{3}}\right)\right)}{2}\\ \end{array}\]

Reproduce

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