code: def _get_stddevs(self, C, mag, stddev_types, sites):
          
          num_sites = sites.vs30.size
          sigma_intra = np.zeros(num_sites)
  
          # interevent stddev
          tau = sigma_intra + C['tau']
  
          # intraevent std (equations 8a-8c page 29)
          if mag < 5.0:
              sigma_intra += C['sigmaM6'] - C['sigSlope']
          elif 5.0 <= mag < 7.0:
              sigma_intra += C['sigmaM6'] + C['sigSlope'] * (mag - 6)
          else:
              sigma_intra += C['sigmaM6'] + C['sigSlope']
  
          std = []
  
          for stddev_type in stddev_types:
              if stddev_type == const.StdDev.TOTAL:
                  # equation 9 page 29
                  std += [np.sqrt(sigma_intra**2 + tau**2)]
              elif stddev_type == const.StdDev.INTRA_EVENT:
                  std.append(sigma_intra)
              elif stddev_type == const.StdDev.INTER_EVENT:
                  std.append(tau)
  
          return std
docs: Return standard deviation as defined on page 29 in
          equation 8a,b,c and 9.