Average Error: 24.0 → 11.7
Time: 7.4s
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}\;\alpha \le 9.47349017426827742 \cdot 10^{80}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\frac{\frac{\alpha + \beta}{1}}{1}, \frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, 1\right)}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{1 \cdot \mathsf{fma}\left(-4, \frac{1}{{\alpha}^{2}}, \mathsf{fma}\left(8, \frac{1}{{\alpha}^{3}}, \frac{2}{\alpha}\right)\right)}{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}\;\alpha \le 9.47349017426827742 \cdot 10^{80}:\\
\;\;\;\;\frac{\mathsf{fma}\left(\frac{\frac{\alpha + \beta}{1}}{1}, \frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, 1\right)}{2}\\

\mathbf{else}:\\
\;\;\;\;\frac{1 \cdot \mathsf{fma}\left(-4, \frac{1}{{\alpha}^{2}}, \mathsf{fma}\left(8, \frac{1}{{\alpha}^{3}}, \frac{2}{\alpha}\right)\right)}{2}\\

\end{array}
double f(double alpha, double beta, double i) {
        double r104216 = alpha;
        double r104217 = beta;
        double r104218 = r104216 + r104217;
        double r104219 = r104217 - r104216;
        double r104220 = r104218 * r104219;
        double r104221 = 2.0;
        double r104222 = i;
        double r104223 = r104221 * r104222;
        double r104224 = r104218 + r104223;
        double r104225 = r104220 / r104224;
        double r104226 = r104224 + r104221;
        double r104227 = r104225 / r104226;
        double r104228 = 1.0;
        double r104229 = r104227 + r104228;
        double r104230 = r104229 / r104221;
        return r104230;
}

double f(double alpha, double beta, double i) {
        double r104231 = alpha;
        double r104232 = 9.473490174268277e+80;
        bool r104233 = r104231 <= r104232;
        double r104234 = beta;
        double r104235 = r104231 + r104234;
        double r104236 = 1.0;
        double r104237 = r104235 / r104236;
        double r104238 = r104237 / r104236;
        double r104239 = r104234 - r104231;
        double r104240 = 2.0;
        double r104241 = i;
        double r104242 = r104240 * r104241;
        double r104243 = r104235 + r104242;
        double r104244 = r104239 / r104243;
        double r104245 = r104243 + r104240;
        double r104246 = r104244 / r104245;
        double r104247 = 1.0;
        double r104248 = fma(r104238, r104246, r104247);
        double r104249 = r104248 / r104240;
        double r104250 = 4.0;
        double r104251 = -r104250;
        double r104252 = 2.0;
        double r104253 = pow(r104231, r104252);
        double r104254 = r104236 / r104253;
        double r104255 = 8.0;
        double r104256 = 3.0;
        double r104257 = pow(r104231, r104256);
        double r104258 = r104236 / r104257;
        double r104259 = r104240 / r104231;
        double r104260 = fma(r104255, r104258, r104259);
        double r104261 = fma(r104251, r104254, r104260);
        double r104262 = r104236 * r104261;
        double r104263 = r104262 / r104240;
        double r104264 = r104233 ? r104249 : r104263;
        return r104264;
}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

  1. Split input into 2 regimes
  2. if alpha < 9.473490174268277e+80

    1. Initial program 13.1

      \[\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-identity13.1

      \[\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-identity13.1

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

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

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

      \[\leadsto \frac{\color{blue}{\mathsf{fma}\left(\frac{\frac{\alpha + \beta}{1}}{1}, \frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, 1\right)}}{2}\]

    if 9.473490174268277e+80 < alpha

    1. Initial program 57.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-identity57.9

      \[\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} + \color{blue}{1 \cdot 1}}{2}\]
    4. Applied *-un-lft-identity57.9

      \[\leadsto \frac{\color{blue}{1 \cdot \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 \cdot 1}{2}\]
    5. Applied distribute-lft-out57.9

      \[\leadsto \frac{\color{blue}{1 \cdot \left(\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\right)}}{2}\]
    6. Simplified42.9

      \[\leadsto \frac{1 \cdot \color{blue}{\mathsf{fma}\left(\frac{\alpha + \beta}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, \frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \beta\right) + \alpha}, 1\right)}}{2}\]
    7. Using strategy rm
    8. Applied add-log-exp42.9

      \[\leadsto \frac{1 \cdot \color{blue}{\log \left(e^{\mathsf{fma}\left(\frac{\alpha + \beta}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, \frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \beta\right) + \alpha}, 1\right)}\right)}}{2}\]
    9. Taylor expanded around inf 40.6

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

      \[\leadsto \frac{1 \cdot \color{blue}{\mathsf{fma}\left(-4, \frac{1}{{\alpha}^{2}}, \mathsf{fma}\left(8, \frac{1}{{\alpha}^{3}}, \frac{2}{\alpha}\right)\right)}}{2}\]
  3. Recombined 2 regimes into one program.
  4. Final simplification11.7

    \[\leadsto \begin{array}{l} \mathbf{if}\;\alpha \le 9.47349017426827742 \cdot 10^{80}:\\ \;\;\;\;\frac{\mathsf{fma}\left(\frac{\frac{\alpha + \beta}{1}}{1}, \frac{\frac{\beta - \alpha}{\left(\alpha + \beta\right) + 2 \cdot i}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}, 1\right)}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{1 \cdot \mathsf{fma}\left(-4, \frac{1}{{\alpha}^{2}}, \mathsf{fma}\left(8, \frac{1}{{\alpha}^{3}}, \frac{2}{\alpha}\right)\right)}{2}\\ \end{array}\]

Reproduce

herbie shell --seed 2020065 +o rules:numerics
(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))