Average Error: 3.5 → 2.3
Time: 41.4s
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}\;\alpha \le 1.8207254528844126 \cdot 10^{+167}:\\ \;\;\;\;\frac{\frac{\frac{1}{\left(\alpha + \beta\right) + 2} \cdot \left(1.0 + \mathsf{fma}\left(\beta, \alpha, \alpha + \beta\right)\right)}{\left(\alpha + \beta\right) + 2}}{\left(1.0 + \left(\alpha + \beta\right)\right) + 2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(0.25, \alpha, \mathsf{fma}\left(\beta, 0.25, 0.5\right)\right)}{\left(\left(\alpha + \beta\right) + 2\right) \cdot \left(2 - \left(\alpha + \beta\right)\right)} \cdot \frac{2 - \left(\alpha + \beta\right)}{1.0 + \left(\left(\alpha + \beta\right) + 2\right)}\\ \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}\;\alpha \le 1.8207254528844126 \cdot 10^{+167}:\\
\;\;\;\;\frac{\frac{\frac{1}{\left(\alpha + \beta\right) + 2} \cdot \left(1.0 + \mathsf{fma}\left(\beta, \alpha, \alpha + \beta\right)\right)}{\left(\alpha + \beta\right) + 2}}{\left(1.0 + \left(\alpha + \beta\right)\right) + 2}\\

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

\end{array}
double f(double alpha, double beta) {
        double r3372784 = alpha;
        double r3372785 = beta;
        double r3372786 = r3372784 + r3372785;
        double r3372787 = r3372785 * r3372784;
        double r3372788 = r3372786 + r3372787;
        double r3372789 = 1.0;
        double r3372790 = r3372788 + r3372789;
        double r3372791 = 2.0;
        double r3372792 = 1.0;
        double r3372793 = r3372791 * r3372792;
        double r3372794 = r3372786 + r3372793;
        double r3372795 = r3372790 / r3372794;
        double r3372796 = r3372795 / r3372794;
        double r3372797 = r3372794 + r3372789;
        double r3372798 = r3372796 / r3372797;
        return r3372798;
}

double f(double alpha, double beta) {
        double r3372799 = alpha;
        double r3372800 = 1.8207254528844126e+167;
        bool r3372801 = r3372799 <= r3372800;
        double r3372802 = 1.0;
        double r3372803 = beta;
        double r3372804 = r3372799 + r3372803;
        double r3372805 = 2.0;
        double r3372806 = r3372804 + r3372805;
        double r3372807 = r3372802 / r3372806;
        double r3372808 = 1.0;
        double r3372809 = fma(r3372803, r3372799, r3372804);
        double r3372810 = r3372808 + r3372809;
        double r3372811 = r3372807 * r3372810;
        double r3372812 = r3372811 / r3372806;
        double r3372813 = r3372808 + r3372804;
        double r3372814 = r3372813 + r3372805;
        double r3372815 = r3372812 / r3372814;
        double r3372816 = 0.25;
        double r3372817 = 0.5;
        double r3372818 = fma(r3372803, r3372816, r3372817);
        double r3372819 = fma(r3372816, r3372799, r3372818);
        double r3372820 = r3372805 - r3372804;
        double r3372821 = r3372806 * r3372820;
        double r3372822 = r3372819 / r3372821;
        double r3372823 = r3372808 + r3372806;
        double r3372824 = r3372820 / r3372823;
        double r3372825 = r3372822 * r3372824;
        double r3372826 = r3372801 ? r3372815 : r3372825;
        return r3372826;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Split input into 2 regimes
  2. if alpha < 1.8207254528844126e+167

    1. Initial program 1.4

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

      \[\leadsto \color{blue}{\frac{\frac{\frac{1.0 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\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 div-inv1.4

      \[\leadsto \frac{\frac{\color{blue}{\left(1.0 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)\right) \cdot \frac{1}{2 + \left(\beta + \alpha\right)}}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}\]
    5. Using strategy rm
    6. Applied associate-+l+1.4

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

    if 1.8207254528844126e+167 < alpha

    1. Initial program 15.2

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

      \[\leadsto \color{blue}{\frac{\frac{\frac{1.0 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\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 div-inv15.2

      \[\leadsto \frac{\frac{\color{blue}{\left(1.0 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)\right) \cdot \frac{1}{2 + \left(\beta + \alpha\right)}}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}\]
    5. Using strategy rm
    6. Applied associate-+l+15.2

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

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

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

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

      \[\leadsto \frac{\frac{\left(1.0 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)\right) \cdot \frac{1}{2 + \left(\beta + \alpha\right)}}{\color{blue}{\frac{2 \cdot 2 - \left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right)}{2 - \left(\beta + \alpha\right)}}}}{1 \cdot \left(2 + \left(\left(\beta + \alpha\right) + 1.0\right)\right)}\]
    12. Applied associate-/r/16.3

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

      \[\leadsto \color{blue}{\frac{\frac{\left(1.0 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)\right) \cdot \frac{1}{2 + \left(\beta + \alpha\right)}}{2 \cdot 2 - \left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right)}}{1} \cdot \frac{2 - \left(\beta + \alpha\right)}{2 + \left(\left(\beta + \alpha\right) + 1.0\right)}}\]
    14. Simplified16.3

      \[\leadsto \color{blue}{\frac{\frac{1.0 + \mathsf{fma}\left(\alpha, \beta, \beta + \alpha\right)}{\left(\beta + \alpha\right) + 2}}{\left(2 - \left(\beta + \alpha\right)\right) \cdot \left(\left(\beta + \alpha\right) + 2\right)}} \cdot \frac{2 - \left(\beta + \alpha\right)}{2 + \left(\left(\beta + \alpha\right) + 1.0\right)}\]
    15. Simplified16.3

      \[\leadsto \frac{\frac{1.0 + \mathsf{fma}\left(\alpha, \beta, \beta + \alpha\right)}{\left(\beta + \alpha\right) + 2}}{\left(2 - \left(\beta + \alpha\right)\right) \cdot \left(\left(\beta + \alpha\right) + 2\right)} \cdot \color{blue}{\frac{2 - \left(\beta + \alpha\right)}{\left(\left(\beta + \alpha\right) + 2\right) + 1.0}}\]
    16. Taylor expanded around 0 7.4

      \[\leadsto \frac{\color{blue}{0.25 \cdot \alpha + \left(0.25 \cdot \beta + 0.5\right)}}{\left(2 - \left(\beta + \alpha\right)\right) \cdot \left(\left(\beta + \alpha\right) + 2\right)} \cdot \frac{2 - \left(\beta + \alpha\right)}{\left(\left(\beta + \alpha\right) + 2\right) + 1.0}\]
    17. Simplified7.4

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

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

Reproduce

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