Average Error: 24.0 → 12.8
Time: 23.2s
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}\]
\[\frac{e^{\log \left(1.0 + \left(\alpha + \beta\right) \cdot \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}}{2.0 + \mathsf{fma}\left(2, i, \alpha + \beta\right)}\right)}}{2.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}
\frac{e^{\log \left(1.0 + \left(\alpha + \beta\right) \cdot \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}}{2.0 + \mathsf{fma}\left(2, i, \alpha + \beta\right)}\right)}}{2.0}
double f(double alpha, double beta, double i) {
        double r1642530 = alpha;
        double r1642531 = beta;
        double r1642532 = r1642530 + r1642531;
        double r1642533 = r1642531 - r1642530;
        double r1642534 = r1642532 * r1642533;
        double r1642535 = 2.0;
        double r1642536 = i;
        double r1642537 = r1642535 * r1642536;
        double r1642538 = r1642532 + r1642537;
        double r1642539 = r1642534 / r1642538;
        double r1642540 = 2.0;
        double r1642541 = r1642538 + r1642540;
        double r1642542 = r1642539 / r1642541;
        double r1642543 = 1.0;
        double r1642544 = r1642542 + r1642543;
        double r1642545 = r1642544 / r1642540;
        return r1642545;
}

double f(double alpha, double beta, double i) {
        double r1642546 = 1.0;
        double r1642547 = alpha;
        double r1642548 = beta;
        double r1642549 = r1642547 + r1642548;
        double r1642550 = r1642548 - r1642547;
        double r1642551 = 2.0;
        double r1642552 = i;
        double r1642553 = fma(r1642551, r1642552, r1642549);
        double r1642554 = r1642550 / r1642553;
        double r1642555 = 2.0;
        double r1642556 = r1642555 + r1642553;
        double r1642557 = r1642554 / r1642556;
        double r1642558 = r1642549 * r1642557;
        double r1642559 = r1642546 + r1642558;
        double r1642560 = log(r1642559);
        double r1642561 = exp(r1642560);
        double r1642562 = r1642561 / r1642555;
        return r1642562;
}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

  1. Initial program 24.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}\]
  2. Simplified23.9

    \[\leadsto \color{blue}{\frac{\frac{\left(\beta + \alpha\right) \cdot \left(\beta - \alpha\right)}{\mathsf{fma}\left(\mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot 2.0\right)} + 1.0}{2.0}}\]
  3. Using strategy rm
  4. Applied *-un-lft-identity23.9

    \[\leadsto \frac{\frac{\left(\beta + \alpha\right) \cdot \left(\beta - \alpha\right)}{\color{blue}{1 \cdot \mathsf{fma}\left(\mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot 2.0\right)}} + 1.0}{2.0}\]
  5. Applied times-frac20.1

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

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

    \[\leadsto \frac{\color{blue}{e^{\log \left(\mathsf{fma}\left(\frac{\beta + \alpha}{1}, \frac{\beta - \alpha}{\mathsf{fma}\left(\mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot 2.0\right)}, 1.0\right)\right)}}}{2.0}\]
  9. Simplified20.1

    \[\leadsto \frac{e^{\color{blue}{\log \left(\mathsf{fma}\left(\beta + \alpha, \frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot \left(\mathsf{fma}\left(2, i, \beta + \alpha\right) + 2.0\right)}, 1.0\right)\right)}}}{2.0}\]
  10. Using strategy rm
  11. Applied associate-/r*12.9

    \[\leadsto \frac{e^{\log \left(\mathsf{fma}\left(\beta + \alpha, \color{blue}{\frac{\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}}{\mathsf{fma}\left(2, i, \beta + \alpha\right) + 2.0}}, 1.0\right)\right)}}{2.0}\]
  12. Using strategy rm
  13. Applied fma-udef12.8

    \[\leadsto \frac{e^{\log \color{blue}{\left(\left(\beta + \alpha\right) \cdot \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}}{\mathsf{fma}\left(2, i, \beta + \alpha\right) + 2.0} + 1.0\right)}}}{2.0}\]
  14. Final simplification12.8

    \[\leadsto \frac{e^{\log \left(1.0 + \left(\alpha + \beta\right) \cdot \frac{\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}}{2.0 + \mathsf{fma}\left(2, i, \alpha + \beta\right)}\right)}}{2.0}\]

Reproduce

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