code: def pre_calc(self, x, y, beta, n_order, center_x, center_y):
          
          x_ = x - center_x
          y_ = y - center_y
          n = len(np.atleast_1d(x))
          H_x = np.empty((n_order+1, n))
          H_y = np.empty((n_order+1, n))
          if n_order > 170:
              raise ValueError('polynomial order to large', n_order)
          for n in range(0, n_order+1):
  
              prefactor = 1./np.sqrt(2**n*np.sqrt(np.pi)*math.factorial(n))
              n_array = np.zeros(n+1)
              n_array[n] = 1
              H_x[n] = self.hermval(x_/beta, n_array, tensor=False) * prefactor * np.exp(-(x_/beta)**2/2.)
              H_y[n] = self.hermval(y_/beta, n_array, tensor=False) * prefactor * np.exp(-(y_/beta)**2/2.)
          return H_x, H_y
docs: calculates the H_n(x) and H_n(y) for a given x-array and y-array
          :param x:
          :param y:
          :param amp:
          :param beta:
          :param n_order:
          :param center_x:
          :param center_y:
          :return: list of H_n(x) and H_n(y)