FLINT3.7.0-dev

fmpz_mat_howell_form_mod

Synopsis#include <flint/fmpz_mat.h>
slong fmpz_mat_howell_form_mod(fmpz_mat_t A, const fmpz_t mod)source

Transforms A so that A modulo mod is the Howell form of the input modulo mod [How1986; StoMul1998], and returns the number of nonzero rows. A must have at least as many rows as columns.

The Howell form is computed as the strong echelon form with the zero rows moved to the bottom; see Howell form for both forms. Two matrices span the same submodule of (\mathbb{Z}/N\mathbb{Z})^c if and only if their Howell forms are equal.

References#

  • [How1986] J. A. Howell, "Spans in the module (\mathbb{Z}_m)^s", Linear and Multilinear Algebra 19 (1986), 67-77
  • [StoMul1998] Storjohann, Arne and Mulders, Thom : Fast algorithms for linear algebra modulo :math:N : Algorithms—{ESA} '98 (Venice), Lecture Notes in Comput. Sci. 1461 139–150
Cite this page

The FLINT team, “fmpz_mat_howell_form_mod (fmpz_mat.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/fmpz_mat/fmpz_mat_howell_form_mod.html (generated 2026-10-20).