new_contents: import numpy as np
  import numpy.random as nr
  
  def friedman(nb_samples=100, nb_features=10,noise_std=1):
      """
      Function creating simulated data with non linearities 
      (cf.Friedman 1993)
      X = NR.normal(0,1)
      Y = 10*sin(X[:,0]*X[:,1]) + 20*(X[:,2]-0.5)**2 + 10*X[:,3] + 5*X[:,4]
      The number of features is at least 5.
  
      Parameters
      ----------
      nb_samples : int
                   number of samples (defaut is 100).
      nb_features : int
                    number of features (defaut is 10).
      noise_std : float
  		std of the noise, which is added as noise_std*NR.normal(0,1)
      Returns
      -------
      X : numpy array of shape (nb_samples, nb_features) for input samples
      Y : numpy array of shape (nb_samples) for labels
  
      """
      X = nr.normal(loc=0, scale=1, size=(nb_samples, nb_features))
      Y = 10*np.sin(X[:,0]*X[:,1]) + 20*(X[:,2]-0.5)**2 + 10*X[:,3] + 5*X[:,4]
      Y += noise_std*nr.normal(loc=0,scale=1,size=(nb_samples))
      return X,Y
      
  
subject: Add nonlinear samples generator