docs: def _get_basic_term(self, C, rup, dists):
          """
          Compute and return basic form, see page 1030.
          """
          # Fictitious depth calculation
          if rup.mag > 5.:
              c4m = C['c4']
          elif rup.mag > 4.:
              c4m = C['c4'] - (C['c4']-1.) * (5. - rup.mag)
          else:
              c4m = 1.
          R = np.sqrt(dists.rrup**2. + c4m**2.)
          # basic form
          base_term = C['a1'] * np.ones_like(dists.rrup) + C['a17'] * dists.rrup
          # equation 2 at page 1030
          if rup.mag >= C['m1']:
              base_term += (C['a5'] * (rup.mag - C['m1']) +
                            C['a8'] * (8.5 - rup.mag)**2. +
                            (C['a2'] + C['a3'] * (rup.mag - C['m1'])) *
                            np.log(R))
          elif rup.mag >= self.CONSTS['m2']:
              base_term += (C['a4'] * (rup.mag - C['m1']) +
                            C['a8'] * (8.5 - rup.mag)**2. +
                            (C['a2'] + C['a3'] * (rup.mag - C['m1'])) *
                            np.log(R))
          else:
              base_term += (C['a4'] * (self.CONSTS['m2'] - C['m1']) +
                            C['a8'] * (8.5 - self.CONSTS['m2'])**2. +
                            C['a6'] * (rup.mag - self.CONSTS['m2']) +
                            C['a7'] * (rup.mag - self.CONSTS['m2'])**2. +
                            (C['a2'] + C['a3'] * (self.CONSTS['m2'] - C['m1'])) *
                            np.log(R))
          return base_term