code: def transform(self, X, lenscale=None):
          
          lenscale = self._check_dim(X.shape[1], lenscale)
  
          VX = self._makeVX(X / lenscale)
          Phi = np.hstack((np.cos(VX), np.sin(VX))) / np.sqrt(self.n)
          return Phi
docs: Apply the Fast Food RBF basis to X.
  
          Parameters
          ----------
          X: ndarray
              (N, d) array of observations where N is the number of samples, and
              d is the dimensionality of X.
          lenscale: scalar or ndarray, optional
              scalar or array of shape (d,) length scales (one for each dimension
              of X).If not input, this uses the value of the initial length
              scale.
  
  
          Returns
          -------
          ndarray:
              of shape (N, 2*nbases) where nbases is number of random bases to
              use, given in the constructor (to nearest larger two power).