Borderbasix

choice.hpp
Go to the documentation of this file.
1 #ifndef ALREADY_choice
2 #define ALREADY_choice
3 template<typename pol,typename Base, typename monomial_server>
4 typename pol::monom_t choice_old(const pol & p,const Base &b,
5  monomial_server &serv)
6 {
7  typename pol::const_iterator iter,stockpos=p.end();
8  typename pol::coeff_t max=0;
9  static int tmp=0;
10  if (tmp<2) {return typename pol::monom_t(tmp++,2);};
11  for(iter=p.begin();iter!=p.end();iter++)
12  if(iter->GetDegree()==Degree(p))
13  {
14  if(iter->GetCoeff()*iter->GetCoeff()>max) {
15  max=iter->GetCoeff()*iter->GetCoeff();
16  cout<<"newmax "<<max<<endl;
17  cout<<" les monomes "<<*iter<<endl;
18  stockpos=iter;
19  }
20  }
21  //break;
22  //return *iter;
23  return *stockpos;
24 }
25 
26 template<typename pol,typename Base, typename monomial_server>
27 typename pol::monom_t choice_naif(const pol & p,const Base &b,
28  monomial_server &serv)
29 {
30  typename pol::const_iterator iter,stockpos=p.end();
31  typename pol::coeff_t max(0);
32  for(iter=p.begin();iter!=p.end();iter++)
33  if(iter->GetDegree()==Degree(p))
34  {
35  stockpos=iter;
36  break;
37  }
38  //break;
39  //return *iter;
40  return *stockpos;
41 }
42 
43 template<typename pol,typename Base, typename monomial_server>
44 typename pol::monom_t choice_num(const pol & p,const Base &b,
45  monomial_server &serv)
46 {
47  typename pol::const_iterator iter,stockpos=p.end();
48  typename pol::coeff_t max(0);
49  for(iter=p.begin();iter!=p.end();iter++)
50  if(iter->GetDegree()==Degree(p))
51  {
52  if(iter->GetCoeff()*iter->GetCoeff()>max) {
53  max=iter->GetCoeff()*iter->GetCoeff();
54  //cout<<"newmax "<<max<<endl;
55  //cout<<" les monomes "<<*iter<<endl;
56  stockpos=iter;
57  }
58  }
59  //break;
60  //return *iter;
61  return *stockpos;
62 }
63 
64 
65 template<typename pol,typename Base, typename monomial_server>
66 typename pol::monom_t choice_grevlex(const pol & p,const Base &b,
67  monomial_server &serv)
68 {
69  typename pol::const_iterator iter;//
70  list<typename pol::monom_t> tmp;
71  typename pol::monom_t m;
72  int degp=Degree(p);
73  cout<<"p"<<p;
74  for(iter=p.begin();iter!=p.end();iter++)
75  if(iter->GetDegree()==degp)
76  {
77  tmp.push_back(*iter);
78  }
79  m=tmp.front();
80  for(typename list<typename pol::monom_t>::iterator itertmp=tmp.begin();itertmp!=tmp.end();itertmp++)
81  {
82  if(my_ord(*itertmp,m)<0) {m=*itertmp;};
83  }
84  cout<<"monom choisi "<<m<<endl;
85  return m;
86 }
87 
88 
89 
90 template<typename pol,typename Base, typename monomial_server>
91 typename pol::monom_t choice_dlex(const pol & p,const Base &b,
92  monomial_server &serv)
93 {
94  typename pol::const_iterator iter;//
95  list<typename pol::monom_t> tmp;
96  typename pol::monom_t m;
97  int degp=Degree(p);
98  for(iter=p.begin();iter!=p.end();iter++)
99  if(iter->GetDegree()==degp)
100  {
101  tmp.push_back(*iter);
102  }
103  m=tmp.front();
104  for(typename list<typename pol::monom_t>::iterator itertmp=tmp.begin();itertmp!=tmp.end();itertmp++)
105  {
106  if(my_ord(*itertmp,m)>0) {m=*itertmp;};
107  }
108  return m;
109 }
110 
111 
112 
113 template<typename pol,typename Base, typename monomial_server>
114 typename pol::monom_t choice_mac(const pol & p,const Base &b,
115  monomial_server &serv)
116 {
117  typename pol::const_iterator iter;//
118  list<typename pol::monom_t> tmp;
119  typename pol::monom_t tmpmon;
120  int maxtmpdeg=0,degp=Degree(p);
121  for(iter=p.begin();iter!=p.end();iter++)
122  if(iter->GetDegree()==degp)
123  {
124  tmp.push_back(*iter);
125  }
126  for(typename list<typename pol::monom_t>::iterator itertmp=tmp.begin();
127  itertmp!=tmp.end();itertmp++)
128  {
129  //cout<<"monomes regarde "<<*itertmp<<" Lavr "<<lvar(itertmp->rep)<<endl;
130  for(int i=0;i<=lvar(itertmp->rep);i++)
131  {
132  if(itertmp->GetDegree(i)>=maxtmpdeg)
133  {
134  maxtmpdeg=itertmp->GetDegree(i);
135  tmpmon=*itertmp;
136  }
137  }
138  }
139  return tmpmon;
140 }
141 
142 
143 template<typename pol,typename Base, typename monomial_server>
144 typename pol::monom_t choice_mix(const pol & p,const Base &b,
145  monomial_server &serv)
146 {
147  static unsigned int compt=0;
148  compt++;
149  if((compt/3)%2) return choice_grevlex(p,b);
150  return choice_mac(p,b);
151 }
152 
153 #if 1
154 template<typename pol,typename Base, typename monomial_server>
155 typename pol::monom_t choice_mpq(const pol & p,const Base &b,
156  monomial_server &serv)
157 {
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)
162  {
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())));
167  //cout<<"newmax "<<max<<endl;
168  //cout<<" les monomes "<<*iter<<endl;
169  stockpos=iter;
170  }
171  }
172  //break;
173  //return *iter;
174  return *stockpos;
175 }
176 
177 #endif
178 
179 
180 
181 #if 1
182 template<typename pol,typename Base>
183 typename pol::monom_t choice_fall(const pol & p,const Base &b)
184 {
185  typedef typename pol::monom_t mon;
186  typedef typename pol::monom_t mon;
187  typename pol::const_iterator iter,stockpos=p.begin();
188  int maxi=-1;
189  typename mon::coeff_t maxcoeff=0;
190 mon res=choice_mac(p,b);
191  return res;
192  typename Base::const_iterator iterb;
193  list<mon> tmplist;
194  int degp=Degree(p);
195  for(iter=p.begin();iter!=p.end();iter++)
196  if(iter->GetDegree()==degp)
197  tmplist.push_back(*iter);
198 
199  for(typename list<mon>::iterator iterlist=tmplist.begin()
200  ;iterlist!=tmplist.end();iterlist++)
201  {
202  if(iterlist->GetCoeff()>maxcoeff)
203  maxcoeff=iterlist->GetCoeff();
204  if(iterlist->GetCoeff()*-1>maxcoeff)
205  maxcoeff=iterlist->GetCoeff()*-1;
206 
207  }
208 
209  for(typename list<mon>::iterator iterlist=tmplist.begin()
210  ;iterlist!=tmplist.end();iterlist++)
211  {
212  if(!((iterlist->GetCoeff()>maxcoeff)||
213  (iterlist->GetCoeff()*-1>maxcoeff)))
214  continue;
215 
216  for(iterb=b.begin();iterb!=b.end();iterb++)
217  {
218  int isgood=0;
219  for(int i=0;i<iterb->taille1;i++)
220  if(isdivisible(iterb->accept[i],*iterlist,b))
221  {isgood=1;break;}
222  for(int i=0;i<iterb->taille2;i++)
223  if(isdivisible(iterb->refuse[i],*iterlist,b))
224  {isgood=0;break;}
225  if(isgood)
226  {
227  for(int i=0;i<iterb->taille2;i++)
228  {
229  mon m=lcm(*iterlist,iterb->refuse[i]);
230  int dist=0;
231  for(int j=0;j<iterb->taille2;j++)
232  if ((j!=i) && (isdivisible(iterb->refuse[j],m,b)))
233  isgood=0;
234  if(isgood)
235  {
236 
237  for(int j=0;j<b.nbvar();j++)
238  if(m.GetDegree(j)>iterb->refuse[i].GetDegree(j))
239  dist+=m.GetDegree(j)-iterb->refuse[i].GetDegree(j);
240  if(dist>maxi)
241  {
242  res=*iterlist;
243  maxi=dist;
244  }
245  }
246  }
247  }
248 
249  }
250  }
251  // cout<<"le pol "<<endl<<p<<endl<<"le mon, "<<res<<endl;
252  return res;
253 }
254 template<typename pol,typename Base, typename monomial_server>
255 typename pol::monom_t choice_fall(const pol & p,const Base &b,
256  monomial_server &serv)
257 {
258  typedef typename pol::monom_t mon;
259  typedef typename pol::monom_t mon;
260  typename pol::const_iterator iter,stockpos=p.begin();
261  int maxi=-1;
262  typename mon::coeff_t maxcoeff=0;
263 mon res=choice_mac(p,b,serv);
264  return res;
265  typename Base::const_iterator iterb;
266  list<mon> tmplist;
267  int degp=Degree(p);
268  for(iter=p.begin();iter!=p.end();iter++)
269  if(iter->GetDegree()==degp)
270  tmplist.push_back(*iter);
271 
272  for(typename list<mon>::iterator iterlist=tmplist.begin()
273  ;iterlist!=tmplist.end();iterlist++)
274  {
275  if(iterlist->GetCoeff()>maxcoeff)
276  maxcoeff=iterlist->GetCoeff();
277  if(iterlist->GetCoeff()*-1>maxcoeff)
278  maxcoeff=iterlist->GetCoeff()*-1;
279 
280  }
281 
282  for(typename list<mon>::iterator iterlist=tmplist.begin()
283  ;iterlist!=tmplist.end();iterlist++)
284  {
285  if(!((iterlist->GetCoeff()>maxcoeff)||
286  (iterlist->GetCoeff()*-1>maxcoeff)))
287  continue;
288 
289  for(iterb=b.begin();iterb!=b.end();iterb++)
290  {
291  int isgood=0;
292  for(int i=0;i<iterb->taille1;i++)
293  if(isdivisible(iterb->accept[i],*iterlist,b))
294  {isgood=1;break;}
295  for(int i=0;i<iterb->taille2;i++)
296  if(isdivisible(iterb->refuse[i],*iterlist,b))
297  {isgood=0;break;}
298  if(isgood)
299  {
300  for(int i=0;i<iterb->taille2;i++)
301  {
302  mon m=lcm(*iterlist,iterb->refuse[i]);
303  int dist=0;
304  for(int j=0;j<iterb->taille2;j++)
305  if ((j!=i) && (isdivisible(iterb->refuse[j],m,b)))
306  isgood=0;
307  if(isgood)
308  {
309 
310  for(int j=0;j<b.nbvar();j++)
311  if(m.GetDegree(j)>iterb->refuse[i].GetDegree(j))
312  dist+=m.GetDegree(j)-iterb->refuse[i].GetDegree(j);
313  if(dist>maxi)
314  {
315  res=*iterlist;
316  maxi=dist;
317  }
318  }
319  }
320  }
321 
322  }
323  }
324  // cout<<"le pol "<<endl<<p<<endl<<"le mon, "<<res<<endl;
325  return res;
326 }
327 #if 1
328 template<typename pol,typename Base, typename monomial_server>
329 mon choice_fall_num(const pol & p, const Base &b, monomial_server &serv)
330 {
331  int maxi=-1;
332  mon tmpmon;
333  mon stockmon;
334  mon res=choice_mac(p,b,serv);
335  typename Base::const_iterator iterb;
336  list<mon> tmplist;
337  int degp=Degree(p);
338  typename mon::coeff_t maxcoeff=0;
339 // typename Base::const_iterator iterb;
340 // list<mon> tmplist;
341 // int degp=Degree(p);
342  for(typename pol::const_iterator iter=p.begin();iter!=p.end();iter++)
343  if(iter->GetDegree()==degp)
344  tmplist.push_back(*iter);
345 
346 #ifdef DEB
347  cout<<"Degree(p) "<<degp<<endl;
348 #endif
349  for(typename list<mon>::iterator iterlist=tmplist.begin()
350  ;iterlist!=tmplist.end();iterlist++)
351  {
352  if(iterlist->GetCoeff()>maxcoeff)
353  maxcoeff=iterlist->GetCoeff();
354  if(iterlist->GetCoeff()*-1>maxcoeff)
355  maxcoeff=iterlist->GetCoeff()*-1;
356 
357  }
358  for(typename list<mon>::iterator iterlist=tmplist.begin()
359  ;iterlist!=tmplist.end();iterlist++)
360  {
361  if(!((iterlist->GetCoeff()>maxcoeff*LEVELSELECT)||
362  (iterlist->GetCoeff()*-1>maxcoeff*LEVELSELECT)))
363  continue;
364  for(iterb=b.begin();iterb!=b.end();iterb++)
365  {
366  int isgood=0;
367  for(int i=0;i<iterb->taille1;i++)
368  if(isdivisible(iterb->accept[i],*iterlist,b))
369  {isgood=1;break;}
370  for(int i=0;i<iterb->taille2;i++)
371  if(isdivisible(iterb->refuse[i],*iterlist,b))
372  {isgood=0;break;}
373  if(isgood)
374  {
375 
376  for(int i=0;i<iterb->taille2;i++)
377  {
378  mon m=lcm(*iterlist,iterb->refuse[i]);
379  int dist=0;
380  for(int j=0;j<iterb->taille2;j++)
381  if ((j!=i) && (isdivisible(iterb->refuse[j],m,b)))
382  isgood=0;
383  if(isgood)
384  {
385  for(int j=0;j<b.nbvar();j++)
386  if(m.GetDegree(j)>iterb->refuse[i].GetDegree(j))
387  dist+=m.GetDegree(j)-iterb->refuse[i].GetDegree(j);
388  if(dist>maxi)
389  {
390  res=*iterlist;
391  maxi=dist;
392  }
393  }
394  }
395  }
396 
397  }
398  }
399  cout<<"le pol "<<endl<<p<<endl<<"le mon, "<<res<<endl;
400  return res;
401 }
402 #endif
403 #endif
404 
405 #ifdef DENSE
406 template<typename pol,typename Base>
407 typename pol::monom_t choice_old(const pol & p,const Base &b)
408 {
409  typename pol::const_iterator iter,stockpos=p.end();
410  typename pol::coeff_t max=0;
411  static int tmp=0;
412  if (tmp<2) {return typename pol::monom_t(tmp++,2);};
413  for(iter=p.begin();iter!=p.end();iter++)
414  if(iter->GetDegree()==Degree(p))
415  {
416  if(iter->GetCoeff()*iter->GetCoeff()>max) {
417  max=iter->GetCoeff()*iter->GetCoeff();
418  cout<<"newmax "<<max<<endl;
419  cout<<" les monomes "<<*iter<<endl;
420  stockpos=iter;
421  }
422  }
423  //break;
424  //return *iter;
425  return *stockpos;
426 }
427 
428 template<typename pol,typename Base>
429 typename pol::monom_t choice_naif(const pol & p,const Base &b)
430 {
431  typename pol::const_iterator iter,stockpos=p.end();
432  typename pol::coeff_t max(0);
433  for(iter=p.begin();iter!=p.end();iter++)
434  if(iter->GetDegree()==Degree(p))
435  {
436  stockpos=iter;
437  break;
438  }
439  //break;
440  //return *iter;
441  return *stockpos;
442 }
443 
444 template<typename pol,typename Base>
445 typename pol::monom_t choice_num(const pol & p,const Base &b)
446 
447 {
448  typename pol::const_iterator iter,stockpos=p.end();
449  typename pol::coeff_t max(0);
450  for(iter=p.begin();iter!=p.end();iter++)
451  if(iter->GetDegree()==Degree(p))
452  {
453  if(iter->GetCoeff()*iter->GetCoeff()>max) {
454  max=iter->GetCoeff()*iter->GetCoeff();
455  //cout<<"newmax "<<max<<endl;
456  //cout<<" les monomes "<<*iter<<endl;
457  stockpos=iter;
458  }
459  }
460  //break;
461  //return *iter;
462  return *stockpos;
463 }
464 
465 
466 template<typename pol,typename Base>
467 typename pol::monom_t choice_grevlex(const pol & p,const Base &b)
468 {
469  typename pol::const_iterator iter;//
470  list<typename pol::monom_t> tmp;
471  typename pol::monom_t m;
472  int degp=Degree(p);
473  for(iter=p.begin();iter!=p.end();iter++)
474  if(iter->GetDegree()==degp)
475  {
476  tmp.push_back(*iter);
477  }
478  m=tmp.front();
479  for(typename list<typename pol::monom_t>::iterator itertmp=tmp.begin();itertmp!=tmp.end();itertmp++)
480  {
481  if(my_ord(*itertmp,m)<0) {m=*itertmp;};
482  }
483  //cout<<"monom choisi "<<m<<endl;
484  return m;
485 }
486 
487 
488 
489 template<typename pol,typename Base>
490 typename pol::monom_t choice_dlex(const pol & p,const Base &b)
491 {
492  typename pol::const_iterator iter;//
493  list<typename pol::monom_t> tmp;
494  typename pol::monom_t m;
495  int degp=Degree(p);
496  for(iter=p.begin();iter!=p.end();iter++)
497  if(iter->GetDegree()==degp)
498  {
499  tmp.push_back(*iter);
500  }
501  m=tmp.front();
502  for(typename list<typename pol::monom_t>::iterator itertmp=tmp.begin();itertmp!=tmp.end();itertmp++)
503  {
504  if(my_ord(*itertmp,m)>0) {m=*itertmp;};
505  }
506  return m;
507 }
508 
509 
510 
511 template<typename pol,typename Base>
512 typename pol::monom_t choice_mac(const pol & p,const Base &b)
513 {
514  typename pol::const_iterator iter;//
515  list<typename pol::monom_t> tmp;
516  typename pol::monom_t tmpmon;
517  int maxtmpdeg=0,degp=Degree(p);
518  for(iter=p.begin();iter!=p.end();iter++)
519  if(iter->GetDegree()==degp)
520  {
521  tmp.push_back(*iter);
522  }
523  for(typename list<typename pol::monom_t>::iterator itertmp=tmp.begin();itertmp!=tmp.end();itertmp++)
524  {
525  //cout<<"monomes regarde "<<*itertmp<<" Lavr "<<lvar(itertmp->rep)<<endl;
526  for(int i=0;i<=lvar(itertmp->rep);i++)
527  {
528  if(itertmp->GetDegree(i)>=maxtmpdeg)
529  {
530  maxtmpdeg=itertmp->GetDegree(i);
531  tmpmon=*itertmp;
532  }
533  }
534  }
535  return tmpmon;
536 }
537 
538 
539 template<typename pol,typename Base>
540 typename pol::monom_t choice_mix(const pol & p,const Base &b)
541 {
542  static unsigned int compt=0;
543  compt++;
544  if((compt/3)%2) return choice_grevlex(p,b);
545  return choice_mac(p,b);
546 }
547 
548 #if 1
549 template<typename pol,typename Base>
550 typename pol::monom_t choice_mpq(const pol & p,const Base &b)
551 {
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)
556  {
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())));
561  //cout<<"newmax "<<max<<endl;
562  //cout<<" les monomes "<<*iter<<endl;
563  stockpos=iter;
564  }
565  }
566  //break;
567  //return *iter;
568  return *stockpos;
569 }
570 
571 #endif
572 
573 
574 
575 #if 1
576 template<typename pol,typename Base>
577 typename pol::monom_t choice_fall(const pol & p,const Base &b)
578 {
579  typedef typename pol::monom_t mon;
580  typename pol::const_iterator iter,stockpos=p.begin();
581  int maxi=-1;
582  mon res=choice_mac(p,b);
583  return res;
584  typename Base::const_iterator iterb;
585  list<mon> tmplist;
586  int degp=Degree(p);
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++)
592  {
593  for(iterb=b.begin();iterb!=b.end();iterb++)
594  {
595  int isgood=0;
596  for(int i=0;i<iterb->taille1;i++)
597  if(isdivisible(iterb->accept[i],*iterlist,b))
598  {isgood=1;break;}
599  for(int i=0;i<iterb->taille2;i++)
600  if(isdivisible(iterb->refuse[i],*iterlist,b))
601  {isgood=0;break;}
602  if(isgood)
603  {
604  for(int i=0;i<iterb->taille2;i++)
605  {
606  mon m=lcm(*iterlist,iterb->refuse[i]);
607  int dist=0;
608  for(int j=0;j<iterb->taille2;j++)
609  if ((j!=i) && (isdivisible(iterb->refuse[j],m,b)))
610  isgood=0;
611  if(isgood)
612  {
613 
614  for(int j=0;j<b.nbvar();j++)
615  if(m.GetDegree(j)>iterb->refuse[i].GetDegree(j))
616  dist+=m.GetDegree(j)-iterb->refuse[i].GetDegree(j);
617  if(dist>maxi)
618  {
619  res=*iterlist;
620  maxi=dist;
621  }
622  }
623  }
624  }
625 
626  }
627  }
628  // cout<<"le pol "<<endl<<p<<endl<<"le mon, "<<res<<endl;
629  return res;
630 }
631 
632 #endif
633 
634 #endif
635 
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
Definition: pol.hpp:6
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
Definition: types.hpp:14
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
Home  |  Download & InstallContributions