code: def canonicalize(self, modelparams):
          
          modelparams = np.apply_along_axis(self.trunc_neg_eigs, 1, modelparams)
          # Renormalizes particles if allow_subnormalized=False.
          if not self._allow_subnormalied:
              modelparams = self.renormalize(modelparams)
  
          return modelparams
docs: Truncates negative eigenvalues and from each
          state represented by a tensor of model parameter
          vectors, and renormalizes as appropriate.
  
          :param np.ndarray modelparams: Array of shape
              ``(n_states, dim**2)`` containing model parameter
              representations of each of ``n_states`` different
              states.
          :return: The same model parameter tensor with all
              states truncated to be positive operators. If
              :attr:`~TomographyModel.allow_subnormalized` is
              `False`, all states are also renormalized to trace
              one.