rank algorithm is sus
from my understanding, the rank of a matrix of shape n \times m is equal to both the row rank and the column rank, which turn out to be the same numbers.
that means that the rank of any matrix of shape n \times m is less or equal to \min(n, m) \text{rk}(M) \leq \min(n, m)
however, if we compute the rank of the following matrix, where \* denote random elements over a large finite field
M = [
[0, 0, *, 0],
[*, 0, 0, *],
[0, *, 0, *],
[0, *, *, 0],
[*, 0, 0, 0],
]
then \text{rk}(M) = 5 \gt 4 = \min(4, 5) = \min(n, m)