code: def _compute_precision_cholesky(covariances, covariance_type):
      estimate_precision_error_message = (
          "Fitting the mixture model failed because some components have "
          "ill-defined empirical covariance (for instance caused by singleton "
          "or collapsed samples). Try to decrease the number of components, "
          "or increase reg_covar."
      )
  
      if covariance_type == "full":
          n_components, n_features, _ = covariances.shape
          precisions_chol = torch.empty(
              (n_components, n_features, n_features)
          )
          for k, covariance in enumerate(covariances):
              try:
                  cov_chol = torch.linalg.cholesky(
                      torch.FloatTensor(covariance), upper=False
                  )
              except torch.linalg.LinAlgError:
                  raise ValueError(estimate_precision_error_message)
              precisions_chol[k] = torch.linalg.solve_triangular(
                  cov_chol, torch.eye(n_features), upper=False
              ).T
          return precisions_chol
      else:
          raise NotImplementedError(
              "Hummingbird does not currently support {} covariance type for BayesianGaussianMixture. The supported covariance type is full.".format(
                  covariance_type
              )
          )
  
file_path: hummingbird/hummingbird/ml/operator_converters/_mixture_implementations.py
imports: import torch
  import torch.nn
  from ._physical_operator import PhysicalOperator
label_desc: Use image node_id 3 for calling a global function with example usage: _compute_precision_cholesky(covariances, covariance_type) and returns: precisions_chol