Average Error: 24.2 → 11.5
Time: 7.7s
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.4714840476837656 \cdot 10^{148}:\\ \;\;\;\;\frac{e^{\log \left(\mathsf{fma}\left(\frac{\frac{\alpha + \beta}{1}}{1}, \frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, 1\right)\right)}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(2, \frac{1}{\alpha}, 8 \cdot \frac{1}{{\alpha}^{3}} - 4 \cdot \frac{1}{{\alpha}^{2}}\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.4714840476837656 \cdot 10^{148}:\\
\;\;\;\;\frac{e^{\log \left(\mathsf{fma}\left(\frac{\frac{\alpha + \beta}{1}}{1}, \frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, 1\right)\right)}}{2}\\

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

\end{array}
double f(double alpha, double beta, double i) {
        double r105744 = alpha;
        double r105745 = beta;
        double r105746 = r105744 + r105745;
        double r105747 = r105745 - r105744;
        double r105748 = r105746 * r105747;
        double r105749 = 2.0;
        double r105750 = i;
        double r105751 = r105749 * r105750;
        double r105752 = r105746 + r105751;
        double r105753 = r105748 / r105752;
        double r105754 = r105752 + r105749;
        double r105755 = r105753 / r105754;
        double r105756 = 1.0;
        double r105757 = r105755 + r105756;
        double r105758 = r105757 / r105749;
        return r105758;
}

double f(double alpha, double beta, double i) {
        double r105759 = alpha;
        double r105760 = 1.4714840476837656e+148;
        bool r105761 = r105759 <= r105760;
        double r105762 = beta;
        double r105763 = r105759 + r105762;
        double r105764 = 1.0;
        double r105765 = r105763 / r105764;
        double r105766 = r105765 / r105764;
        double r105767 = r105762 - r105759;
        double r105768 = 2.0;
        double r105769 = i;
        double r105770 = r105768 * r105769;
        double r105771 = r105763 + r105770;
        double r105772 = r105767 / r105771;
        double r105773 = r105771 + r105768;
        double r105774 = r105772 / r105773;
        double r105775 = 1.0;
        double r105776 = fma(r105766, r105774, r105775);
        double r105777 = log(r105776);
        double r105778 = exp(r105777);
        double r105779 = r105778 / r105768;
        double r105780 = r105764 / r105759;
        double r105781 = 8.0;
        double r105782 = 3.0;
        double r105783 = pow(r105759, r105782);
        double r105784 = r105764 / r105783;
        double r105785 = r105781 * r105784;
        double r105786 = 4.0;
        double r105787 = 2.0;
        double r105788 = pow(r105759, r105787);
        double r105789 = r105764 / r105788;
        double r105790 = r105786 * r105789;
        double r105791 = r105785 - r105790;
        double r105792 = fma(r105768, r105780, r105791);
        double r105793 = r105792 / r105768;
        double r105794 = r105761 ? r105779 : r105793;
        return r105794;
}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

  1. Split input into 2 regimes
  2. if alpha < 1.4714840476837656e+148

    1. Initial program 15.8

      \[\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. Using strategy rm
    3. Applied *-un-lft-identity15.8

      \[\leadsto \frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) + 2 \cdot i}}{\color{blue}{1 \cdot \left(\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2\right)}} + 1}{2}\]
    4. Applied *-un-lft-identity15.8

      \[\leadsto \frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\color{blue}{1 \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right)}}}{1 \cdot \left(\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2\right)} + 1}{2}\]
    5. Applied times-frac4.9

      \[\leadsto \frac{\frac{\color{blue}{\frac{\alpha + \beta}{1} \cdot \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}}{1 \cdot \left(\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2\right)} + 1}{2}\]
    6. Applied times-frac4.9

      \[\leadsto \frac{\color{blue}{\frac{\frac{\alpha + \beta}{1}}{1} \cdot \frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}} + 1}{2}\]
    7. Applied fma-def4.8

      \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\frac{\frac{\alpha + \beta}{1}}{1}, \frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, 1\right)}}{2}\]
    8. Using strategy rm
    9. Applied add-exp-log4.9

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

    if 1.4714840476837656e+148 < alpha

    1. Initial program 63.4

      \[\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. Taylor expanded around inf 42.7

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

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

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

Reproduce

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