Average Error: 23.8 → 12.2
Time: 28.3s
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 6.021952390523362835514021153198990246696 \cdot 10^{45}:\\ \;\;\;\;\frac{e^{\log \left(\mathsf{fma}\left(\frac{\frac{\beta}{\mathsf{fma}\left(2, i, \beta + \alpha\right)} - \frac{\alpha}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}}{\mathsf{fma}\left(2, i, \beta + \alpha\right) + 2}, \beta + \alpha, 1\right)\right)}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(\left(\frac{2}{\alpha} - \frac{4}{\alpha \cdot \alpha}\right) + \frac{\frac{8}{\alpha \cdot \alpha}}{\alpha}\right) + \frac{\frac{\beta}{\mathsf{fma}\left(2, i, \beta + \alpha\right)} - \frac{\alpha}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}}{\mathsf{fma}\left(2, i, \beta + \alpha\right) + 2} \cdot \beta}{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 6.021952390523362835514021153198990246696 \cdot 10^{45}:\\
\;\;\;\;\frac{e^{\log \left(\mathsf{fma}\left(\frac{\frac{\beta}{\mathsf{fma}\left(2, i, \beta + \alpha\right)} - \frac{\alpha}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}}{\mathsf{fma}\left(2, i, \beta + \alpha\right) + 2}, \beta + \alpha, 1\right)\right)}}{2}\\

\mathbf{else}:\\
\;\;\;\;\frac{\left(\left(\frac{2}{\alpha} - \frac{4}{\alpha \cdot \alpha}\right) + \frac{\frac{8}{\alpha \cdot \alpha}}{\alpha}\right) + \frac{\frac{\beta}{\mathsf{fma}\left(2, i, \beta + \alpha\right)} - \frac{\alpha}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}}{\mathsf{fma}\left(2, i, \beta + \alpha\right) + 2} \cdot \beta}{2}\\

\end{array}
double f(double alpha, double beta, double i) {
        double r4394655 = alpha;
        double r4394656 = beta;
        double r4394657 = r4394655 + r4394656;
        double r4394658 = r4394656 - r4394655;
        double r4394659 = r4394657 * r4394658;
        double r4394660 = 2.0;
        double r4394661 = i;
        double r4394662 = r4394660 * r4394661;
        double r4394663 = r4394657 + r4394662;
        double r4394664 = r4394659 / r4394663;
        double r4394665 = r4394663 + r4394660;
        double r4394666 = r4394664 / r4394665;
        double r4394667 = 1.0;
        double r4394668 = r4394666 + r4394667;
        double r4394669 = r4394668 / r4394660;
        return r4394669;
}

double f(double alpha, double beta, double i) {
        double r4394670 = alpha;
        double r4394671 = 6.021952390523363e+45;
        bool r4394672 = r4394670 <= r4394671;
        double r4394673 = beta;
        double r4394674 = 2.0;
        double r4394675 = i;
        double r4394676 = r4394673 + r4394670;
        double r4394677 = fma(r4394674, r4394675, r4394676);
        double r4394678 = r4394673 / r4394677;
        double r4394679 = r4394670 / r4394677;
        double r4394680 = r4394678 - r4394679;
        double r4394681 = r4394677 + r4394674;
        double r4394682 = r4394680 / r4394681;
        double r4394683 = 1.0;
        double r4394684 = fma(r4394682, r4394676, r4394683);
        double r4394685 = log(r4394684);
        double r4394686 = exp(r4394685);
        double r4394687 = r4394686 / r4394674;
        double r4394688 = r4394674 / r4394670;
        double r4394689 = 4.0;
        double r4394690 = r4394670 * r4394670;
        double r4394691 = r4394689 / r4394690;
        double r4394692 = r4394688 - r4394691;
        double r4394693 = 8.0;
        double r4394694 = r4394693 / r4394690;
        double r4394695 = r4394694 / r4394670;
        double r4394696 = r4394692 + r4394695;
        double r4394697 = r4394682 * r4394673;
        double r4394698 = r4394696 + r4394697;
        double r4394699 = r4394698 / r4394674;
        double r4394700 = r4394672 ? r4394687 : r4394699;
        return r4394700;
}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

  1. Split input into 2 regimes
  2. if alpha < 6.021952390523363e+45

    1. Initial program 11.7

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

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

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

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

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

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

    if 6.021952390523363e+45 < alpha

    1. Initial program 54.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. Simplified40.5

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

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

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

      \[\leadsto \frac{\color{blue}{\left(\beta \cdot \frac{\frac{\beta}{\mathsf{fma}\left(2, i, \beta + \alpha\right)} - \frac{\alpha}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}}{2 + \mathsf{fma}\left(2, i, \beta + \alpha\right)} + \alpha \cdot \frac{\frac{\beta}{\mathsf{fma}\left(2, i, \beta + \alpha\right)} - \frac{\alpha}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}}{2 + \mathsf{fma}\left(2, i, \beta + \alpha\right)}\right)} + 1}{2}\]
    9. Applied associate-+l+40.2

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

      \[\leadsto \frac{\beta \cdot \frac{\frac{\beta}{\mathsf{fma}\left(2, i, \beta + \alpha\right)} - \frac{\alpha}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}}{2 + \mathsf{fma}\left(2, i, \beta + \alpha\right)} + \color{blue}{\left(\left(2 \cdot \frac{1}{\alpha} + 8 \cdot \frac{1}{{\alpha}^{3}}\right) - 4 \cdot \frac{1}{{\alpha}^{2}}\right)}}{2}\]
    11. Simplified40.4

      \[\leadsto \frac{\beta \cdot \frac{\frac{\beta}{\mathsf{fma}\left(2, i, \beta + \alpha\right)} - \frac{\alpha}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}}{2 + \mathsf{fma}\left(2, i, \beta + \alpha\right)} + \color{blue}{\left(\frac{\frac{8}{\alpha \cdot \alpha}}{\alpha} + \left(\frac{2}{\alpha} - \frac{4}{\alpha \cdot \alpha}\right)\right)}}{2}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification12.2

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

Reproduce

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