Average Error: 3.5 → 2.4
Time: 40.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 3.892030205181793265561609337251791430227 \cdot 10^{214}:\\ \;\;\;\;\frac{\frac{\frac{1}{\sqrt{\mathsf{fma}\left(2, 1, \alpha + \beta\right)}}}{\frac{\mathsf{fma}\left(2, 1, \alpha + \beta\right)}{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \alpha + \beta\right)}{\sqrt{\mathsf{fma}\left(2, 1, \alpha + \beta\right)}}}}}{1 + \mathsf{fma}\left(2, 1, \alpha + \beta\right)}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{\frac{1}{\sqrt{\mathsf{fma}\left(2, 1, \alpha + \beta\right)}}}{\frac{\mathsf{fma}\left(2, 1, \alpha + \beta\right)}{\mathsf{fma}\left(\sqrt{0.5}, \beta, \mathsf{fma}\left(1, \sqrt{0.5}, \alpha \cdot \sqrt{0.5}\right)\right) - \mathsf{fma}\left(0.5, \beta \cdot \sqrt{0.125}, 0.125 \cdot \frac{\alpha}{\sqrt{0.5}}\right)}}}{1 + \mathsf{fma}\left(2, 1, \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 3.892030205181793265561609337251791430227 \cdot 10^{214}:\\
\;\;\;\;\frac{\frac{\frac{1}{\sqrt{\mathsf{fma}\left(2, 1, \alpha + \beta\right)}}}{\frac{\mathsf{fma}\left(2, 1, \alpha + \beta\right)}{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \alpha + \beta\right)}{\sqrt{\mathsf{fma}\left(2, 1, \alpha + \beta\right)}}}}}{1 + \mathsf{fma}\left(2, 1, \alpha + \beta\right)}\\

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

\end{array}
double f(double alpha, double beta) {
        double r4812036 = alpha;
        double r4812037 = beta;
        double r4812038 = r4812036 + r4812037;
        double r4812039 = r4812037 * r4812036;
        double r4812040 = r4812038 + r4812039;
        double r4812041 = 1.0;
        double r4812042 = r4812040 + r4812041;
        double r4812043 = 2.0;
        double r4812044 = r4812043 * r4812041;
        double r4812045 = r4812038 + r4812044;
        double r4812046 = r4812042 / r4812045;
        double r4812047 = r4812046 / r4812045;
        double r4812048 = r4812045 + r4812041;
        double r4812049 = r4812047 / r4812048;
        return r4812049;
}

double f(double alpha, double beta) {
        double r4812050 = alpha;
        double r4812051 = 3.8920302051817933e+214;
        bool r4812052 = r4812050 <= r4812051;
        double r4812053 = 1.0;
        double r4812054 = 2.0;
        double r4812055 = 1.0;
        double r4812056 = beta;
        double r4812057 = r4812050 + r4812056;
        double r4812058 = fma(r4812054, r4812055, r4812057);
        double r4812059 = sqrt(r4812058);
        double r4812060 = r4812053 / r4812059;
        double r4812061 = fma(r4812056, r4812050, r4812057);
        double r4812062 = r4812055 + r4812061;
        double r4812063 = r4812062 / r4812059;
        double r4812064 = r4812058 / r4812063;
        double r4812065 = r4812060 / r4812064;
        double r4812066 = r4812055 + r4812058;
        double r4812067 = r4812065 / r4812066;
        double r4812068 = 0.5;
        double r4812069 = sqrt(r4812068);
        double r4812070 = r4812050 * r4812069;
        double r4812071 = fma(r4812055, r4812069, r4812070);
        double r4812072 = fma(r4812069, r4812056, r4812071);
        double r4812073 = 0.125;
        double r4812074 = sqrt(r4812073);
        double r4812075 = r4812056 * r4812074;
        double r4812076 = r4812050 / r4812069;
        double r4812077 = r4812073 * r4812076;
        double r4812078 = fma(r4812068, r4812075, r4812077);
        double r4812079 = r4812072 - r4812078;
        double r4812080 = r4812058 / r4812079;
        double r4812081 = r4812060 / r4812080;
        double r4812082 = r4812081 / r4812066;
        double r4812083 = r4812052 ? r4812067 : r4812082;
        return r4812083;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if alpha < 3.8920302051817933e+214

    1. Initial program 2.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}\]
    2. Simplified2.1

      \[\leadsto \color{blue}{\frac{\frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}}\]
    3. Using strategy rm
    4. Applied add-sqr-sqrt2.6

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

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

      \[\leadsto \frac{\frac{\color{blue}{\frac{1}{\sqrt{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}} \cdot \frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\sqrt{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}\]
    7. Applied associate-/l*2.1

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

    if 3.8920302051817933e+214 < alpha

    1. Initial program 16.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. Simplified16.4

      \[\leadsto \color{blue}{\frac{\frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}}\]
    3. Using strategy rm
    4. Applied add-sqr-sqrt16.4

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

      \[\leadsto \frac{\frac{\frac{\color{blue}{1 \cdot \left(1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)\right)}}{\sqrt{\mathsf{fma}\left(2, 1, \beta + \alpha\right)} \cdot \sqrt{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}\]
    6. Applied times-frac16.4

      \[\leadsto \frac{\frac{\color{blue}{\frac{1}{\sqrt{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}} \cdot \frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\sqrt{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}}}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}\]
    7. Applied associate-/l*16.4

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

      \[\leadsto \frac{\frac{\frac{1}{\sqrt{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}}{\frac{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}{\color{blue}{\left(\sqrt{0.5} \cdot \beta + \left(1 \cdot \sqrt{0.5} + \sqrt{0.5} \cdot \alpha\right)\right) - \left(0.5 \cdot \left(\beta \cdot \sqrt{0.125}\right) + 0.125 \cdot \frac{\alpha}{\sqrt{0.5}}\right)}}}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}\]
    9. Simplified5.0

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

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

Reproduce

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