Skip to main content
added 65 characters in body
Source Link
kodlu
  • 10.4k
  • 2
  • 36
  • 55

This construction works for $n=m$ both powers of 2. Take an enumeration of the truth tables of the linear functions $$\{[\langle a,x\rangle: x \in GF(2)^k],a \in GF(2)^k\}.$$ This will have the weight property except for the fact that the first row and column will be all zeroes, for example, for $k=3,$ we get

enter image description here.

Call this matrix $A,$ and let $J$ be the all one matrix with the same dimensions. The blockmatrix $$ \left( \begin{array}{c|c} A+J & A \\ A & A+J \end{array} \right) $$ hasalmost has the desired property with size $n=m=2^{k+1}.$ In this case we get

enter image description here

I have taken an $8\times 8$ seed matrix but one can take smaller ones or larger ones as needed.

Note: Apply any two permutations to The problem is the rows and columns respectively, i.ematch. To remove this, considerI have rotated the matrix with $(i,j)$ entry $C(\sigma(i),\pi(j)),$ to get anotherrows of the matrix withto the same propertiesright by one. Do any distinct permutations giveNote that the sameoriginal rows of matrix? I don't think so but don't have a proof. Actually permutations fixing halves in certain patterns would. It's late$A$ were the linear multivariate boolean functions, and shifting them by one yields nonlinear functions, so I won't go any further rightthey are now distinct from the columns. The final outcome is below:

enter image description here

I used the magma calculator online available here. The code is below (without the cyclic rotation):

V:=VectorSpace(GF(2),3); L:=[v: v in V];

A:=Matrix([[InnerProduct(L[i+1],L[j]): j in [1..8]]: i in [0..7]]);A;

J:=Matrix([[1: i in [1..8]]: j in [1..8]]); C:=BlockMatrix(2,2,[A+J,A,A,A+J]); C;

function GetRowW(A,j,n) return Weight(VectorSpace(GF(2),n)![A[j,k]: k in [1..n]]); end function;

function GetColW(A,j,n) return Weight(VectorSpace(GF(2),n)![A[k,j]: k in [1..n]]); end function;

"row weights",{* GetRowW(C,j,16): j in [1..16] *};

"number of rows"; #{ [C[j,k]: k in [1..16]]: j in [1..16] };

"column weights",{* GetColW(C,j,16): j in [1..16] *};

"number of cols"; #{ [C[j,k]: j in [1..16]]: k in [1..16] };

This construction works for $n=m$ both powers of 2. Take an enumeration of the truth tables of the linear functions $$\{[\langle a,x\rangle: x \in GF(2)^k],a \in GF(2)^k\}.$$ This will have the weight property except for the fact that the first row and column will be all zeroes, for example, for $k=3,$ we get

enter image description here.

Call this matrix $A,$ and let $J$ be the all one matrix with the same dimensions. The blockmatrix $$ \left( \begin{array}{c|c} A+J & A \\ A & A+J \end{array} \right) $$ has the desired property with size $n=m=2^{k+1}.$ In this case we get

enter image description here

I have taken an $8\times 8$ seed matrix but one can take smaller ones or larger ones as needed.

Note: Apply any two permutations to the rows and columns respectively, i.e., consider the matrix with $(i,j)$ entry $C(\sigma(i),\pi(j)),$ to get another matrix with the same properties. Do any distinct permutations give the same matrix? I don't think so but don't have a proof. Actually permutations fixing halves in certain patterns would. It's late, so I won't go any further right now.

I used the magma calculator online available here. The code is below:

V:=VectorSpace(GF(2),3); L:=[v: v in V];

A:=Matrix([[InnerProduct(L[i+1],L[j]): j in [1..8]]: i in [0..7]]);A;

J:=Matrix([[1: i in [1..8]]: j in [1..8]]); C:=BlockMatrix(2,2,[A+J,A,A,A+J]); C;

function GetRowW(A,j,n) return Weight(VectorSpace(GF(2),n)![A[j,k]: k in [1..n]]); end function;

function GetColW(A,j,n) return Weight(VectorSpace(GF(2),n)![A[k,j]: k in [1..n]]); end function;

"row weights",{* GetRowW(C,j,16): j in [1..16] *};

"number of rows"; #{ [C[j,k]: k in [1..16]]: j in [1..16] };

"column weights",{* GetColW(C,j,16): j in [1..16] *};

"number of cols"; #{ [C[j,k]: j in [1..16]]: k in [1..16] };

This construction works for $n=m$ both powers of 2. Take an enumeration of the truth tables of the linear functions $$\{[\langle a,x\rangle: x \in GF(2)^k],a \in GF(2)^k\}.$$ This will have the weight property except for the fact that the first row and column will be all zeroes, for example, for $k=3,$ we get

enter image description here.

Call this matrix $A,$ and let $J$ be the all one matrix with the same dimensions. The blockmatrix $$ \left( \begin{array}{c|c} A+J & A \\ A & A+J \end{array} \right) $$ almost has the desired property with size $n=m=2^{k+1}.$ In this case we get

enter image description here

I have taken an $8\times 8$ seed matrix but one can take smaller ones or larger ones as needed.

The problem is the rows and columns match. To remove this, I have rotated the rows of the matrix to the right by one. Note that the original rows of matrix $A$ were the linear multivariate boolean functions, and shifting them by one yields nonlinear functions, so they are now distinct from the columns. The final outcome is below:

enter image description here

I used the magma calculator online available here. The code is below (without the cyclic rotation):

V:=VectorSpace(GF(2),3); L:=[v: v in V];

A:=Matrix([[InnerProduct(L[i+1],L[j]): j in [1..8]]: i in [0..7]]);A;

J:=Matrix([[1: i in [1..8]]: j in [1..8]]); C:=BlockMatrix(2,2,[A+J,A,A,A+J]); C;

function GetRowW(A,j,n) return Weight(VectorSpace(GF(2),n)![A[j,k]: k in [1..n]]); end function;

function GetColW(A,j,n) return Weight(VectorSpace(GF(2),n)![A[k,j]: k in [1..n]]); end function;

"row weights",{* GetRowW(C,j,16): j in [1..16] *};

"number of rows"; #{ [C[j,k]: k in [1..16]]: j in [1..16] };

"column weights",{* GetColW(C,j,16): j in [1..16] *};

"number of cols"; #{ [C[j,k]: j in [1..16]]: k in [1..16] };

added 113 characters in body
Source Link
kodlu
  • 10.4k
  • 2
  • 36
  • 55

This construction works for $n=m$ both powers of 2. Take an enumeration of the truth tables of the linear functions $$\{[\langle a,x\rangle: x \in GF(2)^k],a \in GF(2)^k\}.$$ This will have the weight property except for the fact that the first row and column will be all zeroes, for example, for $k=3,$ we get

enter image description here.

Call this matrix $A,$ and let $J$ be the all one matrix with the same dimensions. The blockmatrix $$ \left( \begin{array}{c|c} A+J & A \\ A & A+J \end{array} \right) $$ has the desired property with size $n=m=2^{k+1}.$ In this case we get

enter image description here

I have taken an $8\times 8$ seed matrix but one can take smaller ones or larger ones as needed.

Note: Apply any two permutations to the rows and columns respectively, i.e., consider the matrix with $(i,j)$ entry $C(\sigma(i),\pi(j)),$ to get another matrix with the same properties. Do any distinct permutations give the same matrix? I don't think so but don't have a proof. Actually permutations fixing halves in certain patterns would. It's late, so I won't go any further right now.

I used the magma calculator online available here. The code is below:

V:=VectorSpace(GF(2),3); L:=[v: v in V];

A:=Matrix([[InnerProduct(L[i+1],L[j]): j in [1..8]]: i in [0..7]]);A;

J:=Matrix([[1: i in [1..8]]: j in [1..8]]); C:=BlockMatrix(2,2,[A+J,A,A,A+J]); C;

function GetRowW(A,j,n) return Weight(VectorSpace(GF(2),n)![A[j,k]: k in [1..n]]); end function;

function GetColW(A,j,n) return Weight(VectorSpace(GF(2),n)![A[k,j]: k in [1..n]]); end function;

"row weights",{* GetRowW(C,j,16): j in [1..16] *};

"number of rows"; #{ [C[j,k]: k in [1..16]]: j in [1..16] };

"column weights",{* GetColW(C,j,16): j in [1..16] *};

"number of cols"; #{ [C[j,k]: j in [1..16]]: k in [1..16] };

This construction works for $n=m$ both powers of 2. Take an enumeration of the truth tables of the linear functions $$\{[\langle a,x\rangle: x \in GF(2)^k],a \in GF(2)^k\}.$$ This will have the weight property except for the fact that the first row and column will be all zeroes, for example, for $k=3,$ we get

enter image description here.

Call this matrix $A,$ and let $J$ be the all one matrix with the same dimensions. The blockmatrix $$ \left( \begin{array}{c|c} A+J & A \\ A & A+J \end{array} \right) $$ has the desired property with size $n=m=2^{k+1}.$ In this case we get

enter image description here

I have taken an $8\times 8$ seed matrix but one can take smaller ones or larger ones as needed.

Note: Apply any two permutations to the rows and columns respectively, i.e., consider the matrix with $(i,j)$ entry $C(\sigma(i),\pi(j)),$ to get another matrix with the same properties. Do any distinct permutations give the same matrix? I don't think so but don't have a proof.

I used the magma calculator online available here. The code is below:

V:=VectorSpace(GF(2),3); L:=[v: v in V];

A:=Matrix([[InnerProduct(L[i+1],L[j]): j in [1..8]]: i in [0..7]]);A;

J:=Matrix([[1: i in [1..8]]: j in [1..8]]); C:=BlockMatrix(2,2,[A+J,A,A,A+J]); C;

function GetRowW(A,j,n) return Weight(VectorSpace(GF(2),n)![A[j,k]: k in [1..n]]); end function;

function GetColW(A,j,n) return Weight(VectorSpace(GF(2),n)![A[k,j]: k in [1..n]]); end function;

"row weights",{* GetRowW(C,j,16): j in [1..16] *};

"number of rows"; #{ [C[j,k]: k in [1..16]]: j in [1..16] };

"column weights",{* GetColW(C,j,16): j in [1..16] *};

"number of cols"; #{ [C[j,k]: j in [1..16]]: k in [1..16] };

This construction works for $n=m$ both powers of 2. Take an enumeration of the truth tables of the linear functions $$\{[\langle a,x\rangle: x \in GF(2)^k],a \in GF(2)^k\}.$$ This will have the weight property except for the fact that the first row and column will be all zeroes, for example, for $k=3,$ we get

enter image description here.

Call this matrix $A,$ and let $J$ be the all one matrix with the same dimensions. The blockmatrix $$ \left( \begin{array}{c|c} A+J & A \\ A & A+J \end{array} \right) $$ has the desired property with size $n=m=2^{k+1}.$ In this case we get

enter image description here

I have taken an $8\times 8$ seed matrix but one can take smaller ones or larger ones as needed.

Note: Apply any two permutations to the rows and columns respectively, i.e., consider the matrix with $(i,j)$ entry $C(\sigma(i),\pi(j)),$ to get another matrix with the same properties. Do any distinct permutations give the same matrix? I don't think so but don't have a proof. Actually permutations fixing halves in certain patterns would. It's late, so I won't go any further right now.

I used the magma calculator online available here. The code is below:

V:=VectorSpace(GF(2),3); L:=[v: v in V];

A:=Matrix([[InnerProduct(L[i+1],L[j]): j in [1..8]]: i in [0..7]]);A;

J:=Matrix([[1: i in [1..8]]: j in [1..8]]); C:=BlockMatrix(2,2,[A+J,A,A,A+J]); C;

function GetRowW(A,j,n) return Weight(VectorSpace(GF(2),n)![A[j,k]: k in [1..n]]); end function;

function GetColW(A,j,n) return Weight(VectorSpace(GF(2),n)![A[k,j]: k in [1..n]]); end function;

"row weights",{* GetRowW(C,j,16): j in [1..16] *};

"number of rows"; #{ [C[j,k]: k in [1..16]]: j in [1..16] };

"column weights",{* GetColW(C,j,16): j in [1..16] *};

"number of cols"; #{ [C[j,k]: j in [1..16]]: k in [1..16] };

Source Link
kodlu
  • 10.4k
  • 2
  • 36
  • 55

This construction works for $n=m$ both powers of 2. Take an enumeration of the truth tables of the linear functions $$\{[\langle a,x\rangle: x \in GF(2)^k],a \in GF(2)^k\}.$$ This will have the weight property except for the fact that the first row and column will be all zeroes, for example, for $k=3,$ we get

enter image description here.

Call this matrix $A,$ and let $J$ be the all one matrix with the same dimensions. The blockmatrix $$ \left( \begin{array}{c|c} A+J & A \\ A & A+J \end{array} \right) $$ has the desired property with size $n=m=2^{k+1}.$ In this case we get

enter image description here

I have taken an $8\times 8$ seed matrix but one can take smaller ones or larger ones as needed.

Note: Apply any two permutations to the rows and columns respectively, i.e., consider the matrix with $(i,j)$ entry $C(\sigma(i),\pi(j)),$ to get another matrix with the same properties. Do any distinct permutations give the same matrix? I don't think so but don't have a proof.

I used the magma calculator online available here. The code is below:

V:=VectorSpace(GF(2),3); L:=[v: v in V];

A:=Matrix([[InnerProduct(L[i+1],L[j]): j in [1..8]]: i in [0..7]]);A;

J:=Matrix([[1: i in [1..8]]: j in [1..8]]); C:=BlockMatrix(2,2,[A+J,A,A,A+J]); C;

function GetRowW(A,j,n) return Weight(VectorSpace(GF(2),n)![A[j,k]: k in [1..n]]); end function;

function GetColW(A,j,n) return Weight(VectorSpace(GF(2),n)![A[k,j]: k in [1..n]]); end function;

"row weights",{* GetRowW(C,j,16): j in [1..16] *};

"number of rows"; #{ [C[j,k]: k in [1..16]]: j in [1..16] };

"column weights",{* GetColW(C,j,16): j in [1..16] *};

"number of cols"; #{ [C[j,k]: j in [1..16]]: k in [1..16] };