function t=circulant(c)
% circulant - Construct circulant matrix from first column
%
% circulant :: [[N]] -> [[N,N]].

m = length(c);
c=c(:); 

x = [c(2:m) ; c(:)];                 % build vector of user data
cidx = (0:m-1)';
ridx = m:-1:1;
t = cidx(:,ones(m,1)) + ridx(ones(m,1),:);  % Toeplitz subscripts
t(:) = x(t);                                   % actual data


