class_docstr: Gaussian mixture model (GMM).
  
  Parameters
  ----------
  space : Manifold
      Equipped manifold.
  means : array-like, shape=[n_gaussians, dim]
      Means of each component of the GMM.
  variances : array-like, shape=[n_gaussians,]
      Variances of each component of the GMM.
  
  Attributes
  ----------
  normalization_factor_var : array-like, shape=[n_variances,]
      Array of computed normalization factor.
  variances_range : array-like, shape=[n_variances,]
      Array of standard deviations.
  phi_inv_var : array-like, shape=[n_variances,]
      Array of the computed inverse of a function phi
      whose expression is closed-form
      :math:`\sigma\mapsto \sigma^3 \times \frac{d}
      {\mathstrut d\sigma}\log \zeta_m(\sigma)`
      where :math:`\sigma` denotes the variance
      and :math:`\zeta` the normalization coefficient
      and :math:`m` the dimension.
class_docstr_tok: ["Gaussian","mixture","model","(","GMM",")",".","Parameters","--","--","--","--","--","space",":","Manifold","Equipped","manifold",".","means",":","array-like",",","shape=","[","n_gaussians",",","dim","]","Means","of","each","component","of","the","GMM",".","variances",":","array-like",",","shape=","[","n_gaussians",",","]","Variances","of","each","component","of","the","GMM",".","Attributes","--","--","--","--","--","normalization_factor_var",":","array-like",",","shape=","[","n_variances",",","]","Array","of","computed","normalization","factor",".","variances_range",":","array-like",",","shape=","[","n_variances",",","]","Array","of","standard","deviations",".","phi_inv_var",":","array-like",",","shape=","[","n_variances",",","]","Array","of","the","computed","inverse","of","a","function","phi","whose","expression","is","closed-form",":","math",":","`","\\sigma\\mapsto","\\sigma^3","\\times","\\frac","{","d","}","{","\\mathstrut","d\\sigma","}","\\log","\\zeta_m","(","\\sigma",")","`","where",":","math",":","`","\\sigma","`","denotes","the","variance","and",":","math",":","`","\\zeta","`","the","normalization","coefficient","and",":","math",":","`","m","`","the","dimension","."]
docstr: Find the normalization factor given some variances.
  
  Returns
  -------
  norm_factor : array-like, shape=[n_gaussians,]
      Array of normalization factors for the given
      variances.
docstr_tok: ["Find","the","normalization","factor","given","some","variances",".","Returns","--","--","--","-","norm_factor",":","array-like",",","shape=","[","n_gaussians",",","]","Array","of","normalization","factors","for","the","given","variances","."]
code: def _compute_normalization_factor(self):
      """Find the normalization factor given some variances.
  
      Returns
      -------
      norm_factor : array-like, shape=[n_gaussians,]
          Array of normalization factors for the given
          variances.
      """
      n_gaussians, precision = (
          self.variances.shape[0],
          self.variances_range.shape[0],
      )
  
      ref = gs.expand_dims(self.variances_range, 0)
      ref = gs.repeat(ref, n_gaussians, axis=0)
      val = gs.expand_dims(self.variances, 1)
      val = gs.repeat(val, precision, axis=1)
  
      difference = gs.abs(ref - val)
  
      index = gs.argmin(difference, axis=-1)
      norm_factor = self.normalization_factor_var[index]
  
      return norm_factor
  
imports: import logging
  from sklearn.base import BaseEstimator, ClusterMixin
  import geomstats.backend
  from geomstats.learning._template import TransformerMixin
  from geomstats.learning.frechet_mean import FrechetMean, variance
  from geomstats.learning.kmeans import RiemannianKMeans
label_desc: Use image node_id 4 for calling the GaussianMixtureModel obj's underlying member method code with example usage: obj._compute_normalization_factor() and returns: norm_factor