using alternative sokalmichener function to avoid zerodivisionerror