Average Error: 16.7 → 6.1
Time: 2.2m
Precision: 64
\[\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}\]
\[\begin{array}{l} \mathbf{if}\;\alpha \le 1.2004402010900637 \cdot 10^{+17}:\\ \;\;\;\;\frac{\frac{\frac{\beta}{\left(\beta + \alpha\right) + 2.0} \cdot \left(\frac{\beta}{\left(\beta + \alpha\right) + 2.0} \cdot \frac{\beta}{\left(\beta + \alpha\right) + 2.0}\right) - \left(\left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right) \cdot \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right)\right) \cdot \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right)}{e^{\log \left(\frac{\beta}{\left(\beta + \alpha\right) + 2.0} \cdot \frac{\beta}{\left(\beta + \alpha\right) + 2.0} + \left(\left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right) \cdot \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right) + \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right) \cdot \frac{\beta}{\left(\beta + \alpha\right) + 2.0}\right)\right)}}}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\beta}{\left(\beta + \alpha\right) + 2.0} - \left(\frac{4.0}{\alpha \cdot \alpha} - \left(\frac{2.0}{\alpha} + \frac{\frac{8.0}{\alpha \cdot \alpha}}{\alpha}\right)\right)}{2.0}\\ \end{array}\]
double f(double alpha, double beta) {
        double r17638300 = beta;
        double r17638301 = alpha;
        double r17638302 = r17638300 - r17638301;
        double r17638303 = r17638301 + r17638300;
        double r17638304 = 2.0;
        double r17638305 = r17638303 + r17638304;
        double r17638306 = r17638302 / r17638305;
        double r17638307 = 1.0;
        double r17638308 = r17638306 + r17638307;
        double r17638309 = r17638308 / r17638304;
        return r17638309;
}

double f(double alpha, double beta) {
        double r17638310 = alpha;
        double r17638311 = 1.2004402010900637e+17;
        bool r17638312 = r17638310 <= r17638311;
        double r17638313 = beta;
        double r17638314 = r17638313 + r17638310;
        double r17638315 = 2.0;
        double r17638316 = r17638314 + r17638315;
        double r17638317 = r17638313 / r17638316;
        double r17638318 = r17638317 * r17638317;
        double r17638319 = r17638317 * r17638318;
        double r17638320 = r17638310 / r17638316;
        double r17638321 = 1.0;
        double r17638322 = r17638320 - r17638321;
        double r17638323 = r17638322 * r17638322;
        double r17638324 = r17638323 * r17638322;
        double r17638325 = r17638319 - r17638324;
        double r17638326 = r17638322 * r17638317;
        double r17638327 = r17638323 + r17638326;
        double r17638328 = r17638318 + r17638327;
        double r17638329 = log(r17638328);
        double r17638330 = exp(r17638329);
        double r17638331 = r17638325 / r17638330;
        double r17638332 = r17638331 / r17638315;
        double r17638333 = 4.0;
        double r17638334 = r17638310 * r17638310;
        double r17638335 = r17638333 / r17638334;
        double r17638336 = r17638315 / r17638310;
        double r17638337 = 8.0;
        double r17638338 = r17638337 / r17638334;
        double r17638339 = r17638338 / r17638310;
        double r17638340 = r17638336 + r17638339;
        double r17638341 = r17638335 - r17638340;
        double r17638342 = r17638317 - r17638341;
        double r17638343 = r17638342 / r17638315;
        double r17638344 = r17638312 ? r17638332 : r17638343;
        return r17638344;
}

\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2.0} + 1.0}{2.0}
\begin{array}{l}
\mathbf{if}\;\alpha \le 1.2004402010900637 \cdot 10^{+17}:\\
\;\;\;\;\frac{\frac{\frac{\beta}{\left(\beta + \alpha\right) + 2.0} \cdot \left(\frac{\beta}{\left(\beta + \alpha\right) + 2.0} \cdot \frac{\beta}{\left(\beta + \alpha\right) + 2.0}\right) - \left(\left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right) \cdot \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right)\right) \cdot \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right)}{e^{\log \left(\frac{\beta}{\left(\beta + \alpha\right) + 2.0} \cdot \frac{\beta}{\left(\beta + \alpha\right) + 2.0} + \left(\left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right) \cdot \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right) + \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right) \cdot \frac{\beta}{\left(\beta + \alpha\right) + 2.0}\right)\right)}}}{2.0}\\

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

\end{array}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if alpha < 1.2004402010900637e+17

    1. Initial program 0.5

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

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

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

      \[\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 flip3--0.5

      \[\leadsto \frac{e^{\log \color{blue}{\left(\frac{{\left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0}\right)}^{3} - {\left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)}^{3}}{\frac{\beta}{\left(\alpha + \beta\right) + 2.0} \cdot \frac{\beta}{\left(\alpha + \beta\right) + 2.0} + \left(\left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right) \cdot \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right) + \frac{\beta}{\left(\alpha + \beta\right) + 2.0} \cdot \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)\right)}\right)}}}{2.0}\]
    9. Applied log-div0.5

      \[\leadsto \frac{e^{\color{blue}{\log \left({\left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0}\right)}^{3} - {\left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)}^{3}\right) - \log \left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0} \cdot \frac{\beta}{\left(\alpha + \beta\right) + 2.0} + \left(\left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right) \cdot \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right) + \frac{\beta}{\left(\alpha + \beta\right) + 2.0} \cdot \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)\right)\right)}}}{2.0}\]
    10. Applied exp-diff0.5

      \[\leadsto \frac{\color{blue}{\frac{e^{\log \left({\left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0}\right)}^{3} - {\left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)}^{3}\right)}}{e^{\log \left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0} \cdot \frac{\beta}{\left(\alpha + \beta\right) + 2.0} + \left(\left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right) \cdot \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right) + \frac{\beta}{\left(\alpha + \beta\right) + 2.0} \cdot \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)\right)\right)}}}}{2.0}\]
    11. Simplified0.5

      \[\leadsto \frac{\frac{\color{blue}{\left(\frac{\beta}{2.0 + \left(\alpha + \beta\right)} \cdot \frac{\beta}{2.0 + \left(\alpha + \beta\right)}\right) \cdot \frac{\beta}{2.0 + \left(\alpha + \beta\right)} - \left(\frac{\alpha}{2.0 + \left(\alpha + \beta\right)} - 1.0\right) \cdot \left(\left(\frac{\alpha}{2.0 + \left(\alpha + \beta\right)} - 1.0\right) \cdot \left(\frac{\alpha}{2.0 + \left(\alpha + \beta\right)} - 1.0\right)\right)}}{e^{\log \left(\frac{\beta}{\left(\alpha + \beta\right) + 2.0} \cdot \frac{\beta}{\left(\alpha + \beta\right) + 2.0} + \left(\left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right) \cdot \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right) + \frac{\beta}{\left(\alpha + \beta\right) + 2.0} \cdot \left(\frac{\alpha}{\left(\alpha + \beta\right) + 2.0} - 1.0\right)\right)\right)}}}{2.0}\]

    if 1.2004402010900637e+17 < alpha

    1. Initial program 50.7

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

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

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

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 1.2004402010900637 \cdot 10^{+17}:\\ \;\;\;\;\frac{\frac{\frac{\beta}{\left(\beta + \alpha\right) + 2.0} \cdot \left(\frac{\beta}{\left(\beta + \alpha\right) + 2.0} \cdot \frac{\beta}{\left(\beta + \alpha\right) + 2.0}\right) - \left(\left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right) \cdot \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right)\right) \cdot \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right)}{e^{\log \left(\frac{\beta}{\left(\beta + \alpha\right) + 2.0} \cdot \frac{\beta}{\left(\beta + \alpha\right) + 2.0} + \left(\left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right) \cdot \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right) + \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right) \cdot \frac{\beta}{\left(\beta + \alpha\right) + 2.0}\right)\right)}}}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\beta}{\left(\beta + \alpha\right) + 2.0} - \left(\frac{4.0}{\alpha \cdot \alpha} - \left(\frac{2.0}{\alpha} + \frac{\frac{8.0}{\alpha \cdot \alpha}}{\alpha}\right)\right)}{2.0}\\ \end{array}\]

Reproduce

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