FLINT3.7.0-dev

_unity_zp_mul_reduce

Synopsis#include <flint/aprcl.h>
void _unity_zp_mul_reduce(unity_zp f, const unity_zp g, const unity_zp h, fmpz * t)source

Sets f to gh (or g^2 if h is g) reduced by \Phi_{p^{exp}} and modulo n: the product over the integers is computed by _fmpz_poly_mul or _fmpz_poly_sqr into t (which must hold at least g->poly->length + h->poly->length - 1 initialised values), the cyclotomic reduction is done there with additions and subtractions (first by x^{p^{exp}} = 1, then by \Phi_{p^{exp}}(x) = \Phi_p(x^{p^{exp-1}})), and each of the \varphi(p^{exp}) remaining coefficients is reduced modulo n once. The operands need not be reduced by \Phi_{p^{exp}}.

Cite this page

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