code: def rvs(self, size=1, param=None):
          
          arr = super(UniformComponentMasses, self).rvs(size=size)
          # enforce m1 > m2
          m1 = conversions.primary_mass(arr['mass1'], arr['mass2'])
          m2 = conversions.secondary_mass(arr['mass1'], arr['mass2'])
          arr['mass1'][:] = m1
          arr['mass2'][:] = m2
          if param is not None:
              arr = arr[param]
          return arr
docs: Gives a set of random values drawn from this distribution.
  
          In the returned set, mass2 <= mass1.
  
          Parameters
          ----------
          size : int
              The number of values to generate; default is 1.
          param : str, optional
              If provided, will just return values for the given parameter.
  
          Returns
          -------
          structured array
              The random values in a numpy structured array.