docs: def multiscale_entropy(time_series, sample_length, tolerance = None, maxscale = None):
      """Calculate the Multiscale Entropy of the given time series considering
      different time-scales of the time series.
  
      Args:
          time_series: Time series for analysis
          sample_length: Bandwidth or group of points
          tolerance: Tolerance (default = 0.1*std(time_series))
  
      Returns:
          Vector containing Multiscale Entropy
  
      Reference:
          [1] http://en.pudn.com/downloads149/sourcecode/math/detail646216_en.html
      """
  
      if tolerance is None:
          #we need to fix the tolerance at this level. If it remains 'None' it will be changed in call to sample_entropy()
          tolerance = 0.1*np.std(time_series)
      if maxscale is None:
          maxscale = len(time_series)
  
      mse = np.zeros(maxscale)
  
      for i in range(maxscale):
          temp = util_granulate_time_series(time_series, i+1)
          mse[i] = sample_entropy(temp, sample_length, tolerance)[-1]
      return mse