Average Error: 16.4 → 5.8
Time: 29.4s
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1\]
\[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\]
\[\begin{array}{l} \mathbf{if}\;\alpha \le 408422.37095922505:\\ \;\;\;\;\frac{e^{\log \left(\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \mathsf{fma}\left(\frac{1}{\sqrt{2.0 + \left(\beta + \alpha\right)}}, \frac{\alpha}{\sqrt{2.0 + \left(\beta + \alpha\right)}}, -1.0\right)\right)}}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \left(\left(\frac{4.0}{\alpha \cdot \alpha} - \frac{2.0}{\alpha}\right) - \frac{8.0}{\alpha \cdot \left(\alpha \cdot \alpha\right)}\right)}{2.0}\\ \end{array}\]
\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}
\begin{array}{l}
\mathbf{if}\;\alpha \le 408422.37095922505:\\
\;\;\;\;\frac{e^{\log \left(\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \mathsf{fma}\left(\frac{1}{\sqrt{2.0 + \left(\beta + \alpha\right)}}, \frac{\alpha}{\sqrt{2.0 + \left(\beta + \alpha\right)}}, -1.0\right)\right)}}{2.0}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \left(\left(\frac{4.0}{\alpha \cdot \alpha} - \frac{2.0}{\alpha}\right) - \frac{8.0}{\alpha \cdot \left(\alpha \cdot \alpha\right)}\right)}{2.0}\\

\end{array}
double f(double alpha, double beta) {
        double r2143855 = beta;
        double r2143856 = alpha;
        double r2143857 = r2143855 - r2143856;
        double r2143858 = r2143856 + r2143855;
        double r2143859 = 2.0;
        double r2143860 = r2143858 + r2143859;
        double r2143861 = r2143857 / r2143860;
        double r2143862 = 1.0;
        double r2143863 = r2143861 + r2143862;
        double r2143864 = r2143863 / r2143859;
        return r2143864;
}

double f(double alpha, double beta) {
        double r2143865 = alpha;
        double r2143866 = 408422.37095922505;
        bool r2143867 = r2143865 <= r2143866;
        double r2143868 = beta;
        double r2143869 = 2.0;
        double r2143870 = r2143868 + r2143865;
        double r2143871 = r2143869 + r2143870;
        double r2143872 = r2143868 / r2143871;
        double r2143873 = 1.0;
        double r2143874 = sqrt(r2143871);
        double r2143875 = r2143873 / r2143874;
        double r2143876 = r2143865 / r2143874;
        double r2143877 = 1.0;
        double r2143878 = -r2143877;
        double r2143879 = fma(r2143875, r2143876, r2143878);
        double r2143880 = r2143872 - r2143879;
        double r2143881 = log(r2143880);
        double r2143882 = exp(r2143881);
        double r2143883 = r2143882 / r2143869;
        double r2143884 = 4.0;
        double r2143885 = r2143865 * r2143865;
        double r2143886 = r2143884 / r2143885;
        double r2143887 = r2143869 / r2143865;
        double r2143888 = r2143886 - r2143887;
        double r2143889 = 8.0;
        double r2143890 = r2143865 * r2143885;
        double r2143891 = r2143889 / r2143890;
        double r2143892 = r2143888 - r2143891;
        double r2143893 = r2143872 - r2143892;
        double r2143894 = r2143893 / r2143869;
        double r2143895 = r2143867 ? r2143883 : r2143894;
        return r2143895;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

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

    1. Initial program 0.0

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

      \[\leadsto \frac{\color{blue}{\left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \frac{\alpha}{\left(\alpha + \beta\right) + 2.0}\right)} + 1.0}{2.0}\]
    4. Applied associate-+l-0.0

      \[\leadsto \frac{\color{blue}{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)}}{2.0}\]
    5. Using strategy rm
    6. Applied add-exp-log0.0

      \[\leadsto \frac{\color{blue}{e^{\log \left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)\right)}}}{2.0}\]
    7. Using strategy rm
    8. Applied add-sqr-sqrt0.0

      \[\leadsto \frac{e^{\log \left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\alpha}{\color{blue}{\sqrt{\left(\alpha + \beta\right) + 2.0} \cdot \sqrt{\left(\alpha + \beta\right) + 2.0}}} - 1.0\right)\right)}}{2.0}\]
    9. Applied *-un-lft-identity0.0

      \[\leadsto \frac{e^{\log \left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\color{blue}{1 \cdot \alpha}}{\sqrt{\left(\alpha + \beta\right) + 2.0} \cdot \sqrt{\left(\alpha + \beta\right) + 2.0}} - 1.0\right)\right)}}{2.0}\]
    10. Applied times-frac0.0

      \[\leadsto \frac{e^{\log \left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\color{blue}{\frac{1}{\sqrt{\left(\alpha + \beta\right) + 2.0}} \cdot \frac{\alpha}{\sqrt{\left(\alpha + \beta\right) + 2.0}}} - 1.0\right)\right)}}{2.0}\]
    11. Applied fma-neg0.0

      \[\leadsto \frac{e^{\log \left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \color{blue}{\mathsf{fma}\left(\frac{1}{\sqrt{\left(\alpha + \beta\right) + 2.0}}, \frac{\alpha}{\sqrt{\left(\alpha + \beta\right) + 2.0}}, -1.0\right)}\right)}}{2.0}\]

    if 408422.37095922505 < alpha

    1. Initial program 49.9

      \[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\]
    2. Using strategy rm
    3. Applied div-sub49.9

      \[\leadsto \frac{\color{blue}{\left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \frac{\alpha}{\left(\alpha + \beta\right) + 2.0}\right)} + 1.0}{2.0}\]
    4. Applied associate-+l-48.4

      \[\leadsto \frac{\color{blue}{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)}}{2.0}\]
    5. Taylor expanded around -inf 17.6

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \color{blue}{\left(4.0 \cdot \frac{1}{{\alpha}^{2}} - \left(2.0 \cdot \frac{1}{\alpha} + 8.0 \cdot \frac{1}{{\alpha}^{3}}\right)\right)}}{2.0}\]
    6. Simplified17.6

      \[\leadsto \frac{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} - \color{blue}{\left(\left(\frac{4.0}{\alpha \cdot \alpha} - \frac{2.0}{\alpha}\right) - \frac{8.0}{\alpha \cdot \left(\alpha \cdot \alpha\right)}\right)}}{2.0}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification5.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 408422.37095922505:\\ \;\;\;\;\frac{e^{\log \left(\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \mathsf{fma}\left(\frac{1}{\sqrt{2.0 + \left(\beta + \alpha\right)}}, \frac{\alpha}{\sqrt{2.0 + \left(\beta + \alpha\right)}}, -1.0\right)\right)}}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\beta}{2.0 + \left(\beta + \alpha\right)} - \left(\left(\frac{4.0}{\alpha \cdot \alpha} - \frac{2.0}{\alpha}\right) - \frac{8.0}{\alpha \cdot \left(\alpha \cdot \alpha\right)}\right)}{2.0}\\ \end{array}\]

Reproduce

herbie shell --seed 2019134 +o rules:numerics
(FPCore (alpha beta)
  :name "Octave 3.8, jcobi/1"
  :pre (and (> alpha -1) (> beta -1))
  (/ (+ (/ (- beta alpha) (+ (+ alpha beta) 2.0)) 1.0) 2.0))