Average Error: 3.7 → 2.5
Time: 3.5m
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1\]
\[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
\[\begin{array}{l} \mathbf{if}\;\beta \le 2.8825254003061073 \cdot 10^{+127}:\\ \;\;\;\;\sqrt{\frac{\frac{1.0 + \left(\mathsf{fma}\left(\beta, \alpha, \alpha\right) + \beta\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}} \cdot \frac{\sqrt{\frac{\frac{1.0 + \left(\mathsf{fma}\left(\beta, \alpha, \alpha\right) + \beta\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}}{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\mathsf{fma}\left(2.0, \frac{1}{\beta \cdot \beta}, 1\right) - 1.0 \cdot \frac{1}{\beta}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}\\ \end{array}\]
\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}
\begin{array}{l}
\mathbf{if}\;\beta \le 2.8825254003061073 \cdot 10^{+127}:\\
\;\;\;\;\sqrt{\frac{\frac{1.0 + \left(\mathsf{fma}\left(\beta, \alpha, \alpha\right) + \beta\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}} \cdot \frac{\sqrt{\frac{\frac{1.0 + \left(\mathsf{fma}\left(\beta, \alpha, \alpha\right) + \beta\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}}{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}\\

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

\end{array}
double f(double alpha, double beta) {
        double r6675046 = alpha;
        double r6675047 = beta;
        double r6675048 = r6675046 + r6675047;
        double r6675049 = r6675047 * r6675046;
        double r6675050 = r6675048 + r6675049;
        double r6675051 = 1.0;
        double r6675052 = r6675050 + r6675051;
        double r6675053 = 2.0;
        double r6675054 = 1.0;
        double r6675055 = r6675053 * r6675054;
        double r6675056 = r6675048 + r6675055;
        double r6675057 = r6675052 / r6675056;
        double r6675058 = r6675057 / r6675056;
        double r6675059 = r6675056 + r6675051;
        double r6675060 = r6675058 / r6675059;
        return r6675060;
}

double f(double alpha, double beta) {
        double r6675061 = beta;
        double r6675062 = 2.8825254003061073e+127;
        bool r6675063 = r6675061 <= r6675062;
        double r6675064 = 1.0;
        double r6675065 = alpha;
        double r6675066 = fma(r6675061, r6675065, r6675065);
        double r6675067 = r6675066 + r6675061;
        double r6675068 = r6675064 + r6675067;
        double r6675069 = 2.0;
        double r6675070 = r6675061 + r6675065;
        double r6675071 = r6675069 + r6675070;
        double r6675072 = r6675068 / r6675071;
        double r6675073 = r6675072 / r6675071;
        double r6675074 = sqrt(r6675073);
        double r6675075 = r6675071 + r6675064;
        double r6675076 = r6675074 / r6675075;
        double r6675077 = r6675074 * r6675076;
        double r6675078 = 2.0;
        double r6675079 = 1.0;
        double r6675080 = r6675061 * r6675061;
        double r6675081 = r6675079 / r6675080;
        double r6675082 = fma(r6675078, r6675081, r6675079);
        double r6675083 = r6675079 / r6675061;
        double r6675084 = r6675064 * r6675083;
        double r6675085 = r6675082 - r6675084;
        double r6675086 = r6675085 / r6675071;
        double r6675087 = r6675086 / r6675075;
        double r6675088 = r6675063 ? r6675077 : r6675087;
        return r6675088;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if beta < 2.8825254003061073e+127

    1. Initial program 0.9

      \[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    2. Simplified0.9

      \[\leadsto \color{blue}{\frac{\frac{\frac{1.0 + \left(\beta + \mathsf{fma}\left(\beta, \alpha, \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}}\]
    3. Using strategy rm
    4. Applied *-un-lft-identity0.9

      \[\leadsto \frac{\frac{\frac{1.0 + \left(\beta + \mathsf{fma}\left(\beta, \alpha, \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \left(\beta + \alpha\right)\right) + \color{blue}{1 \cdot 1.0}}\]
    5. Applied *-un-lft-identity0.9

      \[\leadsto \frac{\frac{\frac{1.0 + \left(\beta + \mathsf{fma}\left(\beta, \alpha, \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \left(\beta + \color{blue}{1 \cdot \alpha}\right)\right) + 1 \cdot 1.0}\]
    6. Applied *-un-lft-identity0.9

      \[\leadsto \frac{\frac{\frac{1.0 + \left(\beta + \mathsf{fma}\left(\beta, \alpha, \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \left(\color{blue}{1 \cdot \beta} + 1 \cdot \alpha\right)\right) + 1 \cdot 1.0}\]
    7. Applied distribute-lft-out0.9

      \[\leadsto \frac{\frac{\frac{1.0 + \left(\beta + \mathsf{fma}\left(\beta, \alpha, \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \color{blue}{1 \cdot \left(\beta + \alpha\right)}\right) + 1 \cdot 1.0}\]
    8. Applied *-un-lft-identity0.9

      \[\leadsto \frac{\frac{\frac{1.0 + \left(\beta + \mathsf{fma}\left(\beta, \alpha, \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}{\left(\color{blue}{1 \cdot 2} + 1 \cdot \left(\beta + \alpha\right)\right) + 1 \cdot 1.0}\]
    9. Applied distribute-lft-out0.9

      \[\leadsto \frac{\frac{\frac{1.0 + \left(\beta + \mathsf{fma}\left(\beta, \alpha, \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}{\color{blue}{1 \cdot \left(2 + \left(\beta + \alpha\right)\right)} + 1 \cdot 1.0}\]
    10. Applied distribute-lft-out0.9

      \[\leadsto \frac{\frac{\frac{1.0 + \left(\beta + \mathsf{fma}\left(\beta, \alpha, \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}{\color{blue}{1 \cdot \left(\left(2 + \left(\beta + \alpha\right)\right) + 1.0\right)}}\]
    11. Applied add-sqr-sqrt1.0

      \[\leadsto \frac{\color{blue}{\sqrt{\frac{\frac{1.0 + \left(\beta + \mathsf{fma}\left(\beta, \alpha, \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}} \cdot \sqrt{\frac{\frac{1.0 + \left(\beta + \mathsf{fma}\left(\beta, \alpha, \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}}}{1 \cdot \left(\left(2 + \left(\beta + \alpha\right)\right) + 1.0\right)}\]
    12. Applied times-frac1.0

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

    if 2.8825254003061073e+127 < beta

    1. Initial program 14.9

      \[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    2. Simplified14.9

      \[\leadsto \color{blue}{\frac{\frac{\frac{1.0 + \left(\beta + \mathsf{fma}\left(\beta, \alpha, \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}}\]
    3. Taylor expanded around -inf 8.9

      \[\leadsto \frac{\frac{\color{blue}{\left(2.0 \cdot \frac{1}{{\beta}^{2}} + 1\right) - 1.0 \cdot \frac{1}{\beta}}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}\]
    4. Simplified8.9

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\beta \le 2.8825254003061073 \cdot 10^{+127}:\\ \;\;\;\;\sqrt{\frac{\frac{1.0 + \left(\mathsf{fma}\left(\beta, \alpha, \alpha\right) + \beta\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}} \cdot \frac{\sqrt{\frac{\frac{1.0 + \left(\mathsf{fma}\left(\beta, \alpha, \alpha\right) + \beta\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}}{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\mathsf{fma}\left(2.0, \frac{1}{\beta \cdot \beta}, 1\right) - 1.0 \cdot \frac{1}{\beta}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}\\ \end{array}\]

Reproduce

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