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



Bits error versus alphaD



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