\frac{\frac{\frac{\left(\left(\alpha + \beta\right) + \beta \cdot \alpha\right) + 1.0}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\alpha + \beta\right) + 2 \cdot 1}}{\left(\left(\alpha + \beta\right) + 2 \cdot 1\right) + 1.0}\frac{\frac{\frac{1.0 + \left(\beta + \mathsf{fma}\left(\beta, \alpha, \alpha\right)\right)}{\left(\beta + \alpha\right) + 2}}{\left(\beta + \alpha\right) + 2}}{1.0 + \left(\left(\beta + \alpha\right) + 2\right)}double f(double alpha, double beta) {
double r3164723 = alpha;
double r3164724 = beta;
double r3164725 = r3164723 + r3164724;
double r3164726 = r3164724 * r3164723;
double r3164727 = r3164725 + r3164726;
double r3164728 = 1.0;
double r3164729 = r3164727 + r3164728;
double r3164730 = 2.0;
double r3164731 = 1.0;
double r3164732 = r3164730 * r3164731;
double r3164733 = r3164725 + r3164732;
double r3164734 = r3164729 / r3164733;
double r3164735 = r3164734 / r3164733;
double r3164736 = r3164733 + r3164728;
double r3164737 = r3164735 / r3164736;
return r3164737;
}
double f(double alpha, double beta) {
double r3164738 = 1.0;
double r3164739 = beta;
double r3164740 = alpha;
double r3164741 = fma(r3164739, r3164740, r3164740);
double r3164742 = r3164739 + r3164741;
double r3164743 = r3164738 + r3164742;
double r3164744 = r3164739 + r3164740;
double r3164745 = 2.0;
double r3164746 = r3164744 + r3164745;
double r3164747 = r3164743 / r3164746;
double r3164748 = r3164747 / r3164746;
double r3164749 = r3164738 + r3164746;
double r3164750 = r3164748 / r3164749;
return r3164750;
}



Bits error versus alpha



Bits error versus beta
Initial program 3.3
Simplified3.3
Final simplification3.3
herbie shell --seed 2019133 +o rules:numerics
(FPCore (alpha beta)
:name "Octave 3.8, jcobi/3"
:pre (and (> alpha -1) (> beta -1))
(/ (/ (/ (+ (+ (+ alpha beta) (* beta alpha)) 1.0) (+ (+ alpha beta) (* 2 1))) (+ (+ alpha beta) (* 2 1))) (+ (+ (+ alpha beta) (* 2 1)) 1.0)))