# Question:How to check that an n*n matrix is an MDS matrx when n>=16

## Question:How to check that an n*n matrix is an MDS matrx when n>=16

Maple 2015

An n*n matrix A is called an MDS matrix over an arbitrary field if all determinant of square sub-matrices of A are non-zero over the field. It is not difficult to prove that the number of all square sub-matrices of A is binomial(2*n, n)-1. The code that I use to check whether A is an MDS matrix is in the following form

u := 1;
for k to n do
P := choose(n, k);
for i to nops(P) do
for j to nops(P) do
F := A(P[i], P[j]);
r := Determinant(F);
if r = 0 then

u := 0; k:=n+1;

i := nops(P)+1; j := nops(P)+1;

end if;

end do;

end do;
if u = 1 then

print(A is an MDS Matrix)

end if;
end do:

When I run the mentioned code for n=16, it takes long time since we need to check binomial(32, 16)-1=601080389 cases to verify that A is an MDS matrix or not.

My Question: Is there a modified procedure which can be used to check that an n*n matrix is  whether an MDS matrix for n>=16.

﻿