Circulant Weighing Matrices

A weighing matrix W = W(n,k) with weight k is a square matrix of order n and entries wi,j in {-1, 0, +1} such that WWT=kIn. For example, when k=n this is a Hadamard matrix.

A circulant weighing matrix CW(n,k) is a special type of weighing matrix in which every row except for the first is a right cyclic shift of the previous row. Equivalently, the first row viewed as a sequence has constant autocorrelation 0.

Let P be the set of locations with a +1 in the first row, and N be the locations with a -1. Then |P|+|N|=k. It is known that

  • k = s2 for some integer s,
  • |P| = (s2+s)/2, and |N| = (s2-s)/2.

As with difference sets, there are numerous results about the existence of circulant weighing matrices. Strassler in 1997 gave a table of results for n≤200 and s≤ 10. This website attempts to bring together all known results about cases in Strassler’s table, and extend the table further.

Some constructions have not been included yet. If you have any circulant weighing matrices or nonexistence results not in this database, or find any errors, please let me know.


A Jupyter Book version of my circulant weighing matrix dataset is now available. It’s still in development, but when finished will provide a permanent location for the repository that is more in line with FAIR data principles. The book includes all the data and some basic code, which can be downloaded or viewed and run online. Any comments or suggestions for improving the presentation will be greatly appreciated.

Search for Circulant Weighing Matrices


n range: ≤ n ≤
s range: ≤ s ≤