Average Error: 24.2 → 11.4
Time: 21.0s
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 3.96716655991070271 \cdot 10^{139}:\\ \;\;\;\;\frac{\frac{\frac{\alpha + \beta}{\mathsf{fma}\left(i, 2, \alpha + \beta\right)} \cdot \frac{\beta - \alpha}{\left(\alpha + \beta\right) - 2 \cdot i}}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}} \cdot \frac{\left(\alpha + \beta\right) - 2 \cdot i}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}} + 1}{2}\\ \mathbf{else}:\\ \;\;\;\;\frac{\mathsf{fma}\left(2, \frac{1}{\alpha}, 8 \cdot \frac{1}{{\alpha}^{3}} - 4 \cdot \frac{1}{{\alpha}^{2}}\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 3.96716655991070271 \cdot 10^{139}:\\
\;\;\;\;\frac{\frac{\frac{\alpha + \beta}{\mathsf{fma}\left(i, 2, \alpha + \beta\right)} \cdot \frac{\beta - \alpha}{\left(\alpha + \beta\right) - 2 \cdot i}}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}} \cdot \frac{\left(\alpha + \beta\right) - 2 \cdot i}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}} + 1}{2}\\

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

\end{array}
double f(double alpha, double beta, double i) {
        double r215097 = alpha;
        double r215098 = beta;
        double r215099 = r215097 + r215098;
        double r215100 = r215098 - r215097;
        double r215101 = r215099 * r215100;
        double r215102 = 2.0;
        double r215103 = i;
        double r215104 = r215102 * r215103;
        double r215105 = r215099 + r215104;
        double r215106 = r215101 / r215105;
        double r215107 = r215105 + r215102;
        double r215108 = r215106 / r215107;
        double r215109 = 1.0;
        double r215110 = r215108 + r215109;
        double r215111 = r215110 / r215102;
        return r215111;
}

double f(double alpha, double beta, double i) {
        double r215112 = alpha;
        double r215113 = 3.9671665599107027e+139;
        bool r215114 = r215112 <= r215113;
        double r215115 = beta;
        double r215116 = r215112 + r215115;
        double r215117 = i;
        double r215118 = 2.0;
        double r215119 = fma(r215117, r215118, r215116);
        double r215120 = r215116 / r215119;
        double r215121 = r215115 - r215112;
        double r215122 = r215118 * r215117;
        double r215123 = r215116 - r215122;
        double r215124 = r215121 / r215123;
        double r215125 = r215120 * r215124;
        double r215126 = r215116 + r215122;
        double r215127 = r215126 + r215118;
        double r215128 = sqrt(r215127);
        double r215129 = r215125 / r215128;
        double r215130 = r215123 / r215128;
        double r215131 = r215129 * r215130;
        double r215132 = 1.0;
        double r215133 = r215131 + r215132;
        double r215134 = r215133 / r215118;
        double r215135 = 1.0;
        double r215136 = r215135 / r215112;
        double r215137 = 8.0;
        double r215138 = 3.0;
        double r215139 = pow(r215112, r215138);
        double r215140 = r215135 / r215139;
        double r215141 = r215137 * r215140;
        double r215142 = 4.0;
        double r215143 = 2.0;
        double r215144 = pow(r215112, r215143);
        double r215145 = r215135 / r215144;
        double r215146 = r215142 * r215145;
        double r215147 = r215141 - r215146;
        double r215148 = fma(r215118, r215136, r215147);
        double r215149 = r215148 / r215118;
        double r215150 = r215114 ? r215134 : r215149;
        return r215150;
}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

  1. Split input into 2 regimes
  2. if alpha < 3.9671665599107027e+139

    1. Initial program 15.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} + 1}{2}\]
    2. Using strategy rm
    3. Applied add-sqr-sqrt15.6

      \[\leadsto \frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\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}\]
    4. Applied flip-+17.4

      \[\leadsto \frac{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\color{blue}{\frac{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - \left(2 \cdot i\right) \cdot \left(2 \cdot i\right)}{\left(\alpha + \beta\right) - 2 \cdot i}}}}{\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}\]
    5. Applied associate-/r/17.4

      \[\leadsto \frac{\frac{\color{blue}{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - \left(2 \cdot i\right) \cdot \left(2 \cdot i\right)} \cdot \left(\left(\alpha + \beta\right) - 2 \cdot i\right)}}{\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}\]
    6. Applied times-frac17.4

      \[\leadsto \frac{\color{blue}{\frac{\frac{\left(\alpha + \beta\right) \cdot \left(\beta - \alpha\right)}{\left(\alpha + \beta\right) \cdot \left(\alpha + \beta\right) - \left(2 \cdot i\right) \cdot \left(2 \cdot i\right)}}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}} \cdot \frac{\left(\alpha + \beta\right) - 2 \cdot i}{\sqrt{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) + 2}}} + 1}{2}\]
    7. Simplified4.9

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

    if 3.9671665599107027e+139 < alpha

    1. Initial program 62.2

      \[\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. Taylor expanded around inf 40.7

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

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

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

Reproduce

herbie shell --seed 2020024 +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))