Average Error: 23.9 → 7.5
Time: 25.6s
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 -0.999999999999998:\\ \;\;\;\;\frac{\left(\frac{2.0}{\alpha} + \frac{8.0}{\alpha \cdot \left(\alpha \cdot \alpha\right)}\right) - \frac{4.0}{\alpha \cdot \alpha}}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{e^{\log \left(\frac{1}{\frac{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)}{\frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)} \cdot \left(\beta + \alpha\right)}} + 1.0\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 -0.999999999999998:\\
\;\;\;\;\frac{\left(\frac{2.0}{\alpha} + \frac{8.0}{\alpha \cdot \left(\alpha \cdot \alpha\right)}\right) - \frac{4.0}{\alpha \cdot \alpha}}{2.0}\\

\mathbf{else}:\\
\;\;\;\;\frac{e^{\log \left(\frac{1}{\frac{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)}{\frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)} \cdot \left(\beta + \alpha\right)}} + 1.0\right)}}{2.0}\\

\end{array}
double f(double alpha, double beta, double i) {
        double r2305806 = alpha;
        double r2305807 = beta;
        double r2305808 = r2305806 + r2305807;
        double r2305809 = r2305807 - r2305806;
        double r2305810 = r2305808 * r2305809;
        double r2305811 = 2.0;
        double r2305812 = i;
        double r2305813 = r2305811 * r2305812;
        double r2305814 = r2305808 + r2305813;
        double r2305815 = r2305810 / r2305814;
        double r2305816 = 2.0;
        double r2305817 = r2305814 + r2305816;
        double r2305818 = r2305815 / r2305817;
        double r2305819 = 1.0;
        double r2305820 = r2305818 + r2305819;
        double r2305821 = r2305820 / r2305816;
        return r2305821;
}

double f(double alpha, double beta, double i) {
        double r2305822 = beta;
        double r2305823 = alpha;
        double r2305824 = r2305822 + r2305823;
        double r2305825 = r2305822 - r2305823;
        double r2305826 = r2305824 * r2305825;
        double r2305827 = 2.0;
        double r2305828 = i;
        double r2305829 = r2305827 * r2305828;
        double r2305830 = r2305829 + r2305824;
        double r2305831 = r2305826 / r2305830;
        double r2305832 = 2.0;
        double r2305833 = r2305832 + r2305830;
        double r2305834 = r2305831 / r2305833;
        double r2305835 = -0.999999999999998;
        bool r2305836 = r2305834 <= r2305835;
        double r2305837 = r2305832 / r2305823;
        double r2305838 = 8.0;
        double r2305839 = r2305823 * r2305823;
        double r2305840 = r2305823 * r2305839;
        double r2305841 = r2305838 / r2305840;
        double r2305842 = r2305837 + r2305841;
        double r2305843 = 4.0;
        double r2305844 = r2305843 / r2305839;
        double r2305845 = r2305842 - r2305844;
        double r2305846 = r2305845 / r2305832;
        double r2305847 = 1.0;
        double r2305848 = r2305825 / r2305830;
        double r2305849 = r2305848 * r2305824;
        double r2305850 = r2305833 / r2305849;
        double r2305851 = r2305847 / r2305850;
        double r2305852 = 1.0;
        double r2305853 = r2305851 + r2305852;
        double r2305854 = log(r2305853);
        double r2305855 = exp(r2305854);
        double r2305856 = r2305855 / r2305832;
        double r2305857 = r2305836 ? r2305846 : r2305856;
        return r2305857;
}

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)) < -0.999999999999998

    1. Initial program 62.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.0} + 1.0}{2.0}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity62.7

      \[\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)}}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} + 1.0}{2.0}\]
    4. Applied times-frac53.7

      \[\leadsto \frac{\frac{\color{blue}{\frac{\alpha + \beta}{1} \cdot \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}\]
    5. Simplified53.7

      \[\leadsto \frac{\frac{\color{blue}{\left(\beta + \alpha\right)} \cdot \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}\]
    6. Using strategy rm
    7. Applied clear-num53.7

      \[\leadsto \frac{\color{blue}{\frac{1}{\frac{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0}{\left(\beta + \alpha\right) \cdot \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}}} + 1.0}{2.0}\]
    8. Taylor expanded around inf 32.5

      \[\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}\]
    9. Simplified32.5

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

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

    1. Initial program 12.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-identity12.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)}}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0} + 1.0}{2.0}\]
    4. Applied times-frac0.2

      \[\leadsto \frac{\frac{\color{blue}{\frac{\alpha + \beta}{1} \cdot \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}\]
    5. Simplified0.2

      \[\leadsto \frac{\frac{\color{blue}{\left(\beta + \alpha\right)} \cdot \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}\]
    6. Using strategy rm
    7. Applied clear-num0.2

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

      \[\leadsto \frac{\color{blue}{e^{\log \left(\frac{1}{\frac{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0}{\left(\beta + \alpha\right) \cdot \frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}} + 1.0\right)}}}{2.0}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification7.5

    \[\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 -0.999999999999998:\\ \;\;\;\;\frac{\left(\frac{2.0}{\alpha} + \frac{8.0}{\alpha \cdot \left(\alpha \cdot \alpha\right)}\right) - \frac{4.0}{\alpha \cdot \alpha}}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{e^{\log \left(\frac{1}{\frac{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)}{\frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)} \cdot \left(\beta + \alpha\right)}} + 1.0\right)}}{2.0}\\ \end{array}\]

Reproduce

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