FLINT3.7.0-dev

nmod_mpoly_mul_johnson, nmod_mpoly_mul_heap_threaded

Synopsis#include <flint/nmod_mpoly.h>
void nmod_mpoly_mul_johnson(nmod_mpoly_t A, const nmod_mpoly_t B, const nmod_mpoly_t C, const nmod_mpoly_ctx_t ctx)source
void nmod_mpoly_mul_heap_threaded(nmod_mpoly_t A, const nmod_mpoly_t B, const nmod_mpoly_t C, const nmod_mpoly_ctx_t ctx)source

Set A to B C by Johnson's heap algorithm [Joh1974], which merges the products b_i C with a heap of size \min(\mathrm{len}(B), \mathrm{len}(C)) and costs O(\mathrm{len}(B) \mathrm{len}(C) \log \min(\mathrm{len}(B), \mathrm{len}(C))) monomial comparisons. The first version uses one thread, the second the available threads.

References#

Cite this page

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