Average Error: 23.5 → 12.3
Time: 40.6s
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{\frac{e^{\log \left(\log \left(e^{\mathsf{fma}\left(\frac{\alpha + \beta}{\left(\mathsf{fma}\left(i, 2, \alpha\right) + \beta\right) + 2.0} \cdot \frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha\right) + \beta}, \left(\frac{\alpha + \beta}{\left(\mathsf{fma}\left(i, 2, \alpha\right) + \beta\right) + 2.0} \cdot \frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha\right) + \beta}\right) \cdot \left(\frac{\alpha + \beta}{\left(\mathsf{fma}\left(i, 2, \alpha\right) + \beta\right) + 2.0} \cdot \frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha\right) + \beta}\right), \left(1.0 \cdot 1.0\right) \cdot 1.0\right)}\right)\right)}}{\mathsf{fma}\left(1.0, 1.0, \left(\frac{\alpha + \beta}{\left(\mathsf{fma}\left(i, 2, \alpha\right) + \beta\right) + 2.0} \cdot \frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha\right) + \beta}\right) \cdot \left(\frac{\alpha + \beta}{\left(\mathsf{fma}\left(i, 2, \alpha\right) + \beta\right) + 2.0} \cdot \frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha\right) + \beta} - 1.0\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{\frac{e^{\log \left(\log \left(e^{\mathsf{fma}\left(\frac{\alpha + \beta}{\left(\mathsf{fma}\left(i, 2, \alpha\right) + \beta\right) + 2.0} \cdot \frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha\right) + \beta}, \left(\frac{\alpha + \beta}{\left(\mathsf{fma}\left(i, 2, \alpha\right) + \beta\right) + 2.0} \cdot \frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha\right) + \beta}\right) \cdot \left(\frac{\alpha + \beta}{\left(\mathsf{fma}\left(i, 2, \alpha\right) + \beta\right) + 2.0} \cdot \frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha\right) + \beta}\right), \left(1.0 \cdot 1.0\right) \cdot 1.0\right)}\right)\right)}}{\mathsf{fma}\left(1.0, 1.0, \left(\frac{\alpha + \beta}{\left(\mathsf{fma}\left(i, 2, \alpha\right) + \beta\right) + 2.0} \cdot \frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha\right) + \beta}\right) \cdot \left(\frac{\alpha + \beta}{\left(\mathsf{fma}\left(i, 2, \alpha\right) + \beta\right) + 2.0} \cdot \frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha\right) + \beta} - 1.0\right)\right)}}{2.0}
double f(double alpha, double beta, double i) {
        double r3005929 = alpha;
        double r3005930 = beta;
        double r3005931 = r3005929 + r3005930;
        double r3005932 = r3005930 - r3005929;
        double r3005933 = r3005931 * r3005932;
        double r3005934 = 2.0;
        double r3005935 = i;
        double r3005936 = r3005934 * r3005935;
        double r3005937 = r3005931 + r3005936;
        double r3005938 = r3005933 / r3005937;
        double r3005939 = 2.0;
        double r3005940 = r3005937 + r3005939;
        double r3005941 = r3005938 / r3005940;
        double r3005942 = 1.0;
        double r3005943 = r3005941 + r3005942;
        double r3005944 = r3005943 / r3005939;
        return r3005944;
}

double f(double alpha, double beta, double i) {
        double r3005945 = alpha;
        double r3005946 = beta;
        double r3005947 = r3005945 + r3005946;
        double r3005948 = i;
        double r3005949 = 2.0;
        double r3005950 = fma(r3005948, r3005949, r3005945);
        double r3005951 = r3005950 + r3005946;
        double r3005952 = 2.0;
        double r3005953 = r3005951 + r3005952;
        double r3005954 = r3005947 / r3005953;
        double r3005955 = r3005946 - r3005945;
        double r3005956 = r3005955 / r3005951;
        double r3005957 = r3005954 * r3005956;
        double r3005958 = r3005957 * r3005957;
        double r3005959 = 1.0;
        double r3005960 = r3005959 * r3005959;
        double r3005961 = r3005960 * r3005959;
        double r3005962 = fma(r3005957, r3005958, r3005961);
        double r3005963 = exp(r3005962);
        double r3005964 = log(r3005963);
        double r3005965 = log(r3005964);
        double r3005966 = exp(r3005965);
        double r3005967 = r3005957 - r3005959;
        double r3005968 = r3005957 * r3005967;
        double r3005969 = fma(r3005959, r3005959, r3005968);
        double r3005970 = r3005966 / r3005969;
        double r3005971 = r3005970 / r3005952;
        return r3005971;
}

Error

Bits error versus alpha

Bits error versus beta

Bits error versus i

Derivation

  1. Initial program 23.5

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

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

    \[\leadsto \frac{\color{blue}{\frac{{\left(\frac{\left(\beta + \alpha\right) \cdot \left(\beta - \alpha\right)}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot \mathsf{fma}\left(2, i, \beta + \alpha\right)\right)}\right)}^{3} + {1.0}^{3}}{\frac{\left(\beta + \alpha\right) \cdot \left(\beta - \alpha\right)}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot \mathsf{fma}\left(2, i, \beta + \alpha\right)\right)} \cdot \frac{\left(\beta + \alpha\right) \cdot \left(\beta - \alpha\right)}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot \mathsf{fma}\left(2, i, \beta + \alpha\right)\right)} + \left(1.0 \cdot 1.0 - \frac{\left(\beta + \alpha\right) \cdot \left(\beta - \alpha\right)}{\mathsf{fma}\left(2.0, \mathsf{fma}\left(2, i, \beta + \alpha\right), \mathsf{fma}\left(2, i, \beta + \alpha\right) \cdot \mathsf{fma}\left(2, i, \beta + \alpha\right)\right)} \cdot 1.0\right)}}}{2.0}\]
  5. Simplified23.4

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

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

    \[\leadsto \frac{\frac{\color{blue}{\log \left(e^{\mathsf{fma}\left(\frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha\right) + \beta} \cdot \frac{\alpha + \beta}{2.0 + \left(\mathsf{fma}\left(i, 2, \alpha\right) + \beta\right)}, \left(\frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha\right) + \beta} \cdot \frac{\alpha + \beta}{2.0 + \left(\mathsf{fma}\left(i, 2, \alpha\right) + \beta\right)}\right) \cdot \left(\frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha\right) + \beta} \cdot \frac{\alpha + \beta}{2.0 + \left(\mathsf{fma}\left(i, 2, \alpha\right) + \beta\right)}\right), 1.0 \cdot \left(1.0 \cdot 1.0\right)\right)}\right)}}{\mathsf{fma}\left(1.0, 1.0, \left(\frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha\right) + \beta} \cdot \frac{\alpha + \beta}{2.0 + \left(\mathsf{fma}\left(i, 2, \alpha\right) + \beta\right)}\right) \cdot \left(\frac{\beta - \alpha}{\mathsf{fma}\left(i, 2, \alpha\right) + \beta} \cdot \frac{\alpha + \beta}{2.0 + \left(\mathsf{fma}\left(i, 2, \alpha\right) + \beta\right)} - 1.0\right)\right)}}{2.0}\]
  9. Using strategy rm
  10. Applied add-exp-log12.3

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

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

Reproduce

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