_flint_mpn_hgcd_matrix_init, _flint_mpn_hgcd_matrix_update_q, _flint_mpn_hgcd_matrix_mul_1, _flint_mpn_hgcd_matrix_mul, _flint_mpn_hgcd_matrix_adjust, _flint_mpn_hgcd_matrix22_mul_strassen_itch, _flint_mpn_hgcd_matrix22_mul_strassen
#include <flint/mpn_extras.h>void _flint_mpn_hgcd_matrix_init(flint_mpn_hgcd_matrix_struct * M, mp_size_t n, mp_ptr p)sourcevoid _flint_mpn_hgcd_matrix_update_q(flint_mpn_hgcd_matrix_struct * M, mp_srcptr qp, mp_size_t qn, unsigned int col, mp_ptr tp)sourcevoid _flint_mpn_hgcd_matrix_mul_1(flint_mpn_hgcd_matrix_struct * M, const flint_mpn_hgcd_matrix1_struct * M1, mp_ptr tp)sourcevoid _flint_mpn_hgcd_matrix_mul(flint_mpn_hgcd_matrix_struct * M, const flint_mpn_hgcd_matrix_struct * M1, mp_ptr tp)sourcemp_size_t _flint_mpn_hgcd_matrix_adjust(const flint_mpn_hgcd_matrix_struct * M, mp_size_t n, mp_ptr ap, mp_ptr bp, mp_size_t p, mp_ptr tp)sourcemp_size_t _flint_mpn_hgcd_matrix22_mul_strassen_itch(mp_size_t rn, mp_size_t mn)sourcevoid _flint_mpn_hgcd_matrix22_mul_strassen(mp_ptr r0, mp_ptr r1, mp_ptr r2, mp_ptr r3, mp_size_t rn, mp_srcptr m0, mp_srcptr m1, mp_srcptr m2, mp_srcptr m3, mp_size_t mn, mp_ptr tp)sourceThe matrix operations of the half-GCD, as GMP's mpn_hgcd_matrix_*. _flint_mpn_hgcd_matrix_init initialises to the identity for inputs of limbs, using FLINT_MPN_HGCD_MATRIX_INIT_ITCH(n) limbs at p. The product and the adjustment ( for the low limbs of and ) are computed in transform space for large operands (Use in FLINT). _flint_mpn_hgcd_matrix22_mul_strassen is GMP's mpn_matrix22_mul, the classical or a Strassen-like product of matrices, which the half-GCD uses below the transform-space range; it is not meant as a general matrix product.
The FLINT team, “_flint_mpn_hgcd_matrix_init, _flint_mpn_hgcd_matrix_update_q, _flint_mpn_hgcd_matrix_mul_1, _flint_mpn_hgcd_matrix_mul, _flint_mpn_hgcd_matrix_adjust, _flint_mpn_hgcd_matrix22_mul_strassen_itch, _flint_mpn_hgcd_matrix22_mul_strassen (mpn_extras.h),” FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev, 2026. https://flintlib.org/doc/mpn_extras/_flint_mpn_hgcd_matrix_init.html (generated 2026-11-02).
@misc{flint-doc-mpn-extras-flint-mpn-hgcd-matrix-init,
author = {{The FLINT team}},
title = {{\_flint\_mpn\_hgcd\_matrix\_init, \_flint\_mpn\_hgcd\_matrix\_update\_q, \_flint\_mpn\_hgcd\_matrix\_mul\_1, \_flint\_mpn\_hgcd\_matrix\_mul, \_flint\_mpn\_hgcd\_matrix\_adjust, \_flint\_mpn\_hgcd\_matrix22\_mul\_strassen\_itch, \_flint\_mpn\_hgcd\_matrix22\_mul\_strassen (mpn\_extras.h)}},
howpublished = {FLINT: Fast Library for Number Theory, documentation, version 3.7.0-dev},
year = {2026},
url = {https://flintlib.org/doc/mpn_extras/_flint_mpn_hgcd_matrix_init.html},
note = {Generated 2026-11-02}
}