division of univariate polys using FLINT/NTL over F_p, F_q, Z/p^k, Z/p^k[t]/(f), Z, Q, Q(a), if we are in GF factory's default multiplication is used. If b!= 0 and getCharacteristic() == 0 the input will be considered as elements over Z/p^k or Z/p^k[t]/(f); in this case invertiblity of Lc(G) is not checked
867 #if (HAVE_FLINT && __FLINT_RELEASE >= 20400)
869 fmpz_mod_poly_t FLINTmipo;
878 fq_ctx_init_modulus (
fq_con, FLINTmipo,
"Z");
883 fq_inv (FLINTG, FLINTG,
fq_con);
884 fq_mul (FLINTF, FLINTF, FLINTG,
fq_con);
889 fmpz_mod_poly_clear (FLINTmipo);
890 fq_clear (FLINTF,
fq_con);
891 fq_clear (FLINTG,
fq_con);
897 ZZ_pE::init (NTLmipo);
901 div (
result, to_ZZ_pE (NTLf), to_ZZ_pE (NTLg));
913 if (!
G.inBaseDomain())
917 #if (HAVE_FLINT && __FLINT_RELEASE >= 20400)
919 fmpz_mod_poly_t FLINTmipo;
929 fq_ctx_init_modulus (
fq_con, FLINTmipo,
"Z");
934 fq_inv (FLINTG, FLINTG,
fq_con);
935 fq_poly_scalar_mul_fq (FLINTF, FLINTF, FLINTG,
fq_con);
941 fmpz_mod_poly_clear (FLINTmipo);
942 fq_poly_clear (FLINTF,
fq_con);
943 fq_clear (FLINTG,
fq_con);
949 ZZ_pE::init (NTLmipo);
952 div (NTLf, NTLf, to_ZZ_pE (NTLg));
973 fmpz_mod_poly_t FLINTF, FLINTG;
976 fmpz_mod_poly_divrem (FLINTF, FLINTG, FLINTF, FLINTG);
978 fmpz_mod_poly_clear (FLINTG);
979 fmpz_mod_poly_clear (FLINTF);
980 fmpz_clear (FLINTpk);
990 ZZ_pX NTLf= to_ZZ_pX (ZZf);
991 ZZ_pX NTLg= to_ZZ_pX (ZZg);
992 div (NTLf, NTLf, NTLg);
1002 #if (HAVE_FLINT && __FLINT_RELEASE >= 20400)
1004 fmpz_mod_poly_t FLINTmipo;
1006 fq_poly_t FLINTF, FLINTG;
1013 fq_ctx_init_modulus (
fq_con, FLINTmipo,
"Z");
1018 fq_poly_divrem (FLINTF, FLINTG, FLINTF, FLINTG,
fq_con);
1023 fmpz_clear (FLINTp);
1024 fmpz_mod_poly_clear (FLINTmipo);
1026 fq_poly_clear (FLINTF,
fq_con);
1027 fq_poly_clear (FLINTG,
fq_con);
1032 ZZ_pE::init (NTLmipo);
1035 div (NTLf, NTLf, NTLg);
1050 ASSERT (F.
level() ==
G.level(),
"expected polys of same level");
1060 #if (HAVE_FLINT && __FLINT_RELEASE >= 20400)
1061 nmod_poly_t FLINTmipo;
1069 fq_nmod_poly_t FLINTF, FLINTG;
1073 fq_nmod_poly_divrem (FLINTF, FLINTG, FLINTF, FLINTG,
fq_con);
1083 zz_pE::init (NTLMipo);
1086 div (NTLF, NTLF, NTLG);
1093 nmod_poly_t FLINTF, FLINTG;
1096 nmod_poly_div (FLINTF, FLINTF, FLINTG);
1103 div (NTLF, NTLF, NTLG);
CanonicalForm convertFq_poly_t2FacCF(const fq_poly_t p, const Variable &x, const Variable &alpha, const fq_ctx_t ctx)
conversion of a FLINT poly over Fq (for non-word size p) to a CanonicalForm with alg....
void convertFacCF2Fq_t(fq_t result, const CanonicalForm &f, const fq_ctx_t ctx)
conversion of a factory element of F_q (for non-word size p) to a FLINT fq_t
CanonicalForm convertFq_nmod_poly_t2FacCF(const fq_nmod_poly_t p, const Variable &x, const Variable &alpha, const fq_nmod_ctx_t ctx)
conversion of a FLINT poly over Fq to a CanonicalForm with alg. variable alpha and polynomial variabl...
CanonicalForm convertFq_t2FacCF(const fq_t poly, const Variable &alpha)
conversion of a FLINT element of F_q with non-word size p to a CanonicalForm with alg....
CanonicalForm convertFmpz_mod_poly_t2FacCF(const fmpz_mod_poly_t poly, const Variable &x, const modpk &b)
conversion of a FLINT poly over Z/p (for non word size p) to a CanonicalForm over Z
void convertCF2Fmpz(fmpz_t result, const CanonicalForm &f)
conversion of a factory integer to fmpz_t
CanonicalForm convertnmod_poly_t2FacCF(const nmod_poly_t poly, const Variable &x)
conversion of a FLINT poly over Z/p to CanonicalForm
void convertFacCF2Fmpz_mod_poly_t(fmpz_mod_poly_t result, const CanonicalForm &f, const fmpz_t p)
conversion of a factory univariate poly over Z to a FLINT poly over Z/p (for non word size p)
void convertFacCF2Fq_nmod_poly_t(fq_nmod_poly_t result, const CanonicalForm &f, const fq_nmod_ctx_t ctx)
conversion of a factory univariate poly over F_q to a FLINT fq_nmod_poly_t
void convertFacCF2Fq_poly_t(fq_poly_t result, const CanonicalForm &f, const fq_ctx_t ctx)
conversion of a factory univariate poly over F_q (for non-word size p) to a FLINT fq_poly_t
ZZX convertFacCF2NTLZZX(const CanonicalForm &f)
zz_pEX convertFacCF2NTLzz_pEX(const CanonicalForm &f, const zz_pX &mipo)
CanonicalForm convertNTLzz_pEX2CF(const zz_pEX &f, const Variable &x, const Variable &alpha)
ZZ_pEX convertFacCF2NTLZZ_pEX(const CanonicalForm &f, const ZZ_pX &mipo)
CanonicalForm in Z_p(a)[X] to NTL ZZ_pEX.
CanonicalForm convertNTLzzpX2CF(const zz_pX &poly, const Variable &x)
CanonicalForm convertNTLZZpX2CF(const ZZ_pX &poly, const Variable &x)
NAME: convertNTLZZpX2CF.
CanonicalForm convertNTLZZX2CF(const ZZX &polynom, const Variable &x)
CanonicalForm convertNTLZZ_pEX2CF(const ZZ_pEX &f, const Variable &x, const Variable &alpha)
zz_pX convertFacCF2NTLzzpX(const CanonicalForm &f)
ZZ_pX convertFacCF2NTLZZpX(const CanonicalForm &f)
NAME: convertFacCF2NTLZZpX.
ZZ convertFacCF2NTLZZ(const CanonicalForm &f)
NAME: convertFacCF2NTLZZX.
#define ASSERT(expression, message)
#define GaloisFieldDomain
factory's class for variables
fq_nmod_ctx_clear(fq_con)
nmod_poly_init(FLINTmipo, getCharacteristic())
fq_nmod_ctx_init_modulus(fq_con, FLINTmipo, "Z")
convertFacCF2nmod_poly_t(FLINTmipo, M)
nmod_poly_clear(FLINTmipo)
fq_nmod_poly_clear(prod, fq_con)
CanonicalForm divFLINTQ(const CanonicalForm &F, const CanonicalForm &G)
void newtonDiv(const CanonicalForm &F, const CanonicalForm &G, CanonicalForm &Q)
CanonicalForm getMipo(const Variable &alpha, const Variable &x)