code: def get_mean_and_stddevs(self, sites, rup, dists, imt, stddev_types):
          
          C = self.COEFFS[imt]
  
          # clip rhypo at 10 (this is the minimum distance used in
          # deriving the equation), see page 22, this avoids singularity
          # in mean value equation
          rhypo = dists.rhypo.copy()
          rhypo[rhypo < 10] = 10
  
          # convert magnitude from Mblg to Mw
          mag = rup.mag * 0.98 - 0.39 if rup.mag <= 5.5 else \
                2.715 - 0.277 * rup.mag + 0.127 * rup.mag * rup.mag
  
          # functional form as explained in 'Youngs_fit_to_AB95lookup.doc'
          f1 = np.minimum(np.log(rhypo), np.log(70.))
          f2 = np.maximum(np.log(rhypo / 130.), 0)
          mean = (
              C['c1'] + C['c2'] * mag + C['c3'] * mag ** 2 +
              (C['c4'] + C['c5'] * mag) * f1 +
              (C['c6'] + C['c7'] * mag) * f2 +
              C['c8'] * rhypo
          )
  
          stddevs = self._get_stddevs(stddev_types,  dists.rhypo.shape[0])
  
          return mean, stddevs
docs: See :meth:`superclass method
          <.base.GroundShakingIntensityModel.get_mean_and_stddevs>`
          for spec of input and result values.