Average Error: 23.3 → 7.8
Time: 23.3s
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1 \land i \gt 0.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} + 1}{2}\]
\[\begin{array}{l} \mathbf{if}\;\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} \le -1:\\ \;\;\;\;\frac{\left(\frac{8}{{\alpha}^{3}} - \frac{4}{\alpha \cdot \alpha}\right) + \frac{2}{\alpha}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(\alpha + \beta\right) \cdot \frac{\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}}}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}} + 1}{2}\\ \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} + 1}{2}
\begin{array}{l}
\mathbf{if}\;\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} \le -1:\\
\;\;\;\;\frac{\left(\frac{8}{{\alpha}^{3}} - \frac{4}{\alpha \cdot \alpha}\right) + \frac{2}{\alpha}}{2}\\

\mathbf{else}:\\
\;\;\;\;\frac{\left(\alpha + \beta\right) \cdot \frac{\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}}}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}} + 1}{2}\\

\end{array}
double f(double alpha, double beta, double i) {
        double r116431 = alpha;
        double r116432 = beta;
        double r116433 = r116431 + r116432;
        double r116434 = r116432 - r116431;
        double r116435 = r116433 * r116434;
        double r116436 = 2.0;
        double r116437 = i;
        double r116438 = r116436 * r116437;
        double r116439 = r116433 + r116438;
        double r116440 = r116435 / r116439;
        double r116441 = r116439 + r116436;
        double r116442 = r116440 / r116441;
        double r116443 = 1.0;
        double r116444 = r116442 + r116443;
        double r116445 = r116444 / r116436;
        return r116445;
}

double f(double alpha, double beta, double i) {
        double r116446 = alpha;
        double r116447 = beta;
        double r116448 = r116446 + r116447;
        double r116449 = r116447 - r116446;
        double r116450 = r116448 * r116449;
        double r116451 = 2.0;
        double r116452 = i;
        double r116453 = r116451 * r116452;
        double r116454 = r116448 + r116453;
        double r116455 = r116450 / r116454;
        double r116456 = r116454 + r116451;
        double r116457 = r116455 / r116456;
        double r116458 = -1.0;
        bool r116459 = r116457 <= r116458;
        double r116460 = 8.0;
        double r116461 = 3.0;
        double r116462 = pow(r116446, r116461);
        double r116463 = r116460 / r116462;
        double r116464 = 4.0;
        double r116465 = r116446 * r116446;
        double r116466 = r116464 / r116465;
        double r116467 = r116463 - r116466;
        double r116468 = r116451 / r116446;
        double r116469 = r116467 + r116468;
        double r116470 = r116469 / r116451;
        double r116471 = r116449 / r116454;
        double r116472 = sqrt(r116456);
        double r116473 = r116471 / r116472;
        double r116474 = r116473 / r116472;
        double r116475 = r116448 * r116474;
        double r116476 = 1.0;
        double r116477 = r116475 + r116476;
        double r116478 = r116477 / r116451;
        double r116479 = r116459 ? r116470 : r116478;
        return r116479;
}

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.0 i))) (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) < -1.0

    1. Initial program 63.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} + 1}{2}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity63.3

      \[\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\right)}} + 1}{2}\]
    4. Applied *-un-lft-identity63.3

      \[\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\right)} + 1}{2}\]
    5. Applied times-frac53.9

      \[\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\right)} + 1}{2}\]
    6. Applied times-frac53.8

      \[\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}} + 1}{2}\]
    7. Simplified53.8

      \[\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} + 1}{2}\]
    8. Taylor expanded around inf 33.4

      \[\leadsto \frac{\color{blue}{\left(2 \cdot \frac{1}{\alpha} + 8 \cdot \frac{1}{{\alpha}^{3}}\right) - 4 \cdot \frac{1}{{\alpha}^{2}}}}{2}\]
    9. Simplified33.4

      \[\leadsto \frac{\color{blue}{\left(\frac{8}{{\alpha}^{3}} - \frac{4}{\alpha \cdot \alpha}\right) + \frac{2}{\alpha}}}{2}\]

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

    1. Initial program 11.9

      \[\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} + 1}{2}\]
    2. Using strategy rm
    3. Applied *-un-lft-identity11.9

      \[\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\right)}} + 1}{2}\]
    4. Applied *-un-lft-identity11.9

      \[\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\right)} + 1}{2}\]
    5. 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\right)} + 1}{2}\]
    6. 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}} + 1}{2}\]
    7. Simplified0.5

      \[\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} + 1}{2}\]
    8. Using strategy rm
    9. Applied add-sqr-sqrt0.5

      \[\leadsto \frac{\left(\alpha + \beta\right) \cdot \frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\color{blue}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2} \cdot \sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}}} + 1}{2}\]
    10. Applied associate-/r*0.5

      \[\leadsto \frac{\left(\alpha + \beta\right) \cdot \color{blue}{\frac{\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}}}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}}} + 1}{2}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification7.8

    \[\leadsto \begin{array}{l} \mathbf{if}\;\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} \le -1:\\ \;\;\;\;\frac{\left(\frac{8}{{\alpha}^{3}} - \frac{4}{\alpha \cdot \alpha}\right) + \frac{2}{\alpha}}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\left(\alpha + \beta\right) \cdot \frac{\frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}}}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}} + 1}{2}\\ \end{array}\]

Reproduce

herbie shell --seed 2020047 
(FPCore (alpha beta i)
  :name "Octave 3.8, jcobi/2"
  :precision binary64
  :pre (and (> alpha -1) (> beta -1) (> i 0.0))
  (/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2)) 1) 2))