Average Error: 16.8 → 6.4
Time: 5.9s
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 4.83625907357855693 \cdot 10^{29}:\\ \;\;\;\;\frac{\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\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 4.83625907357855693 \cdot 10^{29}:\\
\;\;\;\;\frac{\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\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 r115108 = beta;
        double r115109 = alpha;
        double r115110 = r115108 - r115109;
        double r115111 = r115109 + r115108;
        double r115112 = 2.0;
        double r115113 = r115111 + r115112;
        double r115114 = r115110 / r115113;
        double r115115 = 1.0;
        double r115116 = r115114 + r115115;
        double r115117 = r115116 / r115112;
        return r115117;
}

double f(double alpha, double beta) {
        double r115118 = alpha;
        double r115119 = 4.836259073578557e+29;
        bool r115120 = r115118 <= r115119;
        double r115121 = beta;
        double r115122 = r115118 + r115121;
        double r115123 = 2.0;
        double r115124 = r115122 + r115123;
        double r115125 = r115121 / r115124;
        double r115126 = r115122 * r115122;
        double r115127 = r115123 * r115123;
        double r115128 = r115126 - r115127;
        double r115129 = r115118 / r115128;
        double r115130 = r115122 - r115123;
        double r115131 = 1.0;
        double r115132 = -r115131;
        double r115133 = fma(r115129, r115130, r115132);
        double r115134 = r115125 - r115133;
        double r115135 = r115134 / r115123;
        double r115136 = 4.0;
        double r115137 = 1.0;
        double r115138 = 2.0;
        double r115139 = pow(r115118, r115138);
        double r115140 = r115137 / r115139;
        double r115141 = r115137 / r115118;
        double r115142 = 8.0;
        double r115143 = 3.0;
        double r115144 = pow(r115118, r115143);
        double r115145 = r115137 / r115144;
        double r115146 = r115142 * r115145;
        double r115147 = fma(r115123, r115141, r115146);
        double r115148 = -r115147;
        double r115149 = fma(r115136, r115140, r115148);
        double r115150 = r115125 - r115149;
        double r115151 = r115150 / r115123;
        double r115152 = r115120 ? r115135 : r115151;
        return r115152;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if alpha < 4.836259073578557e+29

    1. Initial program 1.4

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

      \[\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-1.4

      \[\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 flip-+1.4

      \[\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\right)}{2}\]
    7. Applied associate-/r/1.4

      \[\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\right)}{2}\]
    8. Applied fma-neg1.3

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

    if 4.836259073578557e+29 < alpha

    1. Initial program 51.1

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

      \[\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-49.5

      \[\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 17.6

      \[\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. Simplified17.6

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 4.83625907357855693 \cdot 10^{29}:\\ \;\;\;\;\frac{\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\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 2020046 +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))