Average Error: 23.8 → 12.1
Time: 28.6s
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}\]
\[\frac{\beta \cdot \frac{\frac{\beta}{\mathsf{fma}\left(2, i, \alpha + \beta\right)} - \frac{\alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}}{2 + \mathsf{fma}\left(2, i, \alpha + \beta\right)} + \left(\frac{\frac{\beta}{\mathsf{fma}\left(2, i, \alpha + \beta\right)} - \frac{\alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}}{2 + \mathsf{fma}\left(2, i, \alpha + \beta\right)} \cdot \alpha + 1\right)}{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}
\frac{\beta \cdot \frac{\frac{\beta}{\mathsf{fma}\left(2, i, \alpha + \beta\right)} - \frac{\alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}}{2 + \mathsf{fma}\left(2, i, \alpha + \beta\right)} + \left(\frac{\frac{\beta}{\mathsf{fma}\left(2, i, \alpha + \beta\right)} - \frac{\alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}}{2 + \mathsf{fma}\left(2, i, \alpha + \beta\right)} \cdot \alpha + 1\right)}{2}
double f(double alpha, double beta, double i) {
        double r3805278 = alpha;
        double r3805279 = beta;
        double r3805280 = r3805278 + r3805279;
        double r3805281 = r3805279 - r3805278;
        double r3805282 = r3805280 * r3805281;
        double r3805283 = 2.0;
        double r3805284 = i;
        double r3805285 = r3805283 * r3805284;
        double r3805286 = r3805280 + r3805285;
        double r3805287 = r3805282 / r3805286;
        double r3805288 = r3805286 + r3805283;
        double r3805289 = r3805287 / r3805288;
        double r3805290 = 1.0;
        double r3805291 = r3805289 + r3805290;
        double r3805292 = r3805291 / r3805283;
        return r3805292;
}

double f(double alpha, double beta, double i) {
        double r3805293 = beta;
        double r3805294 = 2.0;
        double r3805295 = i;
        double r3805296 = alpha;
        double r3805297 = r3805296 + r3805293;
        double r3805298 = fma(r3805294, r3805295, r3805297);
        double r3805299 = r3805293 / r3805298;
        double r3805300 = r3805296 / r3805298;
        double r3805301 = r3805299 - r3805300;
        double r3805302 = r3805294 + r3805298;
        double r3805303 = r3805301 / r3805302;
        double r3805304 = r3805293 * r3805303;
        double r3805305 = r3805303 * r3805296;
        double r3805306 = 1.0;
        double r3805307 = r3805305 + r3805306;
        double r3805308 = r3805304 + r3805307;
        double r3805309 = r3805308 / r3805294;
        return r3805309;
}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

  1. Initial program 23.8

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

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot \left(2 + \mathsf{fma}\left(2, i, \beta + \alpha\right)\right)}, \beta + \alpha, 1\right)}{2}}\]
  3. Using strategy rm
  4. Applied associate-/r*12.2

    \[\leadsto \frac{\mathsf{fma}\left(\color{blue}{\frac{\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}}{2 + \mathsf{fma}\left(2, i, \beta + \alpha\right)}}, \beta + \alpha, 1\right)}{2}\]
  5. Using strategy rm
  6. Applied fma-udef12.1

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

    \[\leadsto \frac{\frac{\color{blue}{\frac{\beta}{\mathsf{fma}\left(2, i, \beta + \alpha\right)} - \frac{\alpha}{\mathsf{fma}\left(2, i, \beta + \alpha\right)}}}{2 + \mathsf{fma}\left(2, i, \beta + \alpha\right)} \cdot \left(\beta + \alpha\right) + 1}{2}\]
  9. Using strategy rm
  10. Applied distribute-lft-in12.1

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

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

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

Reproduce

herbie shell --seed 2019172 +o rules:numerics
(FPCore (alpha beta i)
  :name "Octave 3.8, jcobi/2"
  :pre (and (> alpha -1.0) (> beta -1.0) (> i 0.0))
  (/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2.0 i))) (+ (+ (+ alpha beta) (* 2.0 i)) 2.0)) 1.0) 2.0))