BTF permutes an unsymmetric matrix (square or rectangular) into
its block upper triangular form (more precisely, it computes a
Dulmage-Mendelsohn decomposition).

This package is part of SuiteSparse.