/usr/include/NTL/ZZXFactoring.h is in libntl-dev 5.4.2-4.1build1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 | #ifndef NTL_ZZXFactoring__H
#define NTL_ZZXFactoring__H
#include <NTL/ZZX.h>
#include <NTL/pair_ZZX_long.h>
NTL_OPEN_NNS
void mul(ZZX& x, const vec_pair_ZZX_long& a);
inline ZZX mul(const vec_pair_ZZX_long& v)
{ ZZX x; mul(x, v); return x; }
void SquareFreeDecomp(vec_pair_ZZX_long& u, const ZZX& f);
inline vec_pair_ZZX_long SquareFreeDecomp(const ZZX& f)
{ vec_pair_ZZX_long x; SquareFreeDecomp(x, f); return x; }
// input is primitive, with positive leading coefficient
void MultiLift(vec_ZZX& A, const vec_zz_pX& a, const ZZX& f, long e,
long verbose=0);
// Using current value p of zz_p::modulus(), this lifts
// the square-free factorization a mod p of f to a factorization
// A mod p^e of f.
// It is required that f and all the polynomials in a are monic.
void SFFactor(vec_ZZX& factors, const ZZX& f,
long verbose=0,
long bnd=0);
inline vec_ZZX SFFactor(const ZZX& f, long verbose=0, long bnd=0)
{ vec_ZZX x; SFFactor(x, f, verbose, bnd); return x; }
// input f is primitive and square-free, with positive leading
// coefficient.
// bnd, if not zero, indicates that
// f divides a polynomial h whose Euclidean norm
// is bounded by 2^{bnd} in absolute value.
extern long ZZXFac_MaxPrune;
extern long ZZXFac_InitNumPrimes;
extern long ZZXFac_MaxNumPrimes;
extern long ZZXFac_PowerHack;
extern long ZZXFac_van_Hoeij;
void factor(ZZ& c,
vec_pair_ZZX_long& factors,
const ZZX& f,
long verbose=0,
long bnd=0);
// input f is is an arbitrary polynomial.
// c is the content of f, and factors is the facrorization
// of its primitive part.
// bnd is as in SFFactor.
NTL_CLOSE_NNS
#endif
|