code: def _covar_mstep_full(
      gmm, X, responsibilities, weighted_X_sum, norm, min_covar
  ):
      """Perform the covariance M step for full cases."""
      # Eq. 12 from K. Murphy, "Fitting a Conditional Linear Gaussian
      # Distribution"
      n_features = X.shape[1]
      cv = np.empty((gmm.n_components, n_features, n_features))
      for c in range(gmm.n_components):
          post = responsibilities[:, c]
          mu = gmm.means_[c]
          diff = X - mu
          with np.errstate(under="ignore"):
              # Underflow Errors in doing post * X.T are  not important
              avg_cv = np.dot(post * diff.T, diff) / (
                  post.sum() + 10 * EPS
              )
          cv[c] = avg_cv + min_covar * np.eye(n_features)
      return cv
  
imports: import numpy
  from scipy import linalg
  from time import time
  from ..base import BaseEstimator
  from ..utils import check_random_state, check_array, deprecated
  from ..utils.extmath import logsumexp
  from ..utils.validation import check_is_fitted
  from ..None import cluster
  from sklearn.externals.six.moves import zip
label_desc: Use image node_id 11 for calling a global function with example usage: _covar_mstep_full(gmm, X, responsibilities, weighted_X_sum, norm, min_covar) and returns: cv