Average Error: 3.4 → 3.4
Time: 9.9s
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1\]
\[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
\[\begin{array}{l} \mathbf{if}\;\alpha \le 2.601017870935635787954715209782533925741 \cdot 10^{45}:\\ \;\;\;\;\frac{\frac{\beta + \left(\alpha + \mathsf{fma}\left(\alpha, \beta, 1\right)\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) \cdot \left(\beta + \left(\alpha + \mathsf{fma}\left(1, 2, 1\right)\right)\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\alpha + \left(\beta + 1\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) \cdot \left(\beta + \left(\alpha + \mathsf{fma}\left(1, 2, 1\right)\right)\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}\\ \end{array}\]
\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}
\begin{array}{l}
\mathbf{if}\;\alpha \le 2.601017870935635787954715209782533925741 \cdot 10^{45}:\\
\;\;\;\;\frac{\frac{\beta + \left(\alpha + \mathsf{fma}\left(\alpha, \beta, 1\right)\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) \cdot \left(\beta + \left(\alpha + \mathsf{fma}\left(1, 2, 1\right)\right)\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}\\

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

\end{array}
double f(double alpha, double beta) {
        double r89226 = alpha;
        double r89227 = beta;
        double r89228 = r89226 + r89227;
        double r89229 = r89227 * r89226;
        double r89230 = r89228 + r89229;
        double r89231 = 1.0;
        double r89232 = r89230 + r89231;
        double r89233 = 2.0;
        double r89234 = r89233 * r89231;
        double r89235 = r89228 + r89234;
        double r89236 = r89232 / r89235;
        double r89237 = r89236 / r89235;
        double r89238 = r89235 + r89231;
        double r89239 = r89237 / r89238;
        return r89239;
}

double f(double alpha, double beta) {
        double r89240 = alpha;
        double r89241 = 2.6010178709356358e+45;
        bool r89242 = r89240 <= r89241;
        double r89243 = beta;
        double r89244 = 1.0;
        double r89245 = fma(r89240, r89243, r89244);
        double r89246 = r89240 + r89245;
        double r89247 = r89243 + r89246;
        double r89248 = 2.0;
        double r89249 = r89240 + r89243;
        double r89250 = fma(r89244, r89248, r89249);
        double r89251 = fma(r89244, r89248, r89244);
        double r89252 = r89240 + r89251;
        double r89253 = r89243 + r89252;
        double r89254 = r89250 * r89253;
        double r89255 = r89247 / r89254;
        double r89256 = r89255 / r89250;
        double r89257 = r89243 + r89244;
        double r89258 = r89240 + r89257;
        double r89259 = r89258 / r89254;
        double r89260 = r89259 / r89250;
        double r89261 = r89242 ? r89256 : r89260;
        return r89261;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if alpha < 2.6010178709356358e+45

    1. Initial program 0.2

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

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

    if 2.6010178709356358e+45 < alpha

    1. Initial program 11.4

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

      \[\leadsto \color{blue}{\frac{\frac{\beta + \left(\alpha + \mathsf{fma}\left(\alpha, \beta, 1\right)\right)}{\mathsf{fma}\left(1, 2, \alpha + \beta\right) \cdot \left(\beta + \left(\alpha + \mathsf{fma}\left(1, 2, 1\right)\right)\right)}}{\mathsf{fma}\left(1, 2, \alpha + \beta\right)}}\]
    3. Taylor expanded around 0 10.8

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

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

Reproduce

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