Average Error: 23.3 → 12.2
Time: 24.3s
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{\mathsf{fma}\left(\left(\frac{\frac{1}{\sqrt{\mathsf{fma}\left(2, i, \left(\alpha + \beta\right)\right) + 2.0}}}{\sqrt{\mathsf{fma}\left(2, i, \left(\alpha + \beta\right)\right) + 2.0}} \cdot \left(\alpha + \beta\right)\right), \left(\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \left(\alpha + \beta\right)\right)}\right), 1.0\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{\mathsf{fma}\left(\left(\frac{\frac{1}{\sqrt{\mathsf{fma}\left(2, i, \left(\alpha + \beta\right)\right) + 2.0}}}{\sqrt{\mathsf{fma}\left(2, i, \left(\alpha + \beta\right)\right) + 2.0}} \cdot \left(\alpha + \beta\right)\right), \left(\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \left(\alpha + \beta\right)\right)}\right), 1.0\right)}{2.0}
double f(double alpha, double beta, double i) {
        double r2676963 = alpha;
        double r2676964 = beta;
        double r2676965 = r2676963 + r2676964;
        double r2676966 = r2676964 - r2676963;
        double r2676967 = r2676965 * r2676966;
        double r2676968 = 2.0;
        double r2676969 = i;
        double r2676970 = r2676968 * r2676969;
        double r2676971 = r2676965 + r2676970;
        double r2676972 = r2676967 / r2676971;
        double r2676973 = 2.0;
        double r2676974 = r2676971 + r2676973;
        double r2676975 = r2676972 / r2676974;
        double r2676976 = 1.0;
        double r2676977 = r2676975 + r2676976;
        double r2676978 = r2676977 / r2676973;
        return r2676978;
}

double f(double alpha, double beta, double i) {
        double r2676979 = 1.0;
        double r2676980 = 2.0;
        double r2676981 = i;
        double r2676982 = alpha;
        double r2676983 = beta;
        double r2676984 = r2676982 + r2676983;
        double r2676985 = fma(r2676980, r2676981, r2676984);
        double r2676986 = 2.0;
        double r2676987 = r2676985 + r2676986;
        double r2676988 = sqrt(r2676987);
        double r2676989 = r2676979 / r2676988;
        double r2676990 = r2676989 / r2676988;
        double r2676991 = r2676990 * r2676984;
        double r2676992 = r2676983 - r2676982;
        double r2676993 = r2676992 / r2676985;
        double r2676994 = 1.0;
        double r2676995 = fma(r2676991, r2676993, r2676994);
        double r2676996 = r2676995 / r2676986;
        return r2676996;
}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

  1. Initial program 23.3

    \[\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. Simplified12.2

    \[\leadsto \color{blue}{\frac{\mathsf{fma}\left(\left(\frac{\beta + \alpha}{2.0 + \mathsf{fma}\left(2, i, \left(\beta + \alpha\right)\right)}\right), \left(\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \left(\beta + \alpha\right)\right)}\right), 1.0\right)}{2.0}}\]
  3. Using strategy rm
  4. Applied div-inv12.2

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

    \[\leadsto \frac{\mathsf{fma}\left(\left(\left(\beta + \alpha\right) \cdot \frac{1}{\color{blue}{\sqrt{2.0 + \mathsf{fma}\left(2, i, \left(\beta + \alpha\right)\right)} \cdot \sqrt{2.0 + \mathsf{fma}\left(2, i, \left(\beta + \alpha\right)\right)}}}\right), \left(\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \left(\beta + \alpha\right)\right)}\right), 1.0\right)}{2.0}\]
  7. Applied associate-/r*12.2

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

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

Reproduce

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