fq_nmod_mpoly_factor.h – factorisation of multivariate polynomials over finite fields of word-sized characteristic¶
Types, macros and constants¶
-
type
fq_nmod_mpoly_factor_struct¶ A struct for holding a factored polynomial. There is a single constant and a product of bases to corresponding exponents.
-
type
fq_nmod_mpoly_factor_t¶ An array of length 1 of
fq_nmod_mpoly_factor_struct.
Memory management¶
-
void
fq_nmod_mpoly_factor_init(fq_nmod_mpoly_factor_t f, const fq_nmod_mpoly_ctx_t ctx)¶ Initialise
f.
-
void
fq_nmod_mpoly_factor_clear(fq_nmod_mpoly_factor_t f, const fq_nmod_mpoly_ctx_t ctx)¶ Clear
f.
Basic manipulation¶
-
void
fq_nmod_mpoly_factor_swap(fq_nmod_mpoly_factor_t f, fq_nmod_mpoly_factor_t g, const fq_nmod_mpoly_ctx_t ctx)¶ Efficiently swap \(f\) and
g.
-
slong
fq_nmod_mpoly_factor_length(const fq_nmod_mpoly_factor_t f, const fq_nmod_mpoly_ctx_t ctx)¶ Return the length of the product in \(f\).
-
void
fq_nmod_mpoly_factor_get_constant_fq_nmod(fq_nmod_t c, const fq_nmod_mpoly_factor_t f, const fq_nmod_mpoly_ctx_t ctx)¶ Set \(c\) to the the constant of \(f\).
-
void
fq_nmod_mpoly_factor_get_base(fq_nmod_mpoly_t p, const fq_nmod_mpoly_factor_t f, slong i, const fq_nmod_mpoly_ctx_t ctx)¶ -
void
fq_nmod_mpoly_factor_swap_base(fq_nmod_mpoly_t p, fq_nmod_mpoly_factor_t f, slong i, const fq_nmod_mpoly_ctx_t ctx)¶ Set (resp. swap)
Bto (resp. with) the base of the term of index \(i\) in \(A\).
-
slong
fq_nmod_mpoly_factor_get_exp_si(fq_nmod_mpoly_factor_t f, slong i, const fq_nmod_mpoly_ctx_t ctx)¶ Return the exponent of the term of index \(i\) in \(A\). It is assumed to fit an
slong.
-
void
fq_nmod_mpoly_factor_sort(fq_nmod_mpoly_factor_t f, const fq_nmod_mpoly_ctx_t ctx)¶ Sort the product of \(f\) first by exponent and then by base.
Factorisation¶
A return of \(1\) indicates that the function was successful. Otherwise, the return is \(0\) and \(f\) is undefined. None of these functions multiply \(f\) by \(A\): \(f\) is simply set to a factorisation of \(A\), and thus these functions should not depend on the initial value of the output \(f\).
-
int
fq_nmod_mpoly_factor_squarefree(fq_nmod_mpoly_factor_t f, const fq_nmod_mpoly_t A, const fq_nmod_mpoly_ctx_t ctx)¶ Set \(f\) to a factorization of \(A\) where the bases are primitive and pairwise relatively prime. If the product of all irreducible factors with a given exponent is desired, it is recommend to call
fq_nmod_mpoly_factor_sort()and then multiply the bases with the desired exponent.
-
int
fq_nmod_mpoly_factor(fq_nmod_mpoly_factor_t f, const fq_nmod_mpoly_t A, const fq_nmod_mpoly_ctx_t ctx)¶ Set \(f\) to a factorization of \(A\) where the bases are irreducible.