class_docstr: The class implements Infinite Gaussian Mixture model
  or Dirichlet Process Mixture model.
  This is simply a generalization of Bayesian Gaussian Mixture Models
  with an unknown number of classes.
class_docstr_tok: ["The","class","implements","Infinite","Gaussian","Mixture","model","or","Dirichlet","Process","Mixture","model",".","This","is","simply","a","generalization","of","Bayesian","Gaussian","Mixture","Models","with","an","unknown","number","of","classes","."]
docstr:  This is a step in the sampling procedure
  that uses internal corss_validation
  
  Parameters
  ----------
  x: array of shape(n_samples, dim),
     the input data
  z: array of shape(n_samples),
     the associated membership variables
  plike: array of shape(n_samples),
         the likelihood under the prior
  
  Returns
  -------
  like: array od shape(n_samples),
        the likelihood of the data
docstr_tok: ["This","is","a","step","in","the","sampling","procedure","that","uses","internal","corss_validation","Parameters","--","--","--","--","--","x",":","array","of","shape","(","n_samples",",","dim",")",",","the","input","data","z",":","array","of","shape","(","n_samples",")",",","the","associated","membership","variables","plike",":","array","of","shape","(","n_samples",")",",","the","likelihood","under","the","prior","Returns","--","--","--","-","like",":","array","od","shape","(","n_samples",")",",","the","likelihood","of","the","data"]
code: def simple_update(self, x, z, plike):
      """
       This is a step in the sampling procedure
      that uses internal corss_validation
  
      Parameters
      ----------
      x: array of shape(n_samples, dim),
         the input data
      z: array of shape(n_samples),
         the associated membership variables
      plike: array of shape(n_samples),
             the likelihood under the prior
  
      Returns
      -------
      like: array od shape(n_samples),
            the likelihood of the data
      """
      like = self.likelihood(x, plike)
      # standard + likelihood under the prior
      # like has shape (x.shape[0], self.k+1)
  
      z = self.sample_indicator(like)
      # almost standard, but many new components can be created
  
      self.reduce(z)
      self.update(x, z)
      return like.sum(1)
  
imports: import math
  import numpy
  from scipy.special import gammaln
  from .bgmm import BGMM, detsh
label_desc: Use image node_id 5 for calling the IMM obj's underlying member method code with example usage: obj.simple_update(x, z, plike) and returns: like