Average Error: 16.7 → 6.1
Time: 35.7s
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{e^{\log \left(\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)\right) - \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) + \frac{\beta}{\left(\beta + \alpha\right) + 2.0} \cdot \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right)\right)\right)}}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\beta}{\left(\beta + \alpha\right) + 2.0} - \left(\left(\frac{4.0}{\alpha \cdot \alpha} - \frac{2.0}{\alpha}\right) - \frac{\frac{8.0}{\alpha}}{\alpha \cdot \alpha}\right)}{2.0}\\ \end{array}\]
double f(double alpha, double beta) {
        double r6923281 = beta;
        double r6923282 = alpha;
        double r6923283 = r6923281 - r6923282;
        double r6923284 = r6923282 + r6923281;
        double r6923285 = 2.0;
        double r6923286 = r6923284 + r6923285;
        double r6923287 = r6923283 / r6923286;
        double r6923288 = 1.0;
        double r6923289 = r6923287 + r6923288;
        double r6923290 = r6923289 / r6923285;
        return r6923290;
}

double f(double alpha, double beta) {
        double r6923291 = alpha;
        double r6923292 = 1.2004402010900637e+17;
        bool r6923293 = r6923291 <= r6923292;
        double r6923294 = beta;
        double r6923295 = r6923294 + r6923291;
        double r6923296 = 2.0;
        double r6923297 = r6923295 + r6923296;
        double r6923298 = r6923294 / r6923297;
        double r6923299 = r6923298 * r6923298;
        double r6923300 = r6923298 * r6923299;
        double r6923301 = r6923291 / r6923297;
        double r6923302 = 1.0;
        double r6923303 = r6923301 - r6923302;
        double r6923304 = r6923303 * r6923303;
        double r6923305 = r6923304 * r6923303;
        double r6923306 = r6923300 - r6923305;
        double r6923307 = log(r6923306);
        double r6923308 = r6923298 * r6923303;
        double r6923309 = r6923304 + r6923308;
        double r6923310 = r6923299 + r6923309;
        double r6923311 = log(r6923310);
        double r6923312 = r6923307 - r6923311;
        double r6923313 = exp(r6923312);
        double r6923314 = r6923313 / r6923296;
        double r6923315 = 4.0;
        double r6923316 = r6923291 * r6923291;
        double r6923317 = r6923315 / r6923316;
        double r6923318 = r6923296 / r6923291;
        double r6923319 = r6923317 - r6923318;
        double r6923320 = 8.0;
        double r6923321 = r6923320 / r6923291;
        double r6923322 = r6923321 / r6923316;
        double r6923323 = r6923319 - r6923322;
        double r6923324 = r6923298 - r6923323;
        double r6923325 = r6923324 / r6923296;
        double r6923326 = r6923293 ? r6923314 : r6923325;
        return r6923326;
}

\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{e^{\log \left(\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)\right) - \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) + \frac{\beta}{\left(\beta + \alpha\right) + 2.0} \cdot \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right)\right)\right)}}{2.0}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{\beta}{\left(\beta + \alpha\right) + 2.0} - \left(\left(\frac{4.0}{\alpha \cdot \alpha} - \frac{2.0}{\alpha}\right) - \frac{\frac{8.0}{\alpha}}{\alpha \cdot \alpha}\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. Simplified0.5

      \[\leadsto \frac{e^{\color{blue}{\log \left(\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(\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) \cdot \left(\frac{\alpha}{2.0 + \left(\alpha + \beta\right)} - 1.0\right)\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}\]

    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(\left(\frac{4.0}{\alpha \cdot \alpha} - \frac{2.0}{\alpha}\right) - \frac{\frac{8.0}{\alpha}}{\alpha \cdot \alpha}\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{e^{\log \left(\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)\right) - \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) + \frac{\beta}{\left(\beta + \alpha\right) + 2.0} \cdot \left(\frac{\alpha}{\left(\beta + \alpha\right) + 2.0} - 1.0\right)\right)\right)}}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\beta}{\left(\beta + \alpha\right) + 2.0} - \left(\left(\frac{4.0}{\alpha \cdot \alpha} - \frac{2.0}{\alpha}\right) - \frac{\frac{8.0}{\alpha}}{\alpha \cdot \alpha}\right)}{2.0}\\ \end{array}\]

Reproduce

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