when comparing doubles, is it better do do things like 
fabs(wp_percentage_solved - 1.0) < std::numeric_limits<double>::epsilon()