code: def ecdf_terminate_equals_inplace(
      matrix: np.ndarray, probabilities: np.ndarray
  ):
      """
      This is a helper function for computing the ecdf of an array. It has been outsourced from the original
      function in order to be able to use the njit compiler of numpy for increased speeds, as it unfortunately
      needs a loop over all rows and columns of a matrix. It acts in place on the probabilities' matrix.
  
      Parameters
      ----------
      matrix : a feature matrix where the rows are samples and each column is a feature !(expected to be sorted)!
  
      probabilities : a probability matrix that will be used building the ecdf. It has values between 0 and 1 and
                      is also sorted.
  
      Returns
      -------
  
      """
      for cx in range(probabilities.shape[1]):
          for rx in range(probabilities.shape[0] - 2, -1, -1):
              if matrix[rx, cx] == matrix[rx + 1, cx]:
                  probabilities[rx, cx] = probabilities[rx + 1, cx]
  
file_path: pyod/pyod/utils/stat_models.py
imports: from __future__ import division
  from __future__ import print_function
  import numpy
  from numba import njit
  from scipy.stats import pearsonr
  from sklearn.utils.validation import check_array
  from sklearn.utils.validation import check_consistent_length
label_desc: Use image node_id 6 for calling a global function with example usage: ecdf_terminate_equals_inplace(matrix, probabilities) without return types