Average Error: 3.6 → 2.9
Time: 2.5m
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1\]
\[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
\[\begin{array}{l} \mathbf{if}\;\alpha \le 9.447545610483609 \cdot 10^{+144}:\\ \;\;\;\;\frac{1.0 + \left(\left(\beta + \alpha\right) + \beta \cdot \alpha\right)}{4 - \left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right)} \cdot \frac{1}{\frac{1.0 + \left(2 + \left(\beta + \alpha\right)\right)}{\frac{2 - \left(\beta + \alpha\right)}{2 + \left(\beta + \alpha\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\frac{1.0 + \left(2 + \left(\beta + \alpha\right)\right)}{\frac{\left(1 - \frac{1.0}{\alpha}\right) + \frac{1}{\alpha \cdot \alpha} \cdot 2.0}{2 + \left(\beta + \alpha\right)}}}\\ \end{array}\]
\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}
\begin{array}{l}
\mathbf{if}\;\alpha \le 9.447545610483609 \cdot 10^{+144}:\\
\;\;\;\;\frac{1.0 + \left(\left(\beta + \alpha\right) + \beta \cdot \alpha\right)}{4 - \left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right)} \cdot \frac{1}{\frac{1.0 + \left(2 + \left(\beta + \alpha\right)\right)}{\frac{2 - \left(\beta + \alpha\right)}{2 + \left(\beta + \alpha\right)}}}\\

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

\end{array}
double f(double alpha, double beta) {
        double r4213503 = alpha;
        double r4213504 = beta;
        double r4213505 = r4213503 + r4213504;
        double r4213506 = r4213504 * r4213503;
        double r4213507 = r4213505 + r4213506;
        double r4213508 = 1.0;
        double r4213509 = r4213507 + r4213508;
        double r4213510 = 2.0;
        double r4213511 = 1.0;
        double r4213512 = r4213510 * r4213511;
        double r4213513 = r4213505 + r4213512;
        double r4213514 = r4213509 / r4213513;
        double r4213515 = r4213514 / r4213513;
        double r4213516 = r4213513 + r4213508;
        double r4213517 = r4213515 / r4213516;
        return r4213517;
}

double f(double alpha, double beta) {
        double r4213518 = alpha;
        double r4213519 = 9.447545610483609e+144;
        bool r4213520 = r4213518 <= r4213519;
        double r4213521 = 1.0;
        double r4213522 = beta;
        double r4213523 = r4213522 + r4213518;
        double r4213524 = r4213522 * r4213518;
        double r4213525 = r4213523 + r4213524;
        double r4213526 = r4213521 + r4213525;
        double r4213527 = 4.0;
        double r4213528 = r4213523 * r4213523;
        double r4213529 = r4213527 - r4213528;
        double r4213530 = r4213526 / r4213529;
        double r4213531 = 1.0;
        double r4213532 = 2.0;
        double r4213533 = r4213532 + r4213523;
        double r4213534 = r4213521 + r4213533;
        double r4213535 = r4213532 - r4213523;
        double r4213536 = r4213535 / r4213533;
        double r4213537 = r4213534 / r4213536;
        double r4213538 = r4213531 / r4213537;
        double r4213539 = r4213530 * r4213538;
        double r4213540 = r4213521 / r4213518;
        double r4213541 = r4213531 - r4213540;
        double r4213542 = r4213518 * r4213518;
        double r4213543 = r4213531 / r4213542;
        double r4213544 = 2.0;
        double r4213545 = r4213543 * r4213544;
        double r4213546 = r4213541 + r4213545;
        double r4213547 = r4213546 / r4213533;
        double r4213548 = r4213534 / r4213547;
        double r4213549 = r4213531 / r4213548;
        double r4213550 = r4213520 ? r4213539 : r4213549;
        return r4213550;
}

Error

Bits error versus alpha

Bits error versus beta

Try it out

Your Program's Arguments

Results

Enter valid numbers for all inputs

Derivation

  1. Split input into 2 regimes
  2. if alpha < 9.447545610483609e+144

    1. Initial program 1.0

      \[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    2. Simplified1.0

      \[\leadsto \color{blue}{\frac{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}}\]
    3. Using strategy rm
    4. Applied clear-num1.2

      \[\leadsto \color{blue}{\frac{1}{\frac{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}}}\]
    5. Using strategy rm
    6. Applied *-un-lft-identity1.2

      \[\leadsto \frac{1}{\frac{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \color{blue}{1 \cdot \alpha}\right)}}}\]
    7. Applied *-un-lft-identity1.2

      \[\leadsto \frac{1}{\frac{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\color{blue}{1 \cdot \beta} + 1 \cdot \alpha\right)}}}\]
    8. Applied distribute-lft-out1.2

      \[\leadsto \frac{1}{\frac{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \color{blue}{1 \cdot \left(\beta + \alpha\right)}}}}\]
    9. Applied *-un-lft-identity1.2

      \[\leadsto \frac{1}{\frac{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{\color{blue}{1 \cdot 2} + 1 \cdot \left(\beta + \alpha\right)}}}\]
    10. Applied distribute-lft-out1.2

      \[\leadsto \frac{1}{\frac{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{\color{blue}{1 \cdot \left(2 + \left(\beta + \alpha\right)\right)}}}}\]
    11. Applied flip-+1.5

      \[\leadsto \frac{1}{\frac{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{\color{blue}{\frac{2 \cdot 2 - \left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right)}{2 - \left(\beta + \alpha\right)}}}}{1 \cdot \left(2 + \left(\beta + \alpha\right)\right)}}}\]
    12. Applied associate-/r/1.5

      \[\leadsto \frac{1}{\frac{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}{\frac{\color{blue}{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 \cdot 2 - \left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right)} \cdot \left(2 - \left(\beta + \alpha\right)\right)}}{1 \cdot \left(2 + \left(\beta + \alpha\right)\right)}}}\]
    13. Applied times-frac1.5

      \[\leadsto \frac{1}{\frac{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}{\color{blue}{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 \cdot 2 - \left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right)}}{1} \cdot \frac{2 - \left(\beta + \alpha\right)}{2 + \left(\beta + \alpha\right)}}}}\]
    14. Applied *-un-lft-identity1.5

      \[\leadsto \frac{1}{\frac{\left(2 + \left(\beta + \alpha\right)\right) + \color{blue}{1 \cdot 1.0}}{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 \cdot 2 - \left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right)}}{1} \cdot \frac{2 - \left(\beta + \alpha\right)}{2 + \left(\beta + \alpha\right)}}}\]
    15. Applied *-un-lft-identity1.5

      \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot \left(2 + \left(\beta + \alpha\right)\right)} + 1 \cdot 1.0}{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 \cdot 2 - \left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right)}}{1} \cdot \frac{2 - \left(\beta + \alpha\right)}{2 + \left(\beta + \alpha\right)}}}\]
    16. Applied distribute-lft-out1.5

      \[\leadsto \frac{1}{\frac{\color{blue}{1 \cdot \left(\left(2 + \left(\beta + \alpha\right)\right) + 1.0\right)}}{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 \cdot 2 - \left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right)}}{1} \cdot \frac{2 - \left(\beta + \alpha\right)}{2 + \left(\beta + \alpha\right)}}}\]
    17. Applied times-frac1.5

      \[\leadsto \frac{1}{\color{blue}{\frac{1}{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 \cdot 2 - \left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right)}}{1}} \cdot \frac{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}{\frac{2 - \left(\beta + \alpha\right)}{2 + \left(\beta + \alpha\right)}}}}\]
    18. Applied *-un-lft-identity1.5

      \[\leadsto \frac{\color{blue}{1 \cdot 1}}{\frac{1}{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 \cdot 2 - \left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right)}}{1}} \cdot \frac{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}{\frac{2 - \left(\beta + \alpha\right)}{2 + \left(\beta + \alpha\right)}}}\]
    19. Applied times-frac1.6

      \[\leadsto \color{blue}{\frac{1}{\frac{1}{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 \cdot 2 - \left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right)}}{1}}} \cdot \frac{1}{\frac{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}{\frac{2 - \left(\beta + \alpha\right)}{2 + \left(\beta + \alpha\right)}}}}\]
    20. Simplified1.5

      \[\leadsto \color{blue}{\frac{\left(\beta \cdot \alpha + \left(\alpha + \beta\right)\right) + 1.0}{4 - \left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right)}} \cdot \frac{1}{\frac{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}{\frac{2 - \left(\beta + \alpha\right)}{2 + \left(\beta + \alpha\right)}}}\]

    if 9.447545610483609e+144 < alpha

    1. Initial program 16.1

      \[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\]
    2. Simplified16.1

      \[\leadsto \color{blue}{\frac{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}}\]
    3. Using strategy rm
    4. Applied clear-num16.9

      \[\leadsto \color{blue}{\frac{1}{\frac{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}{\frac{\frac{1.0 + \left(\alpha \cdot \beta + \left(\beta + \alpha\right)\right)}{2 + \left(\beta + \alpha\right)}}{2 + \left(\beta + \alpha\right)}}}}\]
    5. Taylor expanded around inf 9.2

      \[\leadsto \frac{1}{\frac{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}{\frac{\color{blue}{\left(2.0 \cdot \frac{1}{{\alpha}^{2}} + 1\right) - 1.0 \cdot \frac{1}{\alpha}}}{2 + \left(\beta + \alpha\right)}}}\]
    6. Simplified9.2

      \[\leadsto \frac{1}{\frac{\left(2 + \left(\beta + \alpha\right)\right) + 1.0}{\frac{\color{blue}{2.0 \cdot \frac{1}{\alpha \cdot \alpha} + \left(1 - \frac{1.0 \cdot 1}{\alpha}\right)}}{2 + \left(\beta + \alpha\right)}}}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification2.9

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 9.447545610483609 \cdot 10^{+144}:\\ \;\;\;\;\frac{1.0 + \left(\left(\beta + \alpha\right) + \beta \cdot \alpha\right)}{4 - \left(\beta + \alpha\right) \cdot \left(\beta + \alpha\right)} \cdot \frac{1}{\frac{1.0 + \left(2 + \left(\beta + \alpha\right)\right)}{\frac{2 - \left(\beta + \alpha\right)}{2 + \left(\beta + \alpha\right)}}}\\ \mathbf{else}:\\ \;\;\;\;\frac{1}{\frac{1.0 + \left(2 + \left(\beta + \alpha\right)\right)}{\frac{\left(1 - \frac{1.0}{\alpha}\right) + \frac{1}{\alpha \cdot \alpha} \cdot 2.0}{2 + \left(\beta + \alpha\right)}}}\\ \end{array}\]

Reproduce

herbie shell --seed 2019151 
(FPCore (alpha beta)
  :name "Octave 3.8, jcobi/3"
  :pre (and (> alpha -1) (> beta -1))
  (/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)))