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 AA so that AA modulo mod is the Howell form of the input modulo mod [How1986; StoMul1998], and returns the number of nonzero rows. AA 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 (Z/NZ)c(\mathbb{Z}/N\mathbb{Z})^c if and only if their Howell forms are equal.

References#

  • [How1986] J. A. Howell, "Spans in the module (Zm)s(\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:NN : 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-11-02).