21{
26 number nc;
28
30 omBin bin = r->PolyBin;
31 const unsigned long bitmask = r->divmask;
32 const unsigned long* m_e = &(
m->exp[2]);
33 DECLARE_LENGTH(
const unsigned long length = r->ExpL_Size);
34 DECLARE_LENGTH_2(
const unsigned long length_2 =
length - 2);
35
36 poly ab;
38 unsigned long* ab_e = &(ab->exp[0]);
39
40 p_MemDiff__T(ab_e, ((
unsigned long*) &(a->exp[0])), ((
unsigned long*) &(
b->exp[0])),
42
43 int Shorter = 0;
44 poly q = &rp;
45
46 do
47 {
48 p_MemCmp_Bitmask_2(m_e, &(
p->exp[2]), bitmask, length_2,
49 goto Divisible, goto NotDivisible);
50
51 NotDivisible:
53 Shorter++;
54 goto Iter;
55
56 Divisible:
62 p_MemSum__T(q->exp,
p->exp, ab_e,
length);
63
64 Iter:
66 }
68
71
72 shorter = Shorter;
75}
static BOOLEAN length(leftv result, leftv arg)
#define p_FreeBinAddr(p, r)
#define p_AllocBin(p, bin, r)
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy
static BOOLEAN p_LmDivisibleByNoComp(poly a, poly b, const ring r)
static BOOLEAN rOrd_is_Comp_dp(const ring r)