Average Error: 23.9 → 7.7
Time: 29.2s
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.9999999999999963:\\ \;\;\;\;\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{\frac{\frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)} \cdot \left(\beta + \alpha\right)}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)} + 1.0}{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.9999999999999963:\\
\;\;\;\;\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{\frac{\frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)} \cdot \left(\beta + \alpha\right)}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)} + 1.0}{2.0}\\

\end{array}
double f(double alpha, double beta, double i) {
        double r4734844 = alpha;
        double r4734845 = beta;
        double r4734846 = r4734844 + r4734845;
        double r4734847 = r4734845 - r4734844;
        double r4734848 = r4734846 * r4734847;
        double r4734849 = 2.0;
        double r4734850 = i;
        double r4734851 = r4734849 * r4734850;
        double r4734852 = r4734846 + r4734851;
        double r4734853 = r4734848 / r4734852;
        double r4734854 = 2.0;
        double r4734855 = r4734852 + r4734854;
        double r4734856 = r4734853 / r4734855;
        double r4734857 = 1.0;
        double r4734858 = r4734856 + r4734857;
        double r4734859 = r4734858 / r4734854;
        return r4734859;
}

double f(double alpha, double beta, double i) {
        double r4734860 = beta;
        double r4734861 = alpha;
        double r4734862 = r4734860 + r4734861;
        double r4734863 = r4734860 - r4734861;
        double r4734864 = r4734862 * r4734863;
        double r4734865 = 2.0;
        double r4734866 = i;
        double r4734867 = r4734865 * r4734866;
        double r4734868 = r4734867 + r4734862;
        double r4734869 = r4734864 / r4734868;
        double r4734870 = 2.0;
        double r4734871 = r4734870 + r4734868;
        double r4734872 = r4734869 / r4734871;
        double r4734873 = -0.9999999999999963;
        bool r4734874 = r4734872 <= r4734873;
        double r4734875 = 8.0;
        double r4734876 = r4734861 * r4734861;
        double r4734877 = r4734861 * r4734876;
        double r4734878 = r4734875 / r4734877;
        double r4734879 = r4734870 / r4734861;
        double r4734880 = 4.0;
        double r4734881 = r4734880 / r4734876;
        double r4734882 = r4734879 - r4734881;
        double r4734883 = r4734878 + r4734882;
        double r4734884 = r4734883 / r4734870;
        double r4734885 = r4734863 / r4734868;
        double r4734886 = r4734885 * r4734862;
        double r4734887 = r4734886 / r4734871;
        double r4734888 = 1.0;
        double r4734889 = r4734887 + r4734888;
        double r4734890 = r4734889 / r4734870;
        double r4734891 = r4734874 ? r4734884 : r4734890;
        return r4734891;
}

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.9999999999999963

    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. Taylor expanded around inf 32.7

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

      \[\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 -0.9999999999999963 < (/ (/ (* (+ 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}}{\color{blue}{1 \cdot \left(\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2.0\right)}} + 1.0}{2.0}\]
    4. 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}\]
    5. Applied times-frac0.3

      \[\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}\]
    6. Applied times-frac0.3

      \[\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}\]
    7. Simplified0.3

      \[\leadsto \frac{\color{blue}{\left(\alpha + \beta\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}\]
    8. Using strategy rm
    9. Applied associate-*r/0.3

      \[\leadsto \frac{\color{blue}{\frac{\left(\alpha + \beta\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}\]
  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 -0.9999999999999963:\\ \;\;\;\;\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{\frac{\frac{\beta - \alpha}{2 \cdot i + \left(\beta + \alpha\right)} \cdot \left(\beta + \alpha\right)}{2.0 + \left(2 \cdot i + \left(\beta + \alpha\right)\right)} + 1.0}{2.0}\\ \end{array}\]

Reproduce

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