67 if (q ==
NULL)
return p;
89 for (
i=ishift+1;
i<=r->N;
i++)
97 PrintS(
"negative ExpVectorDiff\n");
120 PrintS(
"running syzygy comp. for nc_GCD:\n");
124 PrintS(
"done syzygy comp. for nc_GCD\n");
349 if ((lCompP1!=lCompP2) && (lCompP1!=0) && (lCompP2!=0))
352 WerrorS(
"nc_rat_CreateSpoly: different non-zero components!");
406 ideal ncsyz =
ncGCD(C,K,r);
407 poly KK = ncsyz->m[0]; ncsyz->m[0]=
NULL;
408 poly CC = ncsyz->m[1]; ncsyz->m[1]=
NULL;
443 PrintS(
" k'(r_f + d^{gamma-alpha} t_f): ");
p_wrp(p1,r);
444 PrintS(
" c'(r_g + d^{gamma-beta} t_g): ");
p_wrp(p2,r);
470 if ((lCompP1!=lCompP2) && (lCompP1!=0) && (lCompP2!=0))
473 WerrorS(
"nc_rat_ReduceSpolyNew: different non-zero components!");
515 ideal ncsyz =
ncGCD(P,K,r);
516 poly KK = ncsyz->m[0]; ncsyz->m[0]=
NULL;
517 poly PP = ncsyz->m[1]; ncsyz->m[1]=
NULL;
546 PrintS(
" end reduction\n");
572 PrintS(
"invoke p_DivByRat with a = ");
579 for(
i=r->N;
i>ishift;
i--)
593int redRat (poly*
h, poly *reducer,
int *red_length,
int rl,
int ishift, ring r)
595 if ((*
h)==
NULL)
return 0;
607 j=
i;
l=red_length[
i];
653 int i = r->real_var_end;
655 while ( (
p_GetExp(
p,
i,r)==0) && (
i>=r->real_var_start))
659 return (
i+1 == r->real_var_start );
static int si_max(const int a, const int b)
poly singclap_pdivide(poly f, poly g, const ring r)
static FORCE_INLINE BOOLEAN n_GreaterZero(number n, const coeffs r)
ordered fields: TRUE iff 'n' is positive; in Z/pZ: TRUE iff 0 < m <= roundedBelow(p/2),...
const Variable & v
< [in] a sqrfree bivariate poly
void WerrorS(const char *s)
ideal idSyzygies(ideal h1, tHomog h, intvec **w, BOOLEAN setSyzComp, BOOLEAN setRegularity, int *deg, GbVariant alg)
static poly nc_mm_Mult_p(const poly m, poly p, const ring r)
#define p_LmCheckPolyRing1(p, r)
void p_LmDeleteAndNextRat(poly *p, int ishift, ring r)
poly p_GetCoeffRat(poly p, int ishift, ring r)
static poly p_Neg(poly p, const ring r)
static poly p_Add_q(poly p, poly q, const ring r)
static poly p_Mult_q(poly p, poly q, const ring r)
static int p_Comp_k_n(poly a, poly b, int k, ring r)
static void p_SetCompP(poly p, int i, ring r)
static unsigned long p_SetExp(poly p, const unsigned long e, const unsigned long iBitmask, const int VarOffset)
set a single variable exponent @Note: VarOffset encodes the position in p->exp
static void p_ExpVectorDiff(poly pr, poly p1, poly p2, const ring r)
static void p_Setm(poly p, const ring r)
static poly p_Head(const poly p, const ring r)
copy the (leading) term of p
static long p_GetExp(const poly p, const unsigned long iBitmask, const int VarOffset)
get a single variable exponent @Note: the integer VarOffset encodes:
static poly p_GetExp_k_n(poly p, int l, int k, const ring r)
static void p_Delete(poly *p, const ring r)
static poly p_Copy(poly p, const ring r)
returns a copy of p
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 ...
poly singclap_gcd(poly f, poly g, const ring r)
polynomial gcd via singclap_gcd_r resp. idSyzygies destroys f and g
Compatibility layer for legacy polynomial operations (over currRing)
#define pGetComp(p)
Component.
#define pGetExp(p, i)
Exponent.
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 ...
BOOLEAN p_DivisibleByRat(poly a, poly b, int ishift, const ring r)
poly nc_rat_CreateSpoly(poly pp1, poly pp2, int ishift, const ring r)
BOOLEAN p_LmIsConstantCompRat(const poly p, const ring r)
BOOLEAN p_LmIsConstantRat(const poly p, const ring r)
void pLcmRat(poly a, poly b, poly m, int rat_shift)
poly p_HeadRat(poly p, int ishift, ring r)
ideal ncGCD2(poly p, poly q, const ring r)
void p_ExpVectorDiffRat(poly pr, poly p1, poly p2, int ishift, ring r)
ideal ncGCD(poly p, poly q, const ring r)
int redRat(poly *h, poly *reducer, int *red_length, int rl, int ishift, ring r)
poly nc_rat_ReduceSpolyNew(const poly p1, poly p2, int ishift, const ring r)
void PrintS(const char *s)
ideal idInit(int idsize, int rank)
initialise an ideal / module
void id_Delete(ideal *h, ring r)
deletes an ideal/module/matrix