docs: def get_mean_and_stddevs(self, sites, rup, dists, imt, stddev_types):
          """
          See :meth:`superclass method
          <.base.GroundShakingIntensityModel.get_mean_and_stddevs>`
          for spec of input and result values.
          """
          # extracting dictionary of coefficients
          C = self.COEFFS[imt]
  
          mag = self._convert_magnitude(rup.mag)
  
          # computing the magnitude term. Equation 19, page 2291
          f1 = self._compute_magnitude_scaling_term(C, mag)
  
          # computing the geometrical spreading term. Equation 20, page 2291
          f2 = self._compute_geometrical_spreading_term(C, dists.rrup)
  
          # computing the anelastic attenuation term. Equation 21, page 2291
          f3 = self._compute_anelastic_attenuation_term(C, dists.rrup, mag)
  
          # computing the mean ln(IMT) using equation 18 at page 2290
          mean = f1 + f2 + f3
  
          mean = self._clip_mean(imt, mean)
  
          # computing the total standard deviation
          stddevs = self._get_stddevs(C, stddev_types, num_sites=len(dists.rrup),
                                      mag=mag)
  
          return mean, stddevs