code: def estimate_log_prob(X, inv_cov, means):
      xp = cupy.get_array_module(X)
      n_features = X.shape[1]
      log_det = xp.sum(xp.log(inv_cov), axis=1)
      precisions = inv_cov**2
      log_prob = (
          xp.sum((means**2 * precisions), 1)
          - 2 * xp.dot(X, (means * precisions).T)
          + xp.dot(X**2, precisions.T)
      )
      return (
          -0.5 * (n_features * xp.log(2 * np.pi) + log_prob) + log_det
      )
  
file_path: cupy/examples/gmm/gmm.py
imports: import argparse
  import contextlib
  import time
  import matplotlib.pyplot
  import numpy
  from scipy import stats
  import cupy
label_desc: Use image node_id 2 for calling a global function with example usage: estimate_log_prob(X, inv_cov, means) and returns: unknown