19 #ifndef NPOLYGON_IOSTREAM 47 #ifdef NPOLYGON_IOSTREAM 49 "void linearForm::copy_new( int k ): no memory left ...\n" ;
52 "void linearForm::copy_new( int k ): no memory left ...\n");
66 #ifdef NPOLYGON_IOSTREAM 68 "void linearForm::copy_new( int k ): k < 0 ...\n";
71 "void linearForm::copy_new( int k ): k < 0 ...\n" );
97 for(
int i=l.
N-1;
i>=0;
i-- )
138 #ifdef NPOLYGON_PRINT 142 for(
int i=0;
i<l.
N;
i++ )
148 #ifdef NPOLYGON_IOSTREAM 151 fprintf( stdout,
"+" );
157 #ifdef NPOLYGON_IOSTREAM 160 fprintf( stdout,
"*x%d",i+1 );
177 for(
int i=l1.
N-1;
i >=0 ;
i-- )
179 if( l1.
c[
i]!=l2.
c[
i] )
194 for(
int i=0,
j=1;
i<
N;
i++,
j++ )
234 for(
int i=0,
j=1;
i<
N;
i++,
j++ )
250 for(
int i=0,
j=2;
i<
N;
i++,
j++ )
267 for(
int i=0,
j=2;
i<
N;
i++,
j++ )
282 for(
int i=0;
i<
N;
i++ )
306 #ifdef NPOLYGON_PRINT 307 #ifdef NPOLYGON_IOSTREAM 309 "void newtonPolygon::copy_new( int k ): no memory left ...\n";
312 "void newtonPolygon::copy_new( int k ): no memory left ...\n" );
326 #ifdef NPOLYGON_PRINT 327 #ifdef NPOLYGON_IOSTREAM 328 cerr <<
"void newtonPolygon::copy_new( int k ): k < 0 ...\n";
331 "void newtonPolygon::copy_new( int k ): k < 0 ...\n" );
357 for(
int i=0;
i<np.
N;
i++ )
402 int *
r=
new int[s->N];
415 for( i=0; i<s->N; i++ )
422 for( i=1; i<s->N; i++ )
438 for( i=0; i<s->N; i++ )
440 for( j=0; j<s->N; j++ )
448 if( mat.
solve( &(sol.
c),&(sol.
N) ) == s->N )
461 add_linearForm( sol );
471 for( i=1; r[i-1] + 1 == r[
i] && i < s->N; i++ );
473 for( j=0; j<i-1; j++ )
481 for( j=1; j<i-1; j++ )
487 m[i-1]=
pNext(m[i-1]);
493 }
while( stop ==
FALSE );
496 #ifdef NPOLYGON_PRINT 500 #ifdef NPOLYGON_IOSTREAM 501 s <<
"Newton polygon:" << endl;
503 fprintf( stdout,
"Newton polygon:\n" );
506 for(
int i=0;
i<a.
N;
i++ )
510 #ifdef NPOLYGON_IOSTREAM 513 fprintf( stdout,
"\n" );
570 for(
int i=1;
i<
N;
i++ )
591 for(
int i=1;
i<
N;
i++ )
612 for(
int i=1;
i<
N;
i++ )
634 for(
int i=1;
i<
N;
i++ )
const CanonicalForm int s
void copy_deep(const newtonPolygon &)
Rational weight_shift(poly, const ring r) const
Rational weight_shift1(poly, const ring r) const
newtonPolygon & operator=(const newtonPolygon &)
static long p_GetExp(const poly p, const unsigned long iBitmask, const int VarOffset)
get a single variable exponent : the integer VarOffset encodes:
void add_linearForm(const linearForm &)
Rational weight1(poly, const ring r) const
void set(int, int, const K &)
Rational weight(poly, const ring r) const
ostream & operator<<(ostream &s, const spectrum &spec)