\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;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 23.8
Simplified19.4
rmApplied associate-/r*12.2
rmApplied fma-udef12.1
rmApplied div-sub12.1
rmApplied distribute-rgt-in12.1
Applied associate-+l+12.1
Final simplification12.1
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))