An O(n3) algorithm for the Frobenius normal form

We describe an O(n) eld operations algorithm for computing the Frobenius normal form of an n n matrix. As applications we get O(n) algorithms for two other classical problems: computing the minimal polynomial of a matrix and testing two matrices for similarity. Assuming standard matrix multiplication, the previously best known deterministic complexity bound for all three problems is O(n).