docs: def _get_stddevs(self, rup, arias, stddev_types, sites):
          """
          Return standard deviations as defined in table 1, p. 200.
          """
          stddevs = []
          # Magnitude dependent inter-event term (Eq. 13)
          if rup.mag < 4.7:
              tau = 0.611
          elif rup.mag > 7.6:
              tau = 0.475
          else:
              tau = 0.611 - 0.047 * (rup.mag - 4.7)
  
          # Retrieve site-class dependent sigma
          sigma1, sigma2 = self._get_intra_event_sigmas(sites)
          sigma = np.copy(sigma1)
          # Implements the nonlinear intra-event sigma (Eq. 14)
          idx = arias >= 0.125
          sigma[idx] = sigma2[idx]
          idx = np.logical_and(arias > 0.013, arias < 0.125)
          sigma[idx] = sigma1[idx] - 0.106 * (np.log(arias[idx]) -
                                              np.log(0.0132))
  
          sigma_total = np.sqrt(tau ** 2. + sigma ** 2.)
  
          for stddev_type in stddev_types:
              assert stddev_type in self.DEFINED_FOR_STANDARD_DEVIATION_TYPES
              if stddev_type == const.StdDev.TOTAL:
                  stddevs.append(sigma_total)
              elif stddev_type == const.StdDev.INTRA_EVENT:
                  stddevs.append(sigma)
              elif stddev_type == const.StdDev.INTER_EVENT:
                  stddevs.append(tau * np.ones_like(sites.vs30))
          return stddevs