Average Error: 23.8 → 12.1
Time: 28.2s
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 r3828665 = alpha;
        double r3828666 = beta;
        double r3828667 = r3828665 + r3828666;
        double r3828668 = r3828666 - r3828665;
        double r3828669 = r3828667 * r3828668;
        double r3828670 = 2.0;
        double r3828671 = i;
        double r3828672 = r3828670 * r3828671;
        double r3828673 = r3828667 + r3828672;
        double r3828674 = r3828669 / r3828673;
        double r3828675 = r3828673 + r3828670;
        double r3828676 = r3828674 / r3828675;
        double r3828677 = 1.0;
        double r3828678 = r3828676 + r3828677;
        double r3828679 = r3828678 / r3828670;
        return r3828679;
}

double f(double alpha, double beta, double i) {
        double r3828680 = beta;
        double r3828681 = 2.0;
        double r3828682 = i;
        double r3828683 = alpha;
        double r3828684 = r3828683 + r3828680;
        double r3828685 = fma(r3828681, r3828682, r3828684);
        double r3828686 = r3828680 / r3828685;
        double r3828687 = r3828683 / r3828685;
        double r3828688 = r3828686 - r3828687;
        double r3828689 = r3828681 + r3828685;
        double r3828690 = r3828688 / r3828689;
        double r3828691 = r3828680 * r3828690;
        double r3828692 = r3828690 * r3828683;
        double r3828693 = 1.0;
        double r3828694 = r3828692 + r3828693;
        double r3828695 = r3828691 + r3828694;
        double r3828696 = r3828695 / r3828681;
        return r3828696;
}

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-rgt-in12.1

    \[\leadsto \frac{\color{blue}{\left(\beta \cdot \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)} + \alpha \cdot \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)}\right)} + 1}{2}\]
  11. Applied associate-+l+12.1

    \[\leadsto \frac{\color{blue}{\beta \cdot \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)} + \left(\alpha \cdot \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)} + 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))