39 tneg = n_Neg__T(n_Copy__T(tm, r->cf), r->cf),
45 DECLARE_LENGTH(
const unsigned long length = r->ExpL_Size);
46 DECLARE_ORDSGN(
const long* ordsgn = r->ordsgn);
48 const unsigned long* m_e = m->exp;
49 omBin bin = r->PolyBin;
51 if (p ==
NULL)
goto Finish;
58 p_MemSum__T(qm->exp, q->exp, m_e, length);
59 p_MemAddAdjust__T(qm, r);
63 p_MemCmp__T(qm->exp, p->exp, length, ordsgn,
goto Equal,
goto Greater,
goto Smaller );
67 #ifdef HAVE_ZERODIVISORS 68 if (!n_IsZero__T(tb,r->cf)) {
71 if (!n_Equal__T(tc, tb, r->cf))
74 tc = n_Sub__T(tc, tb, r->cf);
86 #ifdef HAVE_ZERODIVISORS 95 if (q ==
NULL || p ==
NULL)
goto Finish;
101 #ifdef HAVE_ZERODIVISORS 102 tb = n_Mult__T(
pGetCoeff(q), tneg, r->cf);
103 if (!n_IsZero__T(tb,r->cf))
108 #ifdef HAVE_ZERODIVISORS 128 if (p ==
NULL)
goto Finish;
140 if (spNoether !=
NULL)
143 pNext(a) = r->p_Procs->pp_Mult_mm_Noether(q, m, spNoether, ll, r);
148 pNext(a) = r->p_Procs->pp_Mult_mm(q, m, r);
static BOOLEAN Equal(number a, number b, const coeffs r)
#define p_AllocBin(p, bin, r)
static BOOLEAN rField_is_Domain(const ring r)
static number & pGetCoeff(poly p)
return an alias to the leading coefficient of p assumes that p != NULL NOTE: not copy ...
#define p_FreeBinAddr(p, r)
LINKAGE poly p_Minus_mm_Mult_qq__T(poly p, poly m, poly q, int &Shorter, const poly spNoether, const ring r)
#define n_Delete__T(n, r)
static poly p_LmFreeAndNext(poly p, ring)
static unsigned pLength(poly a)
static bool Greater(mono_type m1, mono_type m2)