An matrix whose rows are composed of cyclically shifted versions of a length- list . For example, the circulant matrix on the list is given by
(1)
|
Circulant matrices are very useful in digital image processing, and the circulant matrix is implemented as CirculantMatrix[l, n] in the Mathematica application package Digital Image Processing.
Circulant matrices can be implemented in the Wolfram Language as follows.
CirculantMatrix[l_List?VectorQ] := NestList[RotateRight, RotateRight[l], Length[l] - 1] CirculantMatrix[l_List?VectorQ, n_Integer] := NestList[RotateRight, RotateRight[Join[Table[0, {n - Length[l]}], l]], n - 1] /; n >= Length[l]
where the first input creates a matrix with dimensions equal to the length of and the second pads with zeros to give an matrix. A special type of circulant matrix is defined as
(2)
|
where is a binomial coefficient. The determinant of is given by the beautiful formula
(3)
|
where , , ..., are the th roots of unity. The determinants for , 2, ..., are given by 1, , 28, , 3751, 0, 6835648, , 364668913756, ... (OEIS A048954), which is 0 when .
Circulant matrices are examples of Latin squares.