19#ifndef SPECTRUM_IOSTREAM
50 if( p_Totaldegree(
h,r )== d )
102 if (p_IsConstant(J->m[
i],r))
return TRUE;
118 if( p_LmCmp(
f,
m,r )>=0 )
120 if( p_LmDivisibleByNoComp(
f,
m,r ) )
148 for(
int i=1;
i<=r->N;
i++ )
151 p_SetExp(
m,
i,mdegree,r );
158 p_SetExp(
m,
i,mdegree,r );
164 if(
i==1 || p_Cmp(
m,wc,r )<0 )
186 while( (*ptr)!=
NULL )
188 if( p_LmCmp( *ptr,hc,r )>=0 )
190 ptr = &(
pNext( *ptr ));
210 while( (*ptr)!=
NULL )
214 ptr = &(
pNext( *ptr ));
241 if( p_Cmp( stdJ->m[
i],
m,r )>=0 && p_DivisibleBy( stdJ->m[
i],
m,r ) )
243 int tmp = pLength( stdJ->m[
i] );
262 for(
int i=
s->N;
i>0;
i-- )
264 p_SetExp(
m,
i,r[
i-1],
s );
276 int b = rBlocks( r );
288 && r->block1[0]==r->N )
290 && r->block1[0]==r->N*r->N )))
292 for(
int i=r->N-1;
i>=0;
i-- )
294 if( r->wvhdl[0][
i]>=0 )
343 else if( p_Cmp(
m,hc,r ) < 0 || p_Cmp(
m,wc,r ) < 0 )
359 pGetCoeff( multiplicant ) = n_Init(1,r->cf);
361 poly
nf = p_Mult_mm( p_Copy( stdJ->m[
k],r ), multiplicant,r );
363 p_Delete( &multiplicant,r );
375 Z = p_Add_q( Z,
m,r );
390 Z = p_Add_q( Z,
m,r );
413 Z = p_Add_q( Z,
m,r );
427 while( C.
inc( carry ) );
435 not_finished =
FALSE;
452 }
while( not_finished );
467 for(
int i=r->N;
i>0;
i-- )
472 if( p_Cmp(
m,one,r )>0 )
Rational weight_shift(poly, const ring r) const
void delete_monomial(poly, const ring)
void insert_node(poly, poly, const ring)
const CanonicalForm int s
poly kNF(ideal F, ideal Q, poly p, int syzComp, int lazyReduce)
int p_IsPurePower(const poly p, const ring r)
return i, if head depends only on var(i)
poly p_MDivide(poly a, poly b, const ring r)
void p_Norm(poly p1, const ring r)
BOOLEAN hasAxis(ideal J, int k, const ring r)
int hasOne(ideal J, const ring r)
BOOLEAN ringIsLocal(const ring r)
static poly normalFormHC(poly f, poly hc, const ring r)
static BOOLEAN hasConstTerm(poly h, const ring r)
static void setExp(poly m, int *r, const ring s)
poly computeWC(const newtonPolygon &np, Rational max_weight, const ring r)
static BOOLEAN isWell(const ring r)
int isMultiple(poly f, poly m, const ring r)
static poly normalFormZ(poly f, poly Z, const ring r)
static int isLeadMonomial(poly m, ideal stdJ, const ring r)
static BOOLEAN hasLinearTerm(poly h, const ring r)
BOOLEAN hasTermOfDegree(poly h, int d, const ring r)
void computeNF(ideal stdJ, poly hc, poly wc, spectrumPolyList *NF, const ring r)