Average Error: 24.0 → 7.6
Time: 1.8m
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.9999999999992469:\\ \;\;\;\;\frac{\left(\frac{8.0}{\alpha \cdot \left(\alpha \cdot \alpha\right)} + \frac{2.0}{\alpha}\right) - \frac{4.0}{\alpha \cdot \alpha}}{2.0}\\ \mathbf{else}:\\ \;\;\;\;\frac{\log \left(e^{\frac{\beta - \alpha}{\left(\beta + \alpha\right) + \left(2 \cdot i + 2.0\right)} \cdot \frac{\beta + \alpha}{2 \cdot i + \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.9999999999992469:\\
\;\;\;\;\frac{\left(\frac{8.0}{\alpha \cdot \left(\alpha \cdot \alpha\right)} + \frac{2.0}{\alpha}\right) - \frac{4.0}{\alpha \cdot \alpha}}{2.0}\\

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

\end{array}
double f(double alpha, double beta, double i) {
        double r2151196 = alpha;
        double r2151197 = beta;
        double r2151198 = r2151196 + r2151197;
        double r2151199 = r2151197 - r2151196;
        double r2151200 = r2151198 * r2151199;
        double r2151201 = 2.0;
        double r2151202 = i;
        double r2151203 = r2151201 * r2151202;
        double r2151204 = r2151198 + r2151203;
        double r2151205 = r2151200 / r2151204;
        double r2151206 = 2.0;
        double r2151207 = r2151204 + r2151206;
        double r2151208 = r2151205 / r2151207;
        double r2151209 = 1.0;
        double r2151210 = r2151208 + r2151209;
        double r2151211 = r2151210 / r2151206;
        return r2151211;
}

double f(double alpha, double beta, double i) {
        double r2151212 = beta;
        double r2151213 = alpha;
        double r2151214 = r2151212 + r2151213;
        double r2151215 = r2151212 - r2151213;
        double r2151216 = r2151214 * r2151215;
        double r2151217 = 2.0;
        double r2151218 = i;
        double r2151219 = r2151217 * r2151218;
        double r2151220 = r2151219 + r2151214;
        double r2151221 = r2151216 / r2151220;
        double r2151222 = 2.0;
        double r2151223 = r2151222 + r2151220;
        double r2151224 = r2151221 / r2151223;
        double r2151225 = -0.9999999999992469;
        bool r2151226 = r2151224 <= r2151225;
        double r2151227 = 8.0;
        double r2151228 = r2151213 * r2151213;
        double r2151229 = r2151213 * r2151228;
        double r2151230 = r2151227 / r2151229;
        double r2151231 = r2151222 / r2151213;
        double r2151232 = r2151230 + r2151231;
        double r2151233 = 4.0;
        double r2151234 = r2151233 / r2151228;
        double r2151235 = r2151232 - r2151234;
        double r2151236 = r2151235 / r2151222;
        double r2151237 = r2151219 + r2151222;
        double r2151238 = r2151214 + r2151237;
        double r2151239 = r2151215 / r2151238;
        double r2151240 = r2151214 / r2151220;
        double r2151241 = r2151239 * r2151240;
        double r2151242 = 1.0;
        double r2151243 = r2151241 + r2151242;
        double r2151244 = exp(r2151243);
        double r2151245 = log(r2151244);
        double r2151246 = r2151245 / r2151222;
        double r2151247 = r2151226 ? r2151236 : r2151246;
        return r2151247;
}

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

    1. Initial program 62.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. Taylor expanded around -inf 32.4

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

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

    if -0.9999999999992469 < (/ (/ (* (+ 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 add-log-exp12.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) + 2.0} + \color{blue}{\log \left(e^{1.0}\right)}}{2.0}\]
    4. Applied add-log-exp12.5

      \[\leadsto \frac{\color{blue}{\log \left(e^{\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}}\right)} + \log \left(e^{1.0}\right)}{2.0}\]
    5. Applied sum-log12.6

      \[\leadsto \frac{\color{blue}{\log \left(e^{\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}} \cdot e^{1.0}\right)}}{2.0}\]
    6. Simplified0.2

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

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

Reproduce

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