Average Error: 23.7 → 11.0
Time: 16.2s
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1 \land i \gt 0.0\]
\[\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2} + 1}{2}\]
\[\begin{array}{l} \mathbf{if}\;\alpha \le 1.5371929371909745 \cdot 10^{209}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\frac{\frac{\alpha + \beta}{\sqrt{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2}}}{\sqrt{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2}}, \frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}, 1\right)}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{2}{\alpha} + \left(\frac{8}{{\alpha}^{3}} - \frac{4}{\alpha \cdot \alpha}\right)}{2}\\ \end{array}\]
\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2} + 1}{2}
\begin{array}{l}
\mathbf{if}\;\alpha \le 1.5371929371909745 \cdot 10^{209}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{\frac{\alpha + \beta}{\sqrt{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2}}}{\sqrt{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2}}, \frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}, 1\right)}{2}\\

\mathbf{else}:\\
\;\;\;\;\frac{\frac{2}{\alpha} + \left(\frac{8}{{\alpha}^{3}} - \frac{4}{\alpha \cdot \alpha}\right)}{2}\\

\end{array}
double f(double alpha, double beta, double i) {
        double r156700 = alpha;
        double r156701 = beta;
        double r156702 = r156700 + r156701;
        double r156703 = r156701 - r156700;
        double r156704 = r156702 * r156703;
        double r156705 = 2.0;
        double r156706 = i;
        double r156707 = r156705 * r156706;
        double r156708 = r156702 + r156707;
        double r156709 = r156704 / r156708;
        double r156710 = r156708 + r156705;
        double r156711 = r156709 / r156710;
        double r156712 = 1.0;
        double r156713 = r156711 + r156712;
        double r156714 = r156713 / r156705;
        return r156714;
}

double f(double alpha, double beta, double i) {
        double r156715 = alpha;
        double r156716 = 1.5371929371909745e+209;
        bool r156717 = r156715 <= r156716;
        double r156718 = beta;
        double r156719 = r156715 + r156718;
        double r156720 = 2.0;
        double r156721 = i;
        double r156722 = fma(r156720, r156721, r156719);
        double r156723 = r156722 + r156720;
        double r156724 = sqrt(r156723);
        double r156725 = r156719 / r156724;
        double r156726 = r156725 / r156724;
        double r156727 = r156718 - r156715;
        double r156728 = r156727 / r156722;
        double r156729 = 1.0;
        double r156730 = fma(r156726, r156728, r156729);
        double r156731 = r156730 / r156720;
        double r156732 = r156720 / r156715;
        double r156733 = 8.0;
        double r156734 = 3.0;
        double r156735 = pow(r156715, r156734);
        double r156736 = r156733 / r156735;
        double r156737 = 4.0;
        double r156738 = r156715 * r156715;
        double r156739 = r156737 / r156738;
        double r156740 = r156736 - r156739;
        double r156741 = r156732 + r156740;
        double r156742 = r156741 / r156720;
        double r156743 = r156717 ? r156731 : r156742;
        return r156743;
}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

  1. Split input into 2 regimes
  2. if alpha < 1.5371929371909745e+209

    1. Initial program 18.9

      \[\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2} + 1}{2}\]
    2. Simplified7.4

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

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

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

    if 1.5371929371909745e+209 < alpha

    1. Initial program 64.0

      \[\frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2} + 1}{2}\]
    2. Simplified50.3

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

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

      \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{\frac{\frac{\alpha + \beta}{\sqrt{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2}}}{\sqrt{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2}}}, \frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}, 1\right)}{2}\]
    6. Taylor expanded around inf 40.5

      \[\leadsto \frac{\color{blue}{\left(2 \cdot \frac{1}{\alpha} + 8 \cdot \frac{1}{{\alpha}^{3}}\right) - 4 \cdot \frac{1}{{\alpha}^{2}}}}{2}\]
    7. Simplified40.5

      \[\leadsto \frac{\color{blue}{\frac{2}{\alpha} + \left(\frac{8}{{\alpha}^{3}} - \frac{4}{\alpha \cdot \alpha}\right)}}{2}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification11.0

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 1.5371929371909745 \cdot 10^{209}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\frac{\frac{\alpha + \beta}{\sqrt{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2}}}{\sqrt{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2}}, \frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}, 1\right)}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\frac{2}{\alpha} + \left(\frac{8}{{\alpha}^{3}} - \frac{4}{\alpha \cdot \alpha}\right)}{2}\\ \end{array}\]

Reproduce

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