Average Error: 3.8 → 2.5
Time: 9.7s
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}\;\alpha \le 4.51984557780486937 \cdot 10^{187}:\\ \;\;\;\;\frac{\frac{\sqrt{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\frac{\beta + \left(\alpha + \mathsf{fma}\left(1, 2, 1\right)\right)}{\sqrt{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}} \cdot \sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}\\ \mathbf{else}:\\ \;\;\;\;\mathsf{fma}\left(\alpha, 0.25, \mathsf{fma}\left(\beta, 0.25, 0.5\right)\right) \cdot \frac{\frac{1}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}}{\mathsf{fma}\left(1, 2, \alpha + \beta\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}\;\alpha \le 4.51984557780486937 \cdot 10^{187}:\\
\;\;\;\;\frac{\frac{\sqrt{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\frac{\beta + \left(\alpha + \mathsf{fma}\left(1, 2, 1\right)\right)}{\sqrt{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}} \cdot \sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}\\

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

\end{array}
double f(double alpha, double beta) {
        double r76938 = alpha;
        double r76939 = beta;
        double r76940 = r76938 + r76939;
        double r76941 = r76939 * r76938;
        double r76942 = r76940 + r76941;
        double r76943 = 1.0;
        double r76944 = r76942 + r76943;
        double r76945 = 2.0;
        double r76946 = r76945 * r76943;
        double r76947 = r76940 + r76946;
        double r76948 = r76944 / r76947;
        double r76949 = r76948 / r76947;
        double r76950 = r76947 + r76943;
        double r76951 = r76949 / r76950;
        return r76951;
}

double f(double alpha, double beta) {
        double r76952 = alpha;
        double r76953 = 4.519845577804869e+187;
        bool r76954 = r76952 <= r76953;
        double r76955 = beta;
        double r76956 = r76952 + r76955;
        double r76957 = r76955 * r76952;
        double r76958 = r76956 + r76957;
        double r76959 = 1.0;
        double r76960 = r76958 + r76959;
        double r76961 = 2.0;
        double r76962 = r76961 * r76959;
        double r76963 = r76956 + r76962;
        double r76964 = r76960 / r76963;
        double r76965 = sqrt(r76964);
        double r76966 = sqrt(r76963);
        double r76967 = r76965 / r76966;
        double r76968 = fma(r76959, r76961, r76959);
        double r76969 = r76952 + r76968;
        double r76970 = r76955 + r76969;
        double r76971 = r76970 / r76965;
        double r76972 = r76971 * r76966;
        double r76973 = r76967 / r76972;
        double r76974 = 0.25;
        double r76975 = 0.5;
        double r76976 = fma(r76955, r76974, r76975);
        double r76977 = fma(r76952, r76974, r76976);
        double r76978 = 1.0;
        double r76979 = r76963 + r76959;
        double r76980 = r76978 / r76979;
        double r76981 = fma(r76959, r76961, r76956);
        double r76982 = r76980 / r76981;
        double r76983 = r76977 * r76982;
        double r76984 = r76954 ? r76973 : r76983;
        return r76984;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if alpha < 4.519845577804869e+187

    1. Initial program 1.8

      \[\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. Using strategy rm
    3. Applied add-sqr-sqrt2.3

      \[\leadsto \frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\color{blue}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1} \cdot \sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
    4. Applied add-sqr-sqrt1.9

      \[\leadsto \frac{\frac{\color{blue}{\sqrt{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}} \cdot \sqrt{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}}}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1} \cdot \sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
    5. Applied times-frac1.9

      \[\leadsto \frac{\color{blue}{\frac{\sqrt{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}} \cdot \frac{\sqrt{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
    6. Applied associate-/l*1.9

      \[\leadsto \color{blue}{\frac{\frac{\sqrt{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\frac{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}{\frac{\sqrt{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}}{\sqrt{\left(\alpha + \beta\right) + 2 \cdot 1}}}}}\]
    7. Simplified1.9

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

    if 4.519845577804869e+187 < alpha

    1. Initial program 16.9

      \[\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. Using strategy rm
    3. Applied *-un-lft-identity16.9

      \[\leadsto \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}}{\color{blue}{1 \cdot \left(\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1\right)}}\]
    4. Applied div-inv16.9

      \[\leadsto \frac{\color{blue}{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1} \cdot \frac{1}{\left(\alpha + \beta\right) + 2 \cdot 1}}}{1 \cdot \left(\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1\right)}\]
    5. Applied times-frac17.2

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

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

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

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

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

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

Reproduce

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