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)sourceTransforms 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).
@misc{flint-doc-fmpz-mat-fmpz-mat-howell-form-mod,
author = {{The FLINT team}},
title = {{fmpz\_mat\_howell\_form\_mod (fmpz\_mat.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/fmpz_mat/fmpz_mat_howell_form_mod.html},
note = {Generated 2026-10-20}
}