Average Error: 24.1 → 11.6
Time: 20.9s
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 2.2383019899999203 \cdot 10^{113}:\\ \;\;\;\;\frac{e^{\log \left(\mathsf{fma}\left(\frac{1}{\frac{\frac{\mathsf{fma}\left(2, i, \beta\right) + \alpha}{\alpha + \beta}}{\beta - \alpha}}, \frac{1}{\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 2.2383019899999203 \cdot 10^{113}:\\
\;\;\;\;\frac{e^{\log \left(\mathsf{fma}\left(\frac{1}{\frac{\frac{\mathsf{fma}\left(2, i, \beta\right) + \alpha}{\alpha + \beta}}{\beta - \alpha}}, \frac{1}{\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 r137841 = alpha;
        double r137842 = beta;
        double r137843 = r137841 + r137842;
        double r137844 = r137842 - r137841;
        double r137845 = r137843 * r137844;
        double r137846 = 2.0;
        double r137847 = i;
        double r137848 = r137846 * r137847;
        double r137849 = r137843 + r137848;
        double r137850 = r137845 / r137849;
        double r137851 = r137849 + r137846;
        double r137852 = r137850 / r137851;
        double r137853 = 1.0;
        double r137854 = r137852 + r137853;
        double r137855 = r137854 / r137846;
        return r137855;
}

double f(double alpha, double beta, double i) {
        double r137856 = alpha;
        double r137857 = 2.2383019899999203e+113;
        bool r137858 = r137856 <= r137857;
        double r137859 = 1.0;
        double r137860 = 2.0;
        double r137861 = i;
        double r137862 = beta;
        double r137863 = fma(r137860, r137861, r137862);
        double r137864 = r137863 + r137856;
        double r137865 = r137856 + r137862;
        double r137866 = r137864 / r137865;
        double r137867 = r137862 - r137856;
        double r137868 = r137866 / r137867;
        double r137869 = r137859 / r137868;
        double r137870 = r137860 * r137861;
        double r137871 = r137865 + r137870;
        double r137872 = r137871 + r137860;
        double r137873 = r137859 / r137872;
        double r137874 = 1.0;
        double r137875 = fma(r137869, r137873, r137874);
        double r137876 = log(r137875);
        double r137877 = exp(r137876);
        double r137878 = r137877 / r137860;
        double r137879 = r137859 / r137856;
        double r137880 = 8.0;
        double r137881 = 3.0;
        double r137882 = pow(r137856, r137881);
        double r137883 = r137859 / r137882;
        double r137884 = r137880 * r137883;
        double r137885 = 4.0;
        double r137886 = 2.0;
        double r137887 = pow(r137856, r137886);
        double r137888 = r137859 / r137887;
        double r137889 = r137885 * r137888;
        double r137890 = r137884 - r137889;
        double r137891 = fma(r137860, r137879, r137890);
        double r137892 = r137891 / r137860;
        double r137893 = r137858 ? r137878 : r137892;
        return r137893;
}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

  1. Split input into 2 regimes
  2. if alpha < 2.2383019899999203e+113

    1. Initial program 14.6

      \[\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 clear-num14.6

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

      \[\leadsto \frac{\frac{\frac{1}{\color{blue}{\frac{\frac{\mathsf{fma}\left(2, i, \beta\right) + \alpha}{\alpha + \beta}}{\beta - \alpha}}}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2} + 1}{2}\]
    5. Using strategy rm
    6. Applied div-inv3.8

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

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

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

    if 2.2383019899999203e+113 < alpha

    1. Initial program 60.5

      \[\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 41.4

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

      \[\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.6

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 2.2383019899999203 \cdot 10^{113}:\\ \;\;\;\;\frac{e^{\log \left(\mathsf{fma}\left(\frac{1}{\frac{\frac{\mathsf{fma}\left(2, i, \beta\right) + \alpha}{\alpha + \beta}}{\beta - \alpha}}, \frac{1}{\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 2020020 +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))