32#define pSetCoeff(p,n) p_SetCoeff(p,n,currRing)
35#define pGetOrder(p) p_GetOrder(p, currRing)
38#define pGetComp(p) (int)__p_GetComp(p, currRing)
39#define pSetComp(p,v) p_SetComp(p,v, currRing)
42#define pGetExp(p,i) p_GetExp(p, i, currRing)
43#define pSetExp(p,i,v) p_SetExp(p, i, v, currRing)
44#define pIncrExp(p,i) p_IncrExp(p,i, currRing)
45#define pDecrExp(p,i) p_DecrExp(p,i, currRing)
46#define pAddExp(p,i,v) p_AddExp(p,i,v, currRing)
47#define pSubExp(p,i,v) p_SubExp(p,i,v, currRing)
48#define pMultExp(p,i,v) p_MultExp(p,i,v, currRing)
49#define pGetExpSum(p1, p2, i) p_GetExpSum(p1, p2, i, currRing)
50#define pGetExpDiff(p1, p2, i) p_GetExpDiff(p1, p2, i, currRing)
60#define pNew() p_New(currRing)
62#define pInit() p_Init(currRing,currRing->PolyBin)
65#define pLmInit(p) p_LmInit(p, currRing)
68#define pHead(p) p_Head(p, currRing)
75#define pLmFreeAndNext(p) p_LmFreeAndNext(p, currRing)
77#define pLmDelete(p) p_LmDelete(p, currRing)
79#define pLmDeleteAndNext(p) p_LmDeleteAndNext(p, currRing)
87#define pExpVectorCopy(d_p, s_p) p_ExpVectorCopy(d_p, s_p, currRing)
88#define pExpVectorAdd(p1, p2) p_ExpVectorAdd(p1, p2, currRing)
89#define pExpVectorSub(p1, p2) p_ExpVectorSub(p1, p2, currRing)
90#define pExpVectorAddSub(p1, p2, p3) p_ExpVectorAddSub(p1, p2, p3, currRing)
91#define pExpVectorSum(pr, p1, p2) p_ExpVectorSum(pr, p1, p2, currRing)
92#define pExpVectorDiff(pr, p1, p2) p_ExpVectorDiff(pr, p1, p2, currRing)
97#define pGetExpV(p, e) p_GetExpV(p, e, currRing)
98#define pSetExpV(p, e) p_SetExpV(p, e, currRing)
106#define pLmCmp(p,q) p_LmCmp(p,q,currRing)
109#define pLmCmpAction(p,q, actionE, actionG, actionS) \
110 _p_LmCmpAction(p,q,currRing, actionE, actionG,actionS)
112#define pLmEqual(p1, p2) p_ExpVectorEqual(p1, p2, currRing)
116#define pCmp(p1, p2) p_Cmp(p1, p2, currRing)
124#define pLtCmp(p,q) p_LtCmp(p,q,currRing)
125#define pLtCmpNoAbs(p,q) p_LtCmpNoAbs(p,q,currRing)
126#define pLtCmpOrdSgnDiffM(p,q) p_LtCmpOrdSgnDiffM(p,q,currRing)
127#define pLtCmpOrdSgnDiffP(p,q) p_LtCmpOrdSgnDiffP(p,q,currRing)
128#define pLtCmpOrdSgnEqM(p,q) p_LtCmpOrdSgnEqM(p,q,currRing)
129#define pLtCmpOrdSgnEqP(p,q) p_LtCmpOrdSgnEqP(p,q,currRing)
139#define pDivisibleBy(a, b) p_DivisibleBy(a,b,currRing)
141#define pLmDivisibleBy(a,b) p_LmDivisibleBy(a,b,currRing)
143#define pLmDivisibleByNoComp(a, b) p_LmDivisibleByNoComp(a,b,currRing)
147#define pLmShortDivisibleBy(a, sev_a, b, not_sev_b) \
148 p_LmShortDivisibleBy(a, sev_a, b, not_sev_b, currRing)
149#define pLmRingShortDivisibleBy(a, sev_a, b, not_sev_b) \
150 p_LmRingShortDivisibleBy(a, sev_a, b, not_sev_b, currRing)
153#define pGetShortExpVector(a) p_GetShortExpVector(a, currRing)
160#define pDivisibleByRingCase(f,g) p_DivisibleByRingCase(f,g,currRing)
166poly
p_Divide(poly a, poly
b,
const ring r);
171poly
p_DivRem(poly a, poly
b, poly &rest,
const ring r);
186#define pCopy(p) p_Copy(p, currRing)
187#define pDelete(p_ptr) p_Delete(p_ptr, currRing)
199#define pNeg(p) p_Neg(p, currRing)
200#define ppMult_nn(p, n) pp_Mult_nn(p, n, currRing)
201#define pMult_nn(p, n) p_Mult_nn(p, n, currRing)
202#define ppMult_mm(p, m) pp_Mult_mm(p, m, currRing)
203#define pMult_mm(p, m) p_Mult_mm(p, m, currRing)
204#define pAdd(p, q) p_Add_q(p, q, currRing)
205#define pPower(p, q) p_Power(p, q, currRing)
206#define pMinus_mm_Mult_qq(p, m, q) p_Minus_mm_Mult_qq(p, m, q, currRing)
207#define pPlus_mm_Mult_qq(p, m, q) p_Plus_mm_Mult_qq(p, m, q, currRing)
208#define pMult(p, q) p_Mult_q(p, q, currRing)
209#define ppMult_qq(p, q) pp_Mult_qq(p, q, currRing)
211#define ppMult_Coeff_mm_DivSelect(p, m) pp_Mult_Coeff_mm_DivSelect(p, m, currRing)
218#define pSortMerger(p) p_SortMerge(p, currRing)
219#define pSort(p) p_SortMerge(p, currRing)
222#define pSortAdd(p) p_SortAdd(p, currRing)
228#define pSortCompCorrect(p) pSort(p)
237#define pIsConstantComp(p) p_IsConstantComp(p, currRing)
239#define pIsConstant(p) p_IsConstant(p,currRing)
241#define pIsUnit(p) p_IsUnit(p,currRing)
243#define pLmIsConstantComp(p) p_LmIsConstantComp(p, currRing)
244#define pLmIsConstant(p) p_LmIsConstant(p,currRing)
247#define pIsConstantPoly(p) p_IsConstantPoly(p, currRing)
249#define pIsPurePower(p) p_IsPurePower(p, currRing)
250#define pIsUnivariate(p) p_IsUnivariate(p, currRing)
251#define pIsVector(p) (pGetComp(p)>0)
252#define pGetVariables(p,e) p_GetVariables(p, e, currRing)
263#define pHasNotCFRing(p1,p2) p_HasNotCFRing(p1,p2,currRing)
264#define pHasNotCF(p1,p2) p_HasNotCF(p1,p2,currRing)
266#define pSplit(p,r) p_Split(p,r)
272#define pSetm(p) p_Setm(p, currRing)
274#define pSetmComp(p) p_Setm(p, currRing)
281#define pWeight(i) p_Weight(i,currRing)
284#define pWTotaldegree(p) p_WTotaldegree(p,currRing)
285#define pWDegree(p) p_WDegree(p,currRing)
288#define pSub(a,b) p_Sub(a,b,currRing)
290#define pmInit(a,b) p_mInit(a,b,currRing)
294#define pMDivide(a,b) p_MDivide(a,b,currRing)
295#define pDivideM(a,b) p_DivideM(a,b,currRing)
296#define pLcm(a,b,m) p_Lcm(a,b,m,currRing)
297#define pDiff(a,b) p_Diff(a,b,currRing)
298#define pDiffOp(a,b,m) p_DiffOp(a,b,m,currRing)
300#define pMaxComp(p) p_MaxComp(p, currRing)
301#define pMinComp(p) p_MinComp(p, currRing)
303#define pOneComp(p) p_OneComp(p, currRing)
304#define pSetCompP(a,i) p_SetCompP(a, i, currRing)
313#define pISet(i) p_ISet(i,currRing)
314#define pNSet(n) p_NSet(n,currRing)
316#define pOne() p_One(currRing)
318#define pNormalize(p) p_Normalize(p,currRing)
319#define pSize(p) p_Size(p,currRing)
323#define pHomogen(p,varnum) p_Homogen(p,varnum,currRing)
330#define pIsHomogen(p) p_IsHomogen(p,currRing)
333#define pVectorHasUnitB(p,k) p_VectorHasUnitB(p,k,currRing)
334#define pVectorHasUnit(p,k,l) p_VectorHasUnit(p,k,l,currRing)
361#define pDeleteComp(p,k) p_DeleteComp(p,k,currRing)
366#define pSubst(p,n,e) p_Subst(p,n,e,currRing)
367#define ppJet(p,m) pp_Jet(p,m,currRing)
368#define pJet(p,m) p_Jet(p,m,currRing)
369#define ppJetW(p,m,iv) pp_JetW(p,m,iv,currRing)
370#define pJetW(p,m,iv) p_JetW(p,m,iv,currRing)
371#define pMinDeg(p,w) p_MinDeg(p,w,currRing)
372#define pSeries(n,p,u,w) p_Series(n,p,u,w,currRing)
377#define pDegW(p,w) p_DegW(p,w,currRing)
381#define pVar(m) p_Var(m,currRing)
400#define pEqualPolys(p1,p2) p_EqualPolys(p1,p2,currRing)
415#define pTest(p) _p_Test(p, currRing, PDEBUG)
416#define pLmTest(p) _p_LmTest(p, currRing, PDEBUG)
420#define pTest(p) do {} while (0)
421#define pLmTest(p) do {} while (0)
int comp(const CanonicalForm &A, const CanonicalForm &B)
compare polynomials
static BOOLEAN length(leftv result, leftv arg)
void p_TakeOutComp(poly *p, long comp, poly *q, int *lq, const ring r)
int lcm(unsigned long *l, unsigned long *a, unsigned long *b, unsigned long p, int dega, int degb)
The main handler for Singular numbers which are suitable for Singular polynomials.
void p_Norm(poly p1, const ring r)
poly p_Last(const poly p, int &l, const ring r)
char * p_String(poly p, ring lmRing, ring tailRing)
void p_String0(poly p, ring lmRing, ring tailRing)
print p according to ShortOut in lmRing & tailRing
void p_Write(poly p, ring lmRing, ring tailRing)
void p_Write0(poly p, ring lmRing, ring tailRing)
static void p_LmFree(poly p, ring)
static long p_Totaldegree(poly p, const ring r)
void p_wrp(poly p, ring lmRing, ring tailRing)
VAR ring currRing
Widely used global variable which specifies the current polynomial ring for Singular interpreter and ...
static long pTotaldegree(poly p)
void pSetPolyComp(poly p, int comp)
poly pp_Divide(poly a, poly b, const ring r)
polynomial division a/b, ignoring the rest via singclap_pdivide resp. idLift does not destroy a,...
poly p_Divide(poly a, poly b, const ring r)
polynomial division a/b, ignoring the rest via singclap_pdivide resp. idLift destroys a,...
void rChangeCurrRing(ring r)
BOOLEAN pCompareChain(poly p, poly p1, poly p2, poly lcm, const ring R=currRing)
Returns TRUE if.
BOOLEAN pIsHomogeneous(poly p)
static void pLmFree(poly p)
frees the space of the monomial m, assumes m != NULL coef is not freed, m is not advanced
BOOLEAN pCompareChainPart(poly p, poly p1, poly p2, poly lcm, const ring R=currRing)
poly p_DivRem(poly a, poly b, poly &rest, const ring r)
static poly pLast(poly a, int &length)
returns the length of a polynomial (numbers of monomials) respect syzComp
void pTakeOutComp(poly *p, long comp, poly *q, int *lq, const ring R=currRing)
Splits *p into two polys: *q which consists of all monoms with component == comp and *p of all other ...
poly singclap_gcd(poly f, poly g, const ring r)
polynomial gcd via singclap_gcd_r resp. idSyzygies destroys f and g