Average Error: 23.4 → 11.5
Time: 2.5m
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 6.383180901758064 \cdot 10^{+148}:\\ \;\;\;\;\frac{e^{\sqrt[3]{\left(\log \left(\mathsf{fma}\left(\left(\beta + \alpha\right), \left(\frac{\frac{\beta - \alpha}{\left(\beta + \alpha\right) + 2 \cdot i}}{2.0 + \left(\left(\beta + \alpha\right) + 2 \cdot i\right)}\right), 1.0\right)\right) \cdot \log \left(\mathsf{fma}\left(\left(\beta + \alpha\right), \left(\frac{\frac{\beta - \alpha}{\left(\beta + \alpha\right) + 2 \cdot i}}{2.0 + \left(\left(\beta + \alpha\right) + 2 \cdot i\right)}\right), 1.0\right)\right)\right) \cdot \log \left(\mathsf{fma}\left(\left(\beta + \alpha\right), \left(\frac{\frac{\beta - \alpha}{\left(\beta + \alpha\right) + 2 \cdot i}}{2.0 + \left(\left(\beta + \alpha\right) + 2 \cdot i\right)}\right), 1.0\right)\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 6.383180901758064 \cdot 10^{+148}:\\
\;\;\;\;\frac{e^{\sqrt[3]{\left(\log \left(\mathsf{fma}\left(\left(\beta + \alpha\right), \left(\frac{\frac{\beta - \alpha}{\left(\beta + \alpha\right) + 2 \cdot i}}{2.0 + \left(\left(\beta + \alpha\right) + 2 \cdot i\right)}\right), 1.0\right)\right) \cdot \log \left(\mathsf{fma}\left(\left(\beta + \alpha\right), \left(\frac{\frac{\beta - \alpha}{\left(\beta + \alpha\right) + 2 \cdot i}}{2.0 + \left(\left(\beta + \alpha\right) + 2 \cdot i\right)}\right), 1.0\right)\right)\right) \cdot \log \left(\mathsf{fma}\left(\left(\beta + \alpha\right), \left(\frac{\frac{\beta - \alpha}{\left(\beta + \alpha\right) + 2 \cdot i}}{2.0 + \left(\left(\beta + \alpha\right) + 2 \cdot i\right)}\right), 1.0\right)\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 r12188295 = alpha;
        double r12188296 = beta;
        double r12188297 = r12188295 + r12188296;
        double r12188298 = r12188296 - r12188295;
        double r12188299 = r12188297 * r12188298;
        double r12188300 = 2.0;
        double r12188301 = i;
        double r12188302 = r12188300 * r12188301;
        double r12188303 = r12188297 + r12188302;
        double r12188304 = r12188299 / r12188303;
        double r12188305 = 2.0;
        double r12188306 = r12188303 + r12188305;
        double r12188307 = r12188304 / r12188306;
        double r12188308 = 1.0;
        double r12188309 = r12188307 + r12188308;
        double r12188310 = r12188309 / r12188305;
        return r12188310;
}

double f(double alpha, double beta, double i) {
        double r12188311 = alpha;
        double r12188312 = 6.383180901758064e+148;
        bool r12188313 = r12188311 <= r12188312;
        double r12188314 = beta;
        double r12188315 = r12188314 + r12188311;
        double r12188316 = r12188314 - r12188311;
        double r12188317 = 2.0;
        double r12188318 = i;
        double r12188319 = r12188317 * r12188318;
        double r12188320 = r12188315 + r12188319;
        double r12188321 = r12188316 / r12188320;
        double r12188322 = 2.0;
        double r12188323 = r12188322 + r12188320;
        double r12188324 = r12188321 / r12188323;
        double r12188325 = 1.0;
        double r12188326 = fma(r12188315, r12188324, r12188325);
        double r12188327 = log(r12188326);
        double r12188328 = r12188327 * r12188327;
        double r12188329 = r12188328 * r12188327;
        double r12188330 = cbrt(r12188329);
        double r12188331 = exp(r12188330);
        double r12188332 = r12188331 / r12188322;
        double r12188333 = 1.0;
        double r12188334 = r12188311 * r12188311;
        double r12188335 = r12188333 / r12188334;
        double r12188336 = 8.0;
        double r12188337 = r12188336 / r12188311;
        double r12188338 = 4.0;
        double r12188339 = r12188337 - r12188338;
        double r12188340 = r12188322 / r12188311;
        double r12188341 = fma(r12188335, r12188339, r12188340);
        double r12188342 = r12188341 / r12188322;
        double r12188343 = r12188313 ? r12188332 : r12188342;
        return r12188343;
}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

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

    1. Initial program 15.1

      \[\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-identity15.1

      \[\leadsto \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) + \color{blue}{1 \cdot 2.0}} + 1.0}{2.0}\]
    4. Applied *-un-lft-identity15.1

      \[\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(\alpha + \beta\right) + 2 \cdot i\right)} + 1 \cdot 2.0} + 1.0}{2.0}\]
    5. Applied distribute-lft-out15.1

      \[\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}\]
    6. Applied *-un-lft-identity15.1

      \[\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}\]
    7. Applied times-frac5.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}\]
    8. Applied times-frac5.0

      \[\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}\]
    9. Applied fma-def5.0

      \[\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}\]
    10. Simplified5.0

      \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{\left(\beta + \alpha\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}\]
    11. Using strategy rm
    12. Applied add-exp-log5.0

      \[\leadsto \frac{\color{blue}{e^{\log \left(\mathsf{fma}\left(\left(\beta + \alpha\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)\right)}}}{2.0}\]
    13. Using strategy rm
    14. Applied add-cbrt-cube5.0

      \[\leadsto \frac{e^{\color{blue}{\sqrt[3]{\left(\log \left(\mathsf{fma}\left(\left(\beta + \alpha\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)\right) \cdot \log \left(\mathsf{fma}\left(\left(\beta + \alpha\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)\right)\right) \cdot \log \left(\mathsf{fma}\left(\left(\beta + \alpha\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)\right)}}}}{2.0}\]

    if 6.383180901758064e+148 < alpha

    1. Initial program 62.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. Taylor expanded around -inf 42.0

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

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 6.383180901758064 \cdot 10^{+148}:\\ \;\;\;\;\frac{e^{\sqrt[3]{\left(\log \left(\mathsf{fma}\left(\left(\beta + \alpha\right), \left(\frac{\frac{\beta - \alpha}{\left(\beta + \alpha\right) + 2 \cdot i}}{2.0 + \left(\left(\beta + \alpha\right) + 2 \cdot i\right)}\right), 1.0\right)\right) \cdot \log \left(\mathsf{fma}\left(\left(\beta + \alpha\right), \left(\frac{\frac{\beta - \alpha}{\left(\beta + \alpha\right) + 2 \cdot i}}{2.0 + \left(\left(\beta + \alpha\right) + 2 \cdot i\right)}\right), 1.0\right)\right)\right) \cdot \log \left(\mathsf{fma}\left(\left(\beta + \alpha\right), \left(\frac{\frac{\beta - \alpha}{\left(\beta + \alpha\right) + 2 \cdot i}}{2.0 + \left(\left(\beta + \alpha\right) + 2 \cdot i\right)}\right), 1.0\right)\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 2019120 +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))