code: def c_step(
      X,
      n_support,
      remaining_iterations=30,
      initial_estimates=None,
      verbose=False,
      cov_computation_method=empirical_covariance,
      random_state=None,
  ):
      """C_step procedure described in [Rouseeuw1984]_ aiming at computing MCD.
  
      Parameters
      ----------
      X : array-like, shape (n_samples, n_features)
          Data set in which we look for the n_support observations whose
          scatter matrix has minimum determinant.
  
      n_support : int, > n_samples / 2
          Number of observations to compute the robust estimates of location
          and covariance from.
  
      remaining_iterations : int, optional
          Number of iterations to perform.
          According to [Rouseeuw1999]_, two iterations are sufficient to get
          close to the minimum, and we never need more than 30 to reach
          convergence.
  
      initial_estimates : 2-tuple, optional
          Initial estimates of location and shape from which to run the c_step
          procedure:
          - initial_estimates[0]: an initial location estimate
          - initial_estimates[1]: an initial covariance estimate
  
      verbose : boolean, optional
          Verbose mode.
  
      random_state : integer or numpy.RandomState, optional
          The random generator used. If an integer is given, it fixes the
          seed. Defaults to the global numpy random number generator.
  
      cov_computation_method : callable, default empirical_covariance
          The function which will be used to compute the covariance.
          Must return shape (n_features, n_features)
  
      Returns
      -------
      location : array-like, shape (n_features,)
          Robust location estimates.
  
      covariance : array-like, shape (n_features, n_features)
          Robust covariance estimates.
  
      support : array-like, shape (n_samples,)
          A mask for the `n_support` observations whose scatter matrix has
          minimum determinant.
  
      References
      ----------
      .. [Rouseeuw1999] A Fast Algorithm for the Minimum Covariance Determinant
          Estimator, 1999, American Statistical Association and the American
          Society for Quality, TECHNOMETRICS
  
      """
      X = np.asarray(X)
      random_state = check_random_state(random_state)
      return _c_step(
          X,
          n_support,
          remaining_iterations=remaining_iterations,
          initial_estimates=initial_estimates,
          verbose=verbose,
          cov_computation_method=cov_computation_method,
          random_state=random_state,
      )
  
file_path: catboost/contrib/python/scikit-learn/py2/sklearn/covariance/robust_covariance.py
imports: import warnings
  import numbers
  import numpy
  from scipy import linalg
  from scipy.stats import chi2
  from .None import empirical_covariance, EmpiricalCovariance
  from ..utils.extmath import fast_logdet, pinvh
  from ..utils import check_random_state, check_array
label_desc: Use image node_id 1 for calling a global function with example usage: c_step(X, n_support, remaining_iterations, initial_estimates, verbose, cov_computation_method, random_state) and returns: _c_step