\frac{\frac{\left(i \cdot \left(\left(\alpha + \beta\right) + i\right)\right) \cdot \left(\beta \cdot \alpha + i \cdot \left(\left(\alpha + \beta\right) + i\right)\right)}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right)}}{\left(\left(\alpha + \beta\right) + 2 \cdot i\right) \cdot \left(\left(\alpha + \beta\right) + 2 \cdot i\right) - 1.0}\left(\sqrt{\frac{\frac{\beta \cdot \alpha + \left(\left(\alpha + \beta\right) + i\right) \cdot i}{\left(\alpha + \beta\right) + i \cdot 2}}{\left(\left(\alpha + \beta\right) + i \cdot 2\right) - \sqrt{1.0}}} \cdot \sqrt{\frac{\frac{\left(\left(\alpha + \beta\right) + i\right) \cdot i}{\left(\alpha + \beta\right) + i \cdot 2}}{\left(\left(\alpha + \beta\right) + i \cdot 2\right) + \sqrt{1.0}}}\right) \cdot \left(\sqrt{\frac{\frac{\beta \cdot \alpha + \left(\left(\alpha + \beta\right) + i\right) \cdot i}{\left(\alpha + \beta\right) + i \cdot 2}}{\left(\left(\alpha + \beta\right) + i \cdot 2\right) - \sqrt{1.0}}} \cdot \sqrt{\frac{\frac{\left(\left(\alpha + \beta\right) + i\right) \cdot i}{\left(\alpha + \beta\right) + i \cdot 2}}{\left(\left(\alpha + \beta\right) + i \cdot 2\right) + \sqrt{1.0}}}\right)double f(double alpha, double beta, double i) {
double r4117123 = i;
double r4117124 = alpha;
double r4117125 = beta;
double r4117126 = r4117124 + r4117125;
double r4117127 = r4117126 + r4117123;
double r4117128 = r4117123 * r4117127;
double r4117129 = r4117125 * r4117124;
double r4117130 = r4117129 + r4117128;
double r4117131 = r4117128 * r4117130;
double r4117132 = 2.0;
double r4117133 = r4117132 * r4117123;
double r4117134 = r4117126 + r4117133;
double r4117135 = r4117134 * r4117134;
double r4117136 = r4117131 / r4117135;
double r4117137 = 1.0;
double r4117138 = r4117135 - r4117137;
double r4117139 = r4117136 / r4117138;
return r4117139;
}
double f(double alpha, double beta, double i) {
double r4117140 = beta;
double r4117141 = alpha;
double r4117142 = r4117140 * r4117141;
double r4117143 = r4117141 + r4117140;
double r4117144 = i;
double r4117145 = r4117143 + r4117144;
double r4117146 = r4117145 * r4117144;
double r4117147 = r4117142 + r4117146;
double r4117148 = 2.0;
double r4117149 = r4117144 * r4117148;
double r4117150 = r4117143 + r4117149;
double r4117151 = r4117147 / r4117150;
double r4117152 = 1.0;
double r4117153 = sqrt(r4117152);
double r4117154 = r4117150 - r4117153;
double r4117155 = r4117151 / r4117154;
double r4117156 = sqrt(r4117155);
double r4117157 = r4117146 / r4117150;
double r4117158 = r4117150 + r4117153;
double r4117159 = r4117157 / r4117158;
double r4117160 = sqrt(r4117159);
double r4117161 = r4117156 * r4117160;
double r4117162 = r4117161 * r4117161;
return r4117162;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Results
Initial program 52.5
rmApplied add-sqr-sqrt52.5
Applied difference-of-squares52.5
Applied times-frac38.2
Applied times-frac36.3
rmApplied add-sqr-sqrt36.4
Applied add-sqr-sqrt36.4
Applied unswap-sqr36.4
Final simplification36.4
herbie shell --seed 2019151 +o rules:numerics
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/4"
:pre (and (> alpha -1) (> beta -1) (> i 1))
(/ (/ (* (* i (+ (+ alpha beta) i)) (+ (* beta alpha) (* i (+ (+ alpha beta) i)))) (* (+ (+ alpha beta) (* 2 i)) (+ (+ alpha beta) (* 2 i)))) (- (* (+ (+ alpha beta) (* 2 i)) (+ (+ alpha beta) (* 2 i))) 1.0)))