Average Error: 4.2 → 4.2
Time: 2.5m
Precision: 64
\[\alpha \gt -1 \land \beta \gt -1\]
\[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
\[\frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)} \cdot \frac{1}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}\]
\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}
\frac{\frac{1 + \mathsf{fma}\left(\beta, \alpha, \beta + \alpha\right)}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)} \cdot \frac{1}{\mathsf{fma}\left(2, 1, \beta + \alpha\right)}}{1 + \mathsf{fma}\left(2, 1, \beta + \alpha\right)}
double f(double alpha, double beta) {
        double r413842 = alpha;
        double r413843 = beta;
        double r413844 = r413842 + r413843;
        double r413845 = r413843 * r413842;
        double r413846 = r413844 + r413845;
        double r413847 = 1.0;
        double r413848 = r413846 + r413847;
        double r413849 = 2.0;
        double r413850 = r413849 * r413847;
        double r413851 = r413844 + r413850;
        double r413852 = r413848 / r413851;
        double r413853 = r413852 / r413851;
        double r413854 = r413851 + r413847;
        double r413855 = r413853 / r413854;
        return r413855;
}

double f(double alpha, double beta) {
        double r413856 = 1.0;
        double r413857 = beta;
        double r413858 = alpha;
        double r413859 = r413857 + r413858;
        double r413860 = fma(r413857, r413858, r413859);
        double r413861 = r413856 + r413860;
        double r413862 = 2.0;
        double r413863 = fma(r413862, r413856, r413859);
        double r413864 = r413861 / r413863;
        double r413865 = 1.0;
        double r413866 = r413865 / r413863;
        double r413867 = r413864 * r413866;
        double r413868 = r413856 + r413863;
        double r413869 = r413867 / r413868;
        return r413869;
}

Error

Bits error versus alpha

Bits error versus beta

Derivation

  1. Initial program 4.2

    \[\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1}\]
  2. Simplified4.2

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

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

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

Reproduce

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