\frac{tp \cdot tn - fp \cdot fn}{\sqrt{\left(\left(\left(tp + fp\right) \cdot \left(tp + fn\right)\right) \cdot \left(tn + fp\right)\right) \cdot \left(tn + fn\right)}}\frac{tp \cdot tn - fp \cdot fn}{\sqrt{\left(\left(\left(tp + fp\right) \cdot \left(tp + fn\right)\right) \cdot \left(tn + fp\right)\right) \cdot \left(tn + fn\right)}}double code(double tp, double tn, double fp, double fn) {
return ((double) (((double) (((double) (tp * tn)) - ((double) (fp * fn)))) / ((double) sqrt(((double) (((double) (((double) (((double) (tp + fp)) * ((double) (tp + fn)))) * ((double) (tn + fp)))) * ((double) (tn + fn))))))));
}
double code(double tp, double tn, double fp, double fn) {
return ((double) (((double) (((double) (tp * tn)) - ((double) (fp * fn)))) / ((double) sqrt(((double) (((double) (((double) (((double) (tp + fp)) * ((double) (tp + fn)))) * ((double) (tn + fp)))) * ((double) (tn + fn))))))));
}



Bits error versus tp



Bits error versus tn



Bits error versus fp



Bits error versus fn
Results
Initial program 46.0
Final simplification46.0
herbie shell --seed 2020152
(FPCore (tp tn fp fn)
:name "(/ (- (* tp tn) (* fp fn)) (sqrt (* (* (* (+ tp fp) (+ tp fn)) (+ tn fp)) (+ tn fn))))"
:precision binary64
(/ (- (* tp tn) (* fp fn)) (sqrt (* (* (* (+ tp fp) (+ tp fn)) (+ tn fp)) (+ tn fn)))))