Average Error: 23.5 → 11.4
Time: 3.0m
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1 \land i \gt 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.0} + 1.0}{2.0}\]
\[\begin{array}{l} \mathbf{if}\;\alpha \le 8.236825761015996 \cdot 10^{+121}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\left(\beta + \alpha\right), \left(\frac{\frac{\sqrt[3]{\beta - \alpha}}{\left(\beta + \alpha\right) + i \cdot 2}}{\sqrt[3]{\left(\left(\beta + \alpha\right) + i \cdot 2\right) + 2.0}} \cdot \frac{\sqrt[3]{\beta - \alpha} \cdot \sqrt[3]{\beta - \alpha}}{\sqrt[3]{\left(\left(\beta + \alpha\right) + i \cdot 2\right) + 2.0} \cdot \sqrt[3]{\left(\left(\beta + \alpha\right) + i \cdot 2\right) + 2.0}}\right), 1.0\right)}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\left(\frac{1}{\alpha \cdot \alpha}\right), \left(\frac{8.0}{\alpha} - 4.0\right), \left(\frac{2.0}{\alpha}\right)\right)}{2.0}\\ \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.0} + 1.0}{2.0}
\begin{array}{l}
\mathbf{if}\;\alpha \le 8.236825761015996 \cdot 10^{+121}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\left(\beta + \alpha\right), \left(\frac{\frac{\sqrt[3]{\beta - \alpha}}{\left(\beta + \alpha\right) + i \cdot 2}}{\sqrt[3]{\left(\left(\beta + \alpha\right) + i \cdot 2\right) + 2.0}} \cdot \frac{\sqrt[3]{\beta - \alpha} \cdot \sqrt[3]{\beta - \alpha}}{\sqrt[3]{\left(\left(\beta + \alpha\right) + i \cdot 2\right) + 2.0} \cdot \sqrt[3]{\left(\left(\beta + \alpha\right) + i \cdot 2\right) + 2.0}}\right), 1.0\right)}{2.0}\\

\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\left(\frac{1}{\alpha \cdot \alpha}\right), \left(\frac{8.0}{\alpha} - 4.0\right), \left(\frac{2.0}{\alpha}\right)\right)}{2.0}\\

\end{array}
double f(double alpha, double beta, double i) {
        double r18137719 = alpha;
        double r18137720 = beta;
        double r18137721 = r18137719 + r18137720;
        double r18137722 = r18137720 - r18137719;
        double r18137723 = r18137721 * r18137722;
        double r18137724 = 2.0;
        double r18137725 = i;
        double r18137726 = r18137724 * r18137725;
        double r18137727 = r18137721 + r18137726;
        double r18137728 = r18137723 / r18137727;
        double r18137729 = 2.0;
        double r18137730 = r18137727 + r18137729;
        double r18137731 = r18137728 / r18137730;
        double r18137732 = 1.0;
        double r18137733 = r18137731 + r18137732;
        double r18137734 = r18137733 / r18137729;
        return r18137734;
}

double f(double alpha, double beta, double i) {
        double r18137735 = alpha;
        double r18137736 = 8.236825761015996e+121;
        bool r18137737 = r18137735 <= r18137736;
        double r18137738 = beta;
        double r18137739 = r18137738 + r18137735;
        double r18137740 = r18137738 - r18137735;
        double r18137741 = cbrt(r18137740);
        double r18137742 = i;
        double r18137743 = 2.0;
        double r18137744 = r18137742 * r18137743;
        double r18137745 = r18137739 + r18137744;
        double r18137746 = r18137741 / r18137745;
        double r18137747 = 2.0;
        double r18137748 = r18137745 + r18137747;
        double r18137749 = cbrt(r18137748);
        double r18137750 = r18137746 / r18137749;
        double r18137751 = r18137741 * r18137741;
        double r18137752 = r18137749 * r18137749;
        double r18137753 = r18137751 / r18137752;
        double r18137754 = r18137750 * r18137753;
        double r18137755 = 1.0;
        double r18137756 = fma(r18137739, r18137754, r18137755);
        double r18137757 = r18137756 / r18137747;
        double r18137758 = 1.0;
        double r18137759 = r18137735 * r18137735;
        double r18137760 = r18137758 / r18137759;
        double r18137761 = 8.0;
        double r18137762 = r18137761 / r18137735;
        double r18137763 = 4.0;
        double r18137764 = r18137762 - r18137763;
        double r18137765 = r18137747 / r18137735;
        double r18137766 = fma(r18137760, r18137764, r18137765);
        double r18137767 = r18137766 / r18137747;
        double r18137768 = r18137737 ? r18137757 : r18137767;
        return r18137768;
}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

  1. Split input into 2 regimes
  2. if alpha < 8.236825761015996e+121

    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.0} + 1.0}{2.0}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity14.6

      \[\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.0\right)}} + 1.0}{2.0}\]
    4. Applied *-un-lft-identity14.6

      \[\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.0\right)} + 1.0}{2.0}\]
    5. Applied times-frac4.0

      \[\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.0\right)} + 1.0}{2.0}\]
    6. Applied times-frac3.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.0}} + 1.0}{2.0}\]
    7. Applied fma-def3.9

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

      \[\leadsto \frac{\mathsf{fma}\left(\left(\frac{\frac{\alpha + \beta}{1}}{1}\right), \left(\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\color{blue}{\left(\sqrt[3]{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} \cdot \sqrt[3]{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0}\right) \cdot \sqrt[3]{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0}}}\right), 1.0\right)}{2.0}\]
    10. Applied *-un-lft-identity4.1

      \[\leadsto \frac{\mathsf{fma}\left(\left(\frac{\frac{\alpha + \beta}{1}}{1}\right), \left(\frac{\frac{\beta - \alpha}{\color{blue}{1 \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right)}}}{\left(\sqrt[3]{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} \cdot \sqrt[3]{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0}\right) \cdot \sqrt[3]{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0}}\right), 1.0\right)}{2.0}\]
    11. Applied add-cube-cbrt4.0

      \[\leadsto \frac{\mathsf{fma}\left(\left(\frac{\frac{\alpha + \beta}{1}}{1}\right), \left(\frac{\frac{\color{blue}{\left(\sqrt[3]{\beta - \alpha} \cdot \sqrt[3]{\beta - \alpha}\right) \cdot \sqrt[3]{\beta - \alpha}}}{1 \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right)}}{\left(\sqrt[3]{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} \cdot \sqrt[3]{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0}\right) \cdot \sqrt[3]{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0}}\right), 1.0\right)}{2.0}\]
    12. Applied times-frac4.0

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

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

    if 8.236825761015996e+121 < 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.0} + 1.0}{2.0}\]
    2. Taylor expanded around inf 42.3

      \[\leadsto \frac{\color{blue}{\left(2.0 \cdot \frac{1}{\alpha} + 8.0 \cdot \frac{1}{{\alpha}^{3}}\right) - 4.0 \cdot \frac{1}{{\alpha}^{2}}}}{2.0}\]
    3. Simplified42.3

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 8.236825761015996 \cdot 10^{+121}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\left(\beta + \alpha\right), \left(\frac{\frac{\sqrt[3]{\beta - \alpha}}{\left(\beta + \alpha\right) + i \cdot 2}}{\sqrt[3]{\left(\left(\beta + \alpha\right) + i \cdot 2\right) + 2.0}} \cdot \frac{\sqrt[3]{\beta - \alpha} \cdot \sqrt[3]{\beta - \alpha}}{\sqrt[3]{\left(\left(\beta + \alpha\right) + i \cdot 2\right) + 2.0} \cdot \sqrt[3]{\left(\left(\beta + \alpha\right) + i \cdot 2\right) + 2.0}}\right), 1.0\right)}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\left(\frac{1}{\alpha \cdot \alpha}\right), \left(\frac{8.0}{\alpha} - 4.0\right), \left(\frac{2.0}{\alpha}\right)\right)}{2.0}\\ \end{array}\]

Reproduce

herbie shell --seed 2019125 +o rules:numerics
(FPCore (alpha beta i)
  :name "Octave 3.8, jcobi/2"
  :pre (and (> alpha -1) (> beta -1) (> i 0))
  (/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2.0)) 1.0) 2.0))