FLINT3.7.0-dev

block_lanczos

Synopsis#include <flint/qsieve.h>
uint64_t * block_lanczos(flint_rand_t state, slong nrows, slong dense_rows, slong ncols, la_col_t * B)source

Montgomery's block Lanczos algorithm over \mathbb{F}_2 with blocks of 64 vectors [Mon1995]: returns an array of ncols words whose bit l in entry i gives the i-th coordinate of the l-th vector of a basis of (part of) the null space of the matrix with columns B, or NULL if the iteration failed (it is then retried with another random start). Adapted from msieve by Jason Papadopoulos.

References#

  • [Mon1995] P. L. Montgomery. A block Lanczos algorithm for finding dependencies over GF(2). Advances in Cryptology – EUROCRYPT '95, Lecture Notes in Computer Science 921, Springer, 1995, 106–120.
Cite this page

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