docs: def generate_uncertainties(N, dist='Gamma', rseed=None):
      """
      This function generates a uncertainties for the white noise component
      in the synthetic light curve. 
      
      Parameters
      ---------
      N: positive integer
          Lenght of the returned uncertainty vector
      dist: {'EMG', 'Gamma'}
          Probability density function (PDF) used to generate the 
          uncertainties
      rseed:
          Seed for the random number generator
          
      Returns
      -------
      s: ndarray
          Vector containing the uncertainties
      expected_s_2: float
          Expectation of the square of s computed analytically
          
      """
      np.random.seed(rseed)  
      #print(dist)
      if dist == 'EMG':  # Exponential modified Gaussian
          # the mean of a EMG rv is mu + 1/(K*sigma)
          # the variance of a EMG rv is sigma**2 + 1/(K*sigma)**2
          K = 1.824328605481941
          sigma = 0.05*0.068768312946785953
          mu = 0.05*0.87452567616276777
          # IMPORTANT NOTE
          # These parameters were obtained after fitting uncertainties
          # coming from 10,000 light curves of the VVV survey
          expected_s_2 = sigma**2 + mu**2 + 2*K*mu*sigma + 2*K**2*sigma**2 
          s = exponnorm.rvs(K, loc=mu, scale=sigma, size=N)
      elif dist == 'Gamma':
          # The mean of a gamma rv is k*sigma
          # The variance of a gamma rv is k*sigma**2
          k = 3.0
          sigma = 0.05/k  #  mean=0.05, var=0.05**2/k
          s = gamma.rvs(k, loc=0.0, scale=sigma, size=N)
          expected_s_2 = k*(1+k)*sigma**2  
      return s, expected_s_2