enum {
typ_NULL = 0,
typ_POL,
typ_Q,
typ_NF,
typ_BNF,
typ_BNR,
typ_ELL,
typ_QUA,
typ_GAL,
typ_BID,
typ_BIDZ,
typ_PRID,
typ_MODPR,
typ_RNF
};
enum {
al_NULL = 0,
al_TABLE,
al_CSA,
al_CYCLIC
};
enum {
al_INVALID = 0,
al_TRIVIAL,
al_ALGEBRAIC,
al_BASIS,
al_MATRIX
};
enum {
id_PRINCIPAL = 0,
id_PRIME,
id_MAT
};
typedef struct {
GEN T, dT;
GEN T0;
GEN unscale;
GEN dK;
GEN index;
GEN basis;
long r1;
GEN basden;
GEN dTP, dTE;
GEN dKP, dKE;
} nfmaxord_t;
struct qfr_data { GEN D, sqrtD, isqrtD; };
enum {
nf_ORIG = 1,
nf_GEN = 1,
nf_ABSOLUTE = 2,
nf_FORCE = 2,
nf_ALL = 4,
nf_GENMAT = 4,
nf_INIT = 4,
nf_RAW = 8,
nf_RED = 8,
nf_PARTIALFACT = 16,
nf_ROUND2 = 64,
nf_GEN_IF_PRINCIPAL = 512
};
enum {
rnf_REL = 1,
rnf_COND = 2
};
enum {
LLL_KER = 1,
LLL_IM = 2,
LLL_ALL = 4,
LLL_GRAM = 0x100,
LLL_KEEP_FIRST = 0x200,
LLL_INPLACE = 0x400,
LLL_COMPATIBLE = 0x800
};
enum { hnf_MODID = 1, hnf_PART = 2, hnf_CENTER = 4 };
typedef struct FP_chk_fun {
GEN (*f)(void *,GEN);
GEN (*f_init)(struct FP_chk_fun*,GEN,GEN);
GEN (*f_post)(struct FP_chk_fun*,GEN,GEN);
void *data;
long skipfirst;
} FP_chk_fun;
typedef struct {
GEN bid;
GEN P, k;
GEN sprk;
GEN archp;
GEN U;
long hU;
int no2;
} zlog_S;