docs: def get_sigma_mu_adjustment(self, C, imt, rup, dists):
          """
          Returns the sigma mu adjustment factor
          """
          if imt.name in "PGA PGV":
              # PGA and PGV are 2D arrays of dimension [nmags, ndists]
              sigma_mu = getattr(self, imt.name.lower())
              if rup.mag <= self.mags[0]:
                  sigma_mu_m = sigma_mu[0, :]
              elif rup.mag >= self.mags[-1]:
                  sigma_mu_m = sigma_mu[-1, :]
              else:
                  intpl1 = interp1d(self.mags, sigma_mu, axis=0)
                  sigma_mu_m = intpl1(rup.mag)
              # Linear interpolation with distance
              intpl2 = interp1d(self.dists, sigma_mu_m, bounds_error=False,
                                fill_value=(sigma_mu_m[0], sigma_mu_m[-1]))
              return intpl2(dists.rjb)
          # In the case of SA the array is of dimension [nmags, ndists, nperiods]
          # Get values for given magnitude
          if rup.mag <= self.mags[0]:
              sigma_mu_m = self.s_a[0, :, :]
          elif rup.mag >= self.mags[-1]:
              sigma_mu_m = self.s_a[-1, :, :]
          else:
              intpl1 = interp1d(self.mags, self.s_a, axis=0)
              sigma_mu_m = intpl1(rup.mag)
          # Get values for period - N.B. ln T, linear sigma mu interpolation
          if imt.period <= self.periods[0]:
              sigma_mu_t = sigma_mu_m[:, 0]
          elif imt.period >= self.periods[-1]:
              sigma_mu_t = sigma_mu_m[:, -1]
          else:
              intpl2 = interp1d(np.log(self.periods), sigma_mu_m, axis=1)
              sigma_mu_t = intpl2(np.log(imt.period))
          intpl3 = interp1d(self.dists, sigma_mu_t, bounds_error=False,
                            fill_value=(sigma_mu_t[0], sigma_mu_t[-1]))
          return intpl3(dists.rjb)