Average Error: 23.6 → 7.7
Time: 31.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}\;\frac{\frac{\left(\beta + \alpha\right) \cdot \left(\beta - \alpha\right)}{2 \cdot i + \left(\beta + \alpha\right)}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)} \le -1.0:\\ \;\;\;\;\frac{\frac{8.0}{\alpha \cdot \left(\alpha \cdot \alpha\right)} + \left(\frac{2.0}{\alpha} - \frac{4.0}{\alpha \cdot \alpha}\right)}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\sqrt[3]{\left(1.0 + \frac{\frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)} \cdot \left(\beta + \alpha\right)\right) \cdot \left(\left(1.0 + \frac{\frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)} \cdot \left(\beta + \alpha\right)\right) \cdot \left(1.0 + \frac{\frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)} \cdot \left(\beta + \alpha\right)\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}\;\frac{\frac{\left(\beta + \alpha\right) \cdot \left(\beta - \alpha\right)}{2 \cdot i + \left(\beta + \alpha\right)}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)} \le -1.0:\\
\;\;\;\;\frac{\frac{8.0}{\alpha \cdot \left(\alpha \cdot \alpha\right)} + \left(\frac{2.0}{\alpha} - \frac{4.0}{\alpha \cdot \alpha}\right)}{2.0}\\

\mathbf{else}:\\
\;\;\;\;\frac{\sqrt[3]{\left(1.0 + \frac{\frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)} \cdot \left(\beta + \alpha\right)\right) \cdot \left(\left(1.0 + \frac{\frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)} \cdot \left(\beta + \alpha\right)\right) \cdot \left(1.0 + \frac{\frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)}}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)} \cdot \left(\beta + \alpha\right)\right)\right)}}{2.0}\\

\end{array}
double f(double alpha, double beta, double i) {
        double r2286660 = alpha;
        double r2286661 = beta;
        double r2286662 = r2286660 + r2286661;
        double r2286663 = r2286661 - r2286660;
        double r2286664 = r2286662 * r2286663;
        double r2286665 = 2.0;
        double r2286666 = i;
        double r2286667 = r2286665 * r2286666;
        double r2286668 = r2286662 + r2286667;
        double r2286669 = r2286664 / r2286668;
        double r2286670 = 2.0;
        double r2286671 = r2286668 + r2286670;
        double r2286672 = r2286669 / r2286671;
        double r2286673 = 1.0;
        double r2286674 = r2286672 + r2286673;
        double r2286675 = r2286674 / r2286670;
        return r2286675;
}

double f(double alpha, double beta, double i) {
        double r2286676 = beta;
        double r2286677 = alpha;
        double r2286678 = r2286676 + r2286677;
        double r2286679 = r2286676 - r2286677;
        double r2286680 = r2286678 * r2286679;
        double r2286681 = 2.0;
        double r2286682 = i;
        double r2286683 = r2286681 * r2286682;
        double r2286684 = r2286683 + r2286678;
        double r2286685 = r2286680 / r2286684;
        double r2286686 = 2.0;
        double r2286687 = r2286686 + r2286684;
        double r2286688 = r2286685 / r2286687;
        double r2286689 = -1.0;
        bool r2286690 = r2286688 <= r2286689;
        double r2286691 = 8.0;
        double r2286692 = r2286677 * r2286677;
        double r2286693 = r2286677 * r2286692;
        double r2286694 = r2286691 / r2286693;
        double r2286695 = r2286686 / r2286677;
        double r2286696 = 4.0;
        double r2286697 = r2286696 / r2286692;
        double r2286698 = r2286695 - r2286697;
        double r2286699 = r2286694 + r2286698;
        double r2286700 = r2286699 / r2286686;
        double r2286701 = 1.0;
        double r2286702 = r2286679 / r2286684;
        double r2286703 = r2286702 / r2286687;
        double r2286704 = r2286703 * r2286678;
        double r2286705 = r2286701 + r2286704;
        double r2286706 = r2286705 * r2286705;
        double r2286707 = r2286705 * r2286706;
        double r2286708 = cbrt(r2286707);
        double r2286709 = r2286708 / r2286686;
        double r2286710 = r2286690 ? r2286700 : r2286709;
        return r2286710;
}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2.0)) < -1.0

    1. Initial program 62.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.0} + 1.0}{2.0}\]
    2. Taylor expanded around inf 33.1

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

      \[\leadsto \frac{\color{blue}{\frac{8.0}{\alpha \cdot \left(\alpha \cdot \alpha\right)} + \left(\frac{2.0}{\alpha} - \frac{4.0}{\alpha \cdot \alpha}\right)}}{2.0}\]

    if -1.0 < (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2.0))

    1. Initial program 12.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. Using strategy rm
    3. Applied *-un-lft-identity12.5

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

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

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

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

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

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

      \[\leadsto \frac{\color{blue}{\left(\beta + \alpha\right)} \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}\]
    10. Using strategy rm
    11. Applied add-cbrt-cube0.5

      \[\leadsto \frac{\color{blue}{\sqrt[3]{\left(\left(\left(\beta + \alpha\right) \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\right) \cdot \left(\left(\beta + \alpha\right) \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\right)\right) \cdot \left(\left(\beta + \alpha\right) \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\right)}}}{2.0}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification7.7

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

Reproduce

herbie shell --seed 2019142 
(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))