Variations using knn.
Update and clean the code.
Implement fourier_x