function b = fastCirculant( c, x ) 
% Compute b = Ax, where A is a circulant matrix with its first 
% column given by the vector c. 
% 
% Author: Alex Townsend, September 2014

    d = fft( c );             % eigenvalues of A 
    b = ifft( d.*fft( x ) );  % FFT diagonalizes A 
end