docs: def _gaussian_function(self, datalength: int, values: np.ndarray,
                             height: int, index: int) -> np.ndarray:
          """
          i'th Regression Model Gaussian
  
          :param: len(x)
          :param: x values
          :param: height of gaussian
          :param: position of gaussian
  
          :return: gaussian bumps over domain
          """
          return height * np.exp(-(1 / (self.spread_number * datalength)) *
                                 (values - ((datalength / self.function_number) * index)) ** 2)