Average Error: 24.0 → 10.2
Time: 45.5s
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 4.811900075549953 \cdot 10^{+44}:\\ \;\;\;\;\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\frac{\beta - \alpha}{\sqrt{\mathsf{fma}\left(2, i, \beta + \alpha\right) + 2.0}}}{\sqrt{\mathsf{fma}\left(2, i, \beta + \alpha\right) + 2.0}} \cdot \frac{\beta + \alpha}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}\right)\right) + 1.0}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(-\frac{\frac{\frac{1}{\alpha}}{\frac{1}{2}} \cdot \beta}{\alpha}, 3.0, \mathsf{fma}\left(\frac{\frac{1}{\alpha}}{\frac{1}{2}}, 1.0, \frac{\frac{1}{\alpha}}{\frac{1}{2}} \cdot \beta\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 4.811900075549953 \cdot 10^{+44}:\\
\;\;\;\;\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\frac{\beta - \alpha}{\sqrt{\mathsf{fma}\left(2, i, \beta + \alpha\right) + 2.0}}}{\sqrt{\mathsf{fma}\left(2, i, \beta + \alpha\right) + 2.0}} \cdot \frac{\beta + \alpha}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}\right)\right) + 1.0}{2.0}\\

\mathbf{else}:\\
\;\;\;\;\frac{\mathsf{fma}\left(-\frac{\frac{\frac{1}{\alpha}}{\frac{1}{2}} \cdot \beta}{\alpha}, 3.0, \mathsf{fma}\left(\frac{\frac{1}{\alpha}}{\frac{1}{2}}, 1.0, \frac{\frac{1}{\alpha}}{\frac{1}{2}} \cdot \beta\right)\right)}{2.0}\\

\end{array}
double f(double alpha, double beta, double i) {
        double r6031668 = alpha;
        double r6031669 = beta;
        double r6031670 = r6031668 + r6031669;
        double r6031671 = r6031669 - r6031668;
        double r6031672 = r6031670 * r6031671;
        double r6031673 = 2.0;
        double r6031674 = i;
        double r6031675 = r6031673 * r6031674;
        double r6031676 = r6031670 + r6031675;
        double r6031677 = r6031672 / r6031676;
        double r6031678 = 2.0;
        double r6031679 = r6031676 + r6031678;
        double r6031680 = r6031677 / r6031679;
        double r6031681 = 1.0;
        double r6031682 = r6031680 + r6031681;
        double r6031683 = r6031682 / r6031678;
        return r6031683;
}

double f(double alpha, double beta, double i) {
        double r6031684 = alpha;
        double r6031685 = 4.811900075549953e+44;
        bool r6031686 = r6031684 <= r6031685;
        double r6031687 = beta;
        double r6031688 = r6031687 - r6031684;
        double r6031689 = 2.0;
        double r6031690 = i;
        double r6031691 = r6031687 + r6031684;
        double r6031692 = fma(r6031689, r6031690, r6031691);
        double r6031693 = 2.0;
        double r6031694 = r6031692 + r6031693;
        double r6031695 = sqrt(r6031694);
        double r6031696 = r6031688 / r6031695;
        double r6031697 = r6031696 / r6031695;
        double r6031698 = r6031691 / r6031692;
        double r6031699 = r6031697 * r6031698;
        double r6031700 = log1p(r6031699);
        double r6031701 = expm1(r6031700);
        double r6031702 = 1.0;
        double r6031703 = r6031701 + r6031702;
        double r6031704 = r6031703 / r6031693;
        double r6031705 = 1.0;
        double r6031706 = r6031705 / r6031684;
        double r6031707 = 0.5;
        double r6031708 = r6031706 / r6031707;
        double r6031709 = r6031708 * r6031687;
        double r6031710 = r6031709 / r6031684;
        double r6031711 = -r6031710;
        double r6031712 = 3.0;
        double r6031713 = fma(r6031708, r6031702, r6031709);
        double r6031714 = fma(r6031711, r6031712, r6031713);
        double r6031715 = r6031714 / r6031693;
        double r6031716 = r6031686 ? r6031704 : r6031715;
        return r6031716;
}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

  1. Split input into 2 regimes
  2. if alpha < 4.811900075549953e+44

    1. Initial program 12.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}\]
    2. Simplified12.0

      \[\leadsto \color{blue}{\frac{\frac{\left(\beta + \alpha\right) \cdot \left(\beta - \alpha\right)}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot \mathsf{fma}\left(2, i, \beta + \alpha\right)\right)} + 1.0}{2.0}}\]
    3. Using strategy rm
    4. Applied expm1-log1p-u12.0

      \[\leadsto \frac{\color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\left(\beta + \alpha\right) \cdot \left(\beta - \alpha\right)}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot \mathsf{fma}\left(2, i, \beta + \alpha\right)\right)}\right)\right)} + 1.0}{2.0}\]
    5. Simplified1.1

      \[\leadsto \frac{\mathsf{expm1}\left(\color{blue}{\mathsf{log1p}\left(\frac{\alpha + \beta}{\mathsf{fma}\left(2, i, \alpha + \beta\right)} \cdot \frac{\beta - \alpha}{2.0 + \mathsf{fma}\left(2, i, \alpha + \beta\right)}\right)}\right) + 1.0}{2.0}\]
    6. Using strategy rm
    7. Applied add-sqr-sqrt1.1

      \[\leadsto \frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\alpha + \beta}{\mathsf{fma}\left(2, i, \alpha + \beta\right)} \cdot \frac{\beta - \alpha}{\color{blue}{\sqrt{2.0 + \mathsf{fma}\left(2, i, \alpha + \beta\right)} \cdot \sqrt{2.0 + \mathsf{fma}\left(2, i, \alpha + \beta\right)}}}\right)\right) + 1.0}{2.0}\]
    8. Applied associate-/r*1.1

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

    if 4.811900075549953e+44 < alpha

    1. Initial program 54.3

      \[\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. Simplified53.9

      \[\leadsto \color{blue}{\frac{\frac{\left(\beta + \alpha\right) \cdot \left(\beta - \alpha\right)}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot \mathsf{fma}\left(2, i, \beta + \alpha\right)\right)} + 1.0}{2.0}}\]
    3. Using strategy rm
    4. Applied expm1-log1p-u53.9

      \[\leadsto \frac{\color{blue}{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\left(\beta + \alpha\right) \cdot \left(\beta - \alpha\right)}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot \mathsf{fma}\left(2, i, \beta + \alpha\right)\right)}\right)\right)} + 1.0}{2.0}\]
    5. Simplified40.7

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

      \[\leadsto \frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\alpha + \beta}{\color{blue}{\left(\sqrt[3]{\mathsf{fma}\left(2, i, \alpha + \beta\right)} \cdot \sqrt[3]{\mathsf{fma}\left(2, i, \alpha + \beta\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(2, i, \alpha + \beta\right)}}} \cdot \frac{\beta - \alpha}{2.0 + \mathsf{fma}\left(2, i, \alpha + \beta\right)}\right)\right) + 1.0}{2.0}\]
    8. Applied add-cube-cbrt40.8

      \[\leadsto \frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\color{blue}{\left(\sqrt[3]{\alpha + \beta} \cdot \sqrt[3]{\alpha + \beta}\right) \cdot \sqrt[3]{\alpha + \beta}}}{\left(\sqrt[3]{\mathsf{fma}\left(2, i, \alpha + \beta\right)} \cdot \sqrt[3]{\mathsf{fma}\left(2, i, \alpha + \beta\right)}\right) \cdot \sqrt[3]{\mathsf{fma}\left(2, i, \alpha + \beta\right)}} \cdot \frac{\beta - \alpha}{2.0 + \mathsf{fma}\left(2, i, \alpha + \beta\right)}\right)\right) + 1.0}{2.0}\]
    9. Applied times-frac40.8

      \[\leadsto \frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\color{blue}{\left(\frac{\sqrt[3]{\alpha + \beta} \cdot \sqrt[3]{\alpha + \beta}}{\sqrt[3]{\mathsf{fma}\left(2, i, \alpha + \beta\right)} \cdot \sqrt[3]{\mathsf{fma}\left(2, i, \alpha + \beta\right)}} \cdot \frac{\sqrt[3]{\alpha + \beta}}{\sqrt[3]{\mathsf{fma}\left(2, i, \alpha + \beta\right)}}\right)} \cdot \frac{\beta - \alpha}{2.0 + \mathsf{fma}\left(2, i, \alpha + \beta\right)}\right)\right) + 1.0}{2.0}\]
    10. Applied associate-*l*40.8

      \[\leadsto \frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\color{blue}{\frac{\sqrt[3]{\alpha + \beta} \cdot \sqrt[3]{\alpha + \beta}}{\sqrt[3]{\mathsf{fma}\left(2, i, \alpha + \beta\right)} \cdot \sqrt[3]{\mathsf{fma}\left(2, i, \alpha + \beta\right)}} \cdot \left(\frac{\sqrt[3]{\alpha + \beta}}{\sqrt[3]{\mathsf{fma}\left(2, i, \alpha + \beta\right)}} \cdot \frac{\beta - \alpha}{2.0 + \mathsf{fma}\left(2, i, \alpha + \beta\right)}\right)}\right)\right) + 1.0}{2.0}\]
    11. Taylor expanded around inf 50.7

      \[\leadsto \frac{\color{blue}{\left(e^{\left(\log 2 + \log \left(\frac{1}{\alpha}\right)\right) - \log \left(\frac{1}{\beta}\right)} + 1.0 \cdot \frac{e^{\left(\log 2 + \log \left(\frac{1}{\alpha}\right)\right) - \log \left(\frac{1}{\beta}\right)}}{\beta}\right) - 3.0 \cdot \frac{e^{\left(\log 2 + \log \left(\frac{1}{\alpha}\right)\right) - \log \left(\frac{1}{\beta}\right)}}{\alpha}}}{2.0}\]
    12. Simplified33.1

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

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 4.811900075549953 \cdot 10^{+44}:\\ \;\;\;\;\frac{\mathsf{expm1}\left(\mathsf{log1p}\left(\frac{\frac{\beta - \alpha}{\sqrt{\mathsf{fma}\left(2, i, \beta + \alpha\right) + 2.0}}}{\sqrt{\mathsf{fma}\left(2, i, \beta + \alpha\right) + 2.0}} \cdot \frac{\beta + \alpha}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}\right)\right) + 1.0}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(-\frac{\frac{\frac{1}{\alpha}}{\frac{1}{2}} \cdot \beta}{\alpha}, 3.0, \mathsf{fma}\left(\frac{\frac{1}{\alpha}}{\frac{1}{2}}, 1.0, \frac{\frac{1}{\alpha}}{\frac{1}{2}} \cdot \beta\right)\right)}{2.0}\\ \end{array}\]

Reproduce

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