docs: def get_mean_and_stddevs(self, sctx, rctx, dctx, imt, stddev_types):
          """
          Returns the mean and standard deviations
          """
          # Return Distance Tables
          imls = self._return_tables(rctx.mag, imt, "IMLs")
          # Get distance vector for the given magnitude
          idx = numpy.searchsorted(self.m_w, rctx.mag)
          dists = self.distances[:, 0, idx - 1]
          # Get mean and standard deviations
          mean = self._get_mean(imls, dctx, dists)
          stddevs = self._get_stddevs(dists, rctx.mag, dctx, imt, stddev_types)
          if self.amplification:
              # Apply amplification
              mean_amp, sigma_amp = self.amplification.get_amplification_factors(
                  imt,
                  sctx,
                  rctx,
                  getattr(dctx, self.distance_type),
                  stddev_types)
              mean = numpy.log(mean) + numpy.log(mean_amp)
              for iloc in range(len(stddev_types)):
                  stddevs[iloc] *= sigma_amp[iloc]
              return mean, stddevs
          else:
              return numpy.log(mean), stddevs