\frac{\left(1 - a\right) - \sqrt{\left(\left(1 - 2 \cdot a\right) + \left(4 \cdot K\right) \cdot a\right) + {a}^{2}}}{2 \cdot \sqrt{\left(\left(1 - 2 \cdot a\right) + \left(4 \cdot K\right) \cdot a\right) + {a}^{2}}}\frac{-1}{2} + \frac{1 - a}{2 \cdot \sqrt{\left(\left(1 - 2 \cdot a\right) + \left(4 \cdot K\right) \cdot a\right) + {a}^{2}}}double code(double a, double K) {
return ((double) (((double) (((double) (1.0 - a)) - ((double) sqrt(((double) (((double) (((double) (1.0 - ((double) (2.0 * a)))) + ((double) (((double) (4.0 * K)) * a)))) + ((double) pow(a, 2.0)))))))) / ((double) (2.0 * ((double) sqrt(((double) (((double) (((double) (1.0 - ((double) (2.0 * a)))) + ((double) (((double) (4.0 * K)) * a)))) + ((double) pow(a, 2.0))))))))));
}
double code(double a, double K) {
return ((double) (((double) (-1.0 / 2.0)) + ((double) (((double) (1.0 - a)) / ((double) (2.0 * ((double) sqrt(((double) (((double) (((double) (1.0 - ((double) (2.0 * a)))) + ((double) (((double) (4.0 * K)) * a)))) + ((double) pow(a, 2.0))))))))))));
}



Bits error versus a



Bits error versus K
Results
Initial program 40.1
Simplified36.4
Final simplification36.4
herbie shell --seed 2020152
(FPCore (a K)
:name "(/ (- (- 1 a) (sqrt (+ (+ (- 1 (* 2 a)) (* (* 4 K) a)) (pow a 2)))) (* 2 (sqrt (+ (+ (- 1 (* 2 a)) (* (* 4 K) a)) (pow a 2)))))"
:precision binary64
(/ (- (- 1.0 a) (sqrt (+ (+ (- 1.0 (* 2.0 a)) (* (* 4.0 K) a)) (pow a 2.0)))) (* 2.0 (sqrt (+ (+ (- 1.0 (* 2.0 a)) (* (* 4.0 K) a)) (pow a 2.0))))))