Blackbox Determinant Algorithm

Minor (submatrix determinant) notation:


Determinant facts:


Determinant Algorithm:
Input: a matrix A over a finite field F of size q.
Output: the determinant of A, an element of F.

  1. Choose random d1, d2, ..., dn in F*. Let D = diag(d1, d2, ..., dn).
  2. Compute m(x) = mDA, the minimum polynomial of DA. // Wiedemann alg, probabilistic
  3. If m0= 0 or deg(m(x) = n, return m0/(Πdi). //success
    [m0 = det(DA), Πdi = det(D).]
  4. return "fail" or go to 1.

Observe that if the return in step 3 is taken, the algorithm is correct. Either the matrix is singular or the minimal polynomial of DA, having degree n, is the characteristic polynomial of DA.

The question that remains is, "What is the probability of failure (or of having to repeat)?"


Theorem: Given nonsingular n by n matrix A, if δ1, δ2, ..., δn are distinct indeterminants, then for Δ = diag(δ1, δ2, ..., δn), the characteristic polynomial of ΔA is square free.

Corollary: If A is nonsingular, then cΔA(x) = mΔA(x) (charpoly = minpoly).


Call d1, d2, ..., dn a good evaluation point if cDA(x) = mDA(x), for D = diag(d1, d2, ..., dn).

Strategy:
(1) Construct nonzero polynomial whose roots are the bad evaluation points. Thus good evaluation points exist.
(2) Apply Schwartz lemma to show good evaluation points are ubiquitous.