\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(\frac{\alpha + \beta}{\sqrt{\sqrt[3]{2.0 + \mathsf{fma}\left(2, i, \alpha + \beta\right)} \cdot \sqrt[3]{2.0 + \mathsf{fma}\left(2, i, \alpha + \beta\right)}}} \cdot \frac{\frac{1}{\sqrt{2.0 + \mathsf{fma}\left(2, i, \alpha + \beta\right)}}}{\sqrt{\sqrt[3]{2.0 + \mathsf{fma}\left(2, i, \alpha + \beta\right)}}}, \frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}, 1.0\right)}{2.0}double f(double alpha, double beta, double i) {
double r3808812 = alpha;
double r3808813 = beta;
double r3808814 = r3808812 + r3808813;
double r3808815 = r3808813 - r3808812;
double r3808816 = r3808814 * r3808815;
double r3808817 = 2.0;
double r3808818 = i;
double r3808819 = r3808817 * r3808818;
double r3808820 = r3808814 + r3808819;
double r3808821 = r3808816 / r3808820;
double r3808822 = 2.0;
double r3808823 = r3808820 + r3808822;
double r3808824 = r3808821 / r3808823;
double r3808825 = 1.0;
double r3808826 = r3808824 + r3808825;
double r3808827 = r3808826 / r3808822;
return r3808827;
}
double f(double alpha, double beta, double i) {
double r3808828 = alpha;
double r3808829 = beta;
double r3808830 = r3808828 + r3808829;
double r3808831 = 2.0;
double r3808832 = 2.0;
double r3808833 = i;
double r3808834 = fma(r3808832, r3808833, r3808830);
double r3808835 = r3808831 + r3808834;
double r3808836 = cbrt(r3808835);
double r3808837 = r3808836 * r3808836;
double r3808838 = sqrt(r3808837);
double r3808839 = r3808830 / r3808838;
double r3808840 = 1.0;
double r3808841 = sqrt(r3808835);
double r3808842 = r3808840 / r3808841;
double r3808843 = sqrt(r3808836);
double r3808844 = r3808842 / r3808843;
double r3808845 = r3808839 * r3808844;
double r3808846 = r3808829 - r3808828;
double r3808847 = r3808846 / r3808834;
double r3808848 = 1.0;
double r3808849 = fma(r3808845, r3808847, r3808848);
double r3808850 = r3808849 / r3808831;
return r3808850;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 23.8
Simplified12.6
rmApplied add-sqr-sqrt12.7
Applied associate-/r*12.7
rmApplied add-cube-cbrt12.8
Applied sqrt-prod12.8
Applied div-inv12.8
Applied times-frac12.8
Final simplification12.8
herbie shell --seed 2019134 +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))