3 template<
typename pol,
typename Base,
typename monomial_server>
7 typename pol::const_iterator iter,stockpos=p.end();
11 for(iter=p.begin();iter!=p.end();iter++)
12 if(iter->GetDegree()==
Degree(p))
14 if(iter->GetCoeff()*iter->GetCoeff()>
max) {
15 max=iter->GetCoeff()*iter->GetCoeff();
16 cout<<
"newmax "<<max<<endl;
17 cout<<
" les monomes "<<*iter<<endl;
26 template<
typename pol,
typename Base,
typename monomial_server>
30 typename pol::const_iterator iter,stockpos=p.end();
32 for(iter=p.begin();iter!=p.end();iter++)
33 if(iter->GetDegree()==
Degree(p))
43 template<
typename pol,
typename Base,
typename monomial_server>
47 typename pol::const_iterator iter,stockpos=p.end();
49 for(iter=p.begin();iter!=p.end();iter++)
50 if(iter->GetDegree()==
Degree(p))
52 if(iter->GetCoeff()*iter->GetCoeff()>
max) {
53 max=iter->GetCoeff()*iter->GetCoeff();
65 template<
typename pol,
typename Base,
typename monomial_server>
69 typename pol::const_iterator iter;
70 list<typename pol::monom_t> tmp;
74 for(iter=p.begin();iter!=p.end();iter++)
75 if(iter->GetDegree()==degp)
80 for(
typename list<typename pol::monom_t>::iterator itertmp=tmp.begin();itertmp!=tmp.end();itertmp++)
82 if(
my_ord(*itertmp,m)<0) {m=*itertmp;};
84 cout<<
"monom choisi "<<m<<endl;
90 template<
typename pol,
typename Base,
typename monomial_server>
94 typename pol::const_iterator iter;
95 list<typename pol::monom_t> tmp;
98 for(iter=p.begin();iter!=p.end();iter++)
99 if(iter->GetDegree()==degp)
101 tmp.push_back(*iter);
104 for(
typename list<typename pol::monom_t>::iterator itertmp=tmp.begin();itertmp!=tmp.end();itertmp++)
106 if(
my_ord(*itertmp,m)>0) {m=*itertmp;};
113 template<
typename pol,
typename Base,
typename monomial_server>
117 typename pol::const_iterator iter;
118 list<typename pol::monom_t> tmp;
120 int maxtmpdeg=0,degp=
Degree(p);
121 for(iter=p.begin();iter!=p.end();iter++)
122 if(iter->GetDegree()==degp)
124 tmp.push_back(*iter);
126 for(
typename list<typename pol::monom_t>::iterator itertmp=tmp.begin();
127 itertmp!=tmp.end();itertmp++)
130 for(
int i=0;
i<=
lvar(itertmp->rep);
i++)
132 if(itertmp->GetDegree(
i)>=maxtmpdeg)
134 maxtmpdeg=itertmp->GetDegree(
i);
143 template<
typename pol,
typename Base,
typename monomial_server>
147 static unsigned int compt=0;
154 template<
typename pol,
typename Base,
typename monomial_server>
158 typename pol::const_iterator iter,stockpos=p.begin();
159 int mini=INT_MAX,degp=
Degree(p);
160 for(iter=p.begin();iter!=p.end();iter++)
161 if(iter->GetDegree()==degp)
163 if(mpz_size(mpq_numref(&(iter->GetCoeff().rep())))+
164 mpz_size(mpq_denref(&(iter->GetCoeff().rep())))<mini) {
165 mini=mpz_size(mpq_numref(&(iter->GetCoeff().rep())))+
166 mpz_size(mpq_denref(&(iter->GetCoeff().rep())));
182 template<
typename pol,
typename Base>
187 typename pol::const_iterator iter,stockpos=p.begin();
195 for(iter=p.begin();iter!=p.end();iter++)
196 if(iter->GetDegree()==degp)
197 tmplist.push_back(*iter);
199 for(
typename list<mon>::iterator iterlist=tmplist.begin()
200 ;iterlist!=tmplist.end();iterlist++)
202 if(iterlist->GetCoeff()>maxcoeff)
203 maxcoeff=iterlist->GetCoeff();
204 if(iterlist->GetCoeff()*-1>maxcoeff)
205 maxcoeff=iterlist->GetCoeff()*-1;
209 for(
typename list<mon>::iterator iterlist=tmplist.begin()
210 ;iterlist!=tmplist.end();iterlist++)
212 if(!((iterlist->GetCoeff()>maxcoeff)||
213 (iterlist->GetCoeff()*-1>maxcoeff)))
216 for(iterb=b.
begin();iterb!=b.
end();iterb++)
219 for(
int i=0;
i<iterb->taille1;
i++)
222 for(
int i=0;
i<iterb->taille2;
i++)
227 for(
int i=0;
i<iterb->taille2;
i++)
229 mon m=
lcm(*iterlist,iterb->refuse[
i]);
231 for(
int j=0;
j<iterb->taille2;
j++)
254 template<
typename pol,
typename Base,
typename monomial_server>
260 typename pol::const_iterator iter,stockpos=p.begin();
268 for(iter=p.begin();iter!=p.end();iter++)
269 if(iter->GetDegree()==degp)
270 tmplist.push_back(*iter);
272 for(
typename list<mon>::iterator iterlist=tmplist.begin()
273 ;iterlist!=tmplist.end();iterlist++)
275 if(iterlist->GetCoeff()>maxcoeff)
276 maxcoeff=iterlist->GetCoeff();
277 if(iterlist->GetCoeff()*-1>maxcoeff)
278 maxcoeff=iterlist->GetCoeff()*-1;
282 for(
typename list<mon>::iterator iterlist=tmplist.begin()
283 ;iterlist!=tmplist.end();iterlist++)
285 if(!((iterlist->GetCoeff()>maxcoeff)||
286 (iterlist->GetCoeff()*-1>maxcoeff)))
289 for(iterb=b.
begin();iterb!=b.
end();iterb++)
292 for(
int i=0;
i<iterb->taille1;
i++)
295 for(
int i=0;
i<iterb->taille2;
i++)
300 for(
int i=0;
i<iterb->taille2;
i++)
302 mon m=
lcm(*iterlist,iterb->refuse[
i]);
304 for(
int j=0;
j<iterb->taille2;
j++)
328 template<
typename pol,
typename Base,
typename monomial_server>
342 for(
typename pol::const_iterator iter=p.begin();iter!=p.end();iter++)
343 if(iter->GetDegree()==degp)
344 tmplist.push_back(*iter);
347 cout<<
"Degree(p) "<<degp<<endl;
349 for(
typename list<mon>::iterator iterlist=tmplist.begin()
350 ;iterlist!=tmplist.end();iterlist++)
352 if(iterlist->GetCoeff()>maxcoeff)
353 maxcoeff=iterlist->GetCoeff();
354 if(iterlist->GetCoeff()*-1>maxcoeff)
355 maxcoeff=iterlist->GetCoeff()*-1;
358 for(
typename list<mon>::iterator iterlist=tmplist.begin()
359 ;iterlist!=tmplist.end();iterlist++)
364 for(iterb=b.
begin();iterb!=b.
end();iterb++)
367 for(
int i=0;
i<iterb->taille1;
i++)
370 for(
int i=0;
i<iterb->taille2;
i++)
376 for(
int i=0;
i<iterb->taille2;
i++)
378 mon m=
lcm(*iterlist,iterb->refuse[
i]);
380 for(
int j=0;
j<iterb->taille2;
j++)
399 cout<<
"le pol "<<endl<<p<<endl<<
"le mon, "<<res<<endl;
406 template<
typename pol,
typename Base>
409 typename pol::const_iterator iter,stockpos=p.end();
413 for(iter=p.begin();iter!=p.end();iter++)
414 if(iter->GetDegree()==
Degree(p))
416 if(iter->GetCoeff()*iter->GetCoeff()>
max) {
417 max=iter->GetCoeff()*iter->GetCoeff();
418 cout<<
"newmax "<<max<<endl;
419 cout<<
" les monomes "<<*iter<<endl;
428 template<
typename pol,
typename Base>
431 typename pol::const_iterator iter,stockpos=p.end();
433 for(iter=p.begin();iter!=p.end();iter++)
434 if(iter->GetDegree()==
Degree(p))
444 template<
typename pol,
typename Base>
448 typename pol::const_iterator iter,stockpos=p.end();
450 for(iter=p.begin();iter!=p.end();iter++)
451 if(iter->GetDegree()==
Degree(p))
453 if(iter->GetCoeff()*iter->GetCoeff()>
max) {
454 max=iter->GetCoeff()*iter->GetCoeff();
466 template<
typename pol,
typename Base>
469 typename pol::const_iterator iter;
470 list<typename pol::monom_t> tmp;
473 for(iter=p.begin();iter!=p.end();iter++)
474 if(iter->GetDegree()==degp)
476 tmp.push_back(*iter);
479 for(
typename list<typename pol::monom_t>::iterator itertmp=tmp.begin();itertmp!=tmp.end();itertmp++)
481 if(
my_ord(*itertmp,m)<0) {m=*itertmp;};
489 template<
typename pol,
typename Base>
492 typename pol::const_iterator iter;
493 list<typename pol::monom_t> tmp;
496 for(iter=p.begin();iter!=p.end();iter++)
497 if(iter->GetDegree()==degp)
499 tmp.push_back(*iter);
502 for(
typename list<typename pol::monom_t>::iterator itertmp=tmp.begin();itertmp!=tmp.end();itertmp++)
504 if(
my_ord(*itertmp,m)>0) {m=*itertmp;};
511 template<
typename pol,
typename Base>
514 typename pol::const_iterator iter;
515 list<typename pol::monom_t> tmp;
517 int maxtmpdeg=0,degp=
Degree(p);
518 for(iter=p.begin();iter!=p.end();iter++)
519 if(iter->GetDegree()==degp)
521 tmp.push_back(*iter);
523 for(
typename list<typename pol::monom_t>::iterator itertmp=tmp.begin();itertmp!=tmp.end();itertmp++)
526 for(
int i=0;
i<=
lvar(itertmp->rep);
i++)
528 if(itertmp->GetDegree(
i)>=maxtmpdeg)
530 maxtmpdeg=itertmp->GetDegree(
i);
539 template<
typename pol,
typename Base>
542 static unsigned int compt=0;
549 template<
typename pol,
typename Base>
552 typename pol::const_iterator iter,stockpos=p.begin();
553 int mini=INT_MAX,degp=
Degree(p);
554 for(iter=p.begin();iter!=p.end();iter++)
555 if(iter->GetDegree()==degp)
557 if(mpz_size(mpq_numref(&(iter->GetCoeff().rep())))+
558 mpz_size(mpq_denref(&(iter->GetCoeff().rep())))<mini) {
559 mini=mpz_size(mpq_numref(&(iter->GetCoeff().rep())))+
560 mpz_size(mpq_denref(&(iter->GetCoeff().rep())));
576 template<
typename pol,
typename Base>
580 typename pol::const_iterator iter,stockpos=p.begin();
587 for(iter=p.begin();iter!=p.end();iter++)
588 if(iter->GetDegree()==degp)
589 tmplist.push_back(*iter);
590 for(
typename list<mon>::iterator iterlist=tmplist.begin()
591 ;iterlist!=tmplist.end();iterlist++)
593 for(iterb=b.
begin();iterb!=b.
end();iterb++)
596 for(
int i=0;
i<iterb->taille1;
i++)
599 for(
int i=0;
i<iterb->taille2;
i++)
604 for(
int i=0;
i<iterb->taille2;
i++)
606 mon m=
lcm(*iterlist,iterb->refuse[
i]);
608 for(
int j=0;
j<iterb->taille2;
j++)
636 #endif //ALREADY_choice
mon choice_fall_num(const pol &p, const Base &b, monomial_server &serv)
Definition: choice.hpp:329
pol::monom_t choice_mac(const pol &p, const Base &b, monomial_server &serv)
Definition: choice.hpp:114
#define max(a, b)
Definition: alp_f2c.H:167
int isdivisible(const mon &m1, const mon &m2, int nbvar)
Definition: isdivisible.hpp:5
int lvar(const dynamicexp< X, E > &A)
Definition: dynamicexp.hpp:178
#define LEVELSELECT
Definition: general.h:4
pol::monom_t choice_num(const pol &p, const Base &b, monomial_server &serv)
Definition: choice.hpp:44
int my_ord(const mon &m1, const mon &m2)
Definition: ord.hpp:2
pol::monom_t choice_mix(const pol &p, const Base &b, monomial_server &serv)
Definition: choice.hpp:144
list< predicat >::const_iterator const_iterator
Definition: types.hpp:21
T coeff_t
Definition: pol.hpp:9
int nbvar()
Definition: types.hpp:37
MSKconetypee MSKrealt MSKint32t MSKint32t j
Definition: mosek.h:2421
C coeff_t
Definition: Monom.hpp:26
pol::monom_t choice_grevlex(const pol &p, const Base &b, monomial_server &serv)
Definition: choice.hpp:66
pol::monom_t choice_old(const pol &p, const Base &b, monomial_server &serv)
Definition: choice.hpp:4
Definition: placemon3.hpp:14
mon monom_t
Definition: pol.hpp:8
dynamicexp< X, E >::degree_t Degree(const dynamicexp< X, E > &t)
Definition: dynamicexp.hpp:91
iterator end()
Definition: types.hpp:30
pol::monom_t choice_naif(const pol &p, const Base &b, monomial_server &serv)
Definition: choice.hpp:27
Mon mon
Definition: solver_bb_floating.cpp:136
exponent_t GetDegree() const
Definition: Monom.hpp:70
MSKint32t MSKint32t MSKint32t i
Definition: mosek.h:2278
mon lcm(const mon &m1, const mon &m2)
Definition: corealgo.hpp:43
pol::monom_t choice_dlex(const pol &p, const Base &b, monomial_server &serv)
Definition: choice.hpp:91
iterator begin()
Definition: types.hpp:25
Multivariate monomials.
Definition: Monom.hpp:21
pol::monom_t choice_mpq(const pol &p, const Base &b, monomial_server &serv)
Definition: choice.hpp:155
pol::monom_t choice_fall(const pol &p, const Base &b)
Definition: choice.hpp:183