\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{\frac{\left(\left(\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2} \cdot \frac{\alpha + \beta}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}\right) \cdot \left(\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2} \cdot \frac{\alpha + \beta}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}\right)\right) \cdot \left(\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2} \cdot \frac{\alpha + \beta}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}\right) + {1}^{3}}{\mathsf{fma}\left(\frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2} \cdot \frac{\alpha + \beta}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}, \frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2} \cdot \frac{\alpha + \beta}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}, 1 \cdot \left(1 - \frac{\beta - \alpha}{\mathsf{fma}\left(2, i, \alpha + \beta\right) + 2} \cdot \frac{\alpha + \beta}{\mathsf{fma}\left(2, i, \alpha + \beta\right)}\right)\right)}}{2}double f(double alpha, double beta, double i) {
double r93477 = alpha;
double r93478 = beta;
double r93479 = r93477 + r93478;
double r93480 = r93478 - r93477;
double r93481 = r93479 * r93480;
double r93482 = 2.0;
double r93483 = i;
double r93484 = r93482 * r93483;
double r93485 = r93479 + r93484;
double r93486 = r93481 / r93485;
double r93487 = r93485 + r93482;
double r93488 = r93486 / r93487;
double r93489 = 1.0;
double r93490 = r93488 + r93489;
double r93491 = r93490 / r93482;
return r93491;
}
double f(double alpha, double beta, double i) {
double r93492 = beta;
double r93493 = alpha;
double r93494 = r93492 - r93493;
double r93495 = 2.0;
double r93496 = i;
double r93497 = r93493 + r93492;
double r93498 = fma(r93495, r93496, r93497);
double r93499 = r93498 + r93495;
double r93500 = r93494 / r93499;
double r93501 = r93497 / r93498;
double r93502 = r93500 * r93501;
double r93503 = r93502 * r93502;
double r93504 = r93503 * r93502;
double r93505 = 1.0;
double r93506 = 3.0;
double r93507 = pow(r93505, r93506);
double r93508 = r93504 + r93507;
double r93509 = r93505 - r93502;
double r93510 = r93505 * r93509;
double r93511 = fma(r93502, r93502, r93510);
double r93512 = r93508 / r93511;
double r93513 = r93512 / r93495;
return r93513;
}



Bits error versus alpha



Bits error versus beta



Bits error versus i
Initial program 23.7
Simplified11.9
rmApplied fma-udef11.9
rmApplied flip3-+11.9
Simplified11.9
rmApplied add-cbrt-cube11.9
Applied rem-cube-cbrt11.9
Final simplification11.9
herbie shell --seed 2019209 +o rules:numerics
(FPCore (alpha beta i)
:name "Octave 3.8, jcobi/2"
:precision binary64
:pre (and (> alpha -1) (> beta -1) (> i 0.0))
(/ (+ (/ (/ (* (+ alpha beta) (- beta alpha)) (+ (+ alpha beta) (* 2 i))) (+ (+ (+ alpha beta) (* 2 i)) 2)) 1) 2))