docs: def generate(self, M, age=9.6, feh=0.0,
                   ichrone='mist', n=1e4, bands=None, **kwargs):
          """
          Function that generates population.
  
          Called by ``__init__`` if ``M`` is passed.
          """
          ichrone = get_ichrone(ichrone, bands=bands)
          if np.size(M) > 1:
              n = np.size(M)
          else:
              n = int(n)
          M2 = M * self.q_fn(n, qmin=np.maximum(self.qmin,self.minmass/M))
  
          P = self.P_fn(n)
          ecc = self.ecc_fn(n,P)
  
          mass = np.ascontiguousarray(np.ones(n)*M)
          mass2 = np.ascontiguousarray(M2)
          age = np.ascontiguousarray(age)
          feh = np.ascontiguousarray(feh)
          pri = ichrone(mass, age, feh, return_df=True, bands=bands)
          sec = ichrone(mass2, age, feh, return_df=True, bands=bands)
  
          BinaryPopulation.__init__(self, primary=pri, secondary=sec,
                                    period=P, ecc=ecc, **kwargs)
          return self