'Add Covariance taking into account number of degrees of freedom.'

def __add__(self, cov):

    _check_covs_algebra(self, cov)
    this_cov = cov.copy()
    this_cov['data'] = (((this_cov['data'] * this_cov['nfree']) + (self['data'] * self['nfree'])) / (self['nfree'] + this_cov['nfree']))
    this_cov['nfree'] += self['nfree']
    this_cov['bads'] = list(set(this_cov['bads']).union(self['bads']))
    return this_cov
