1 #ifndef ALREADY_countmon
2 #define ALREADY_countmon
11 for(
int i=m;
i>m-n;
i--)
18 template<
typename mon>
22 std::list<mon> ppcm,stock;
23 for(
int i=0;
i<nbmon;
i++)
24 stock.push_back(ideal[
i]);
25 for (
typename std::list<mon>::iterator iterstock=stock.begin();
26 iterstock!=stock.end();iterstock++)
27 for(
typename std::list<mon>::iterator iter2=stock.begin();
28 iter2!=stock.end();iter2++)
29 if (isdivisible<mon>(*iterstock,*iter2,nbvar)
30 && !(iterstock==iter2))
33 for(
typename std::list<mon>::iterator iter=stock.begin()
34 ;iter!=stock.end();iter++)
35 res-=
binomial(nbvar+d-iter->GetDegree()-1,d-iter->GetDegree());
37 for(
int i=0;i<nbvar && stock.size()>1;i++)
40 for(
typename std::list<mon>::iterator iter1=stock.begin();
41 iter1!=stock.end();iter1++)
42 for(
typename std::list<mon>::iterator iter2=(++iter1)--;
43 iter2!=stock.end();iter2++)
45 ppcm.push_back(
lcm(*iter1,*iter2));
50 for (
typename std::list<mon>::iterator iterstock=stock.begin();
51 iterstock!=stock.end();iterstock++)
52 for(
typename std::list<mon>::iterator iter2=stock.begin();
53 iter2!=stock.end();iter2++)
54 if (isdivisible<mon>(*iterstock,*iter2,nbvar)
55 && !(iterstock==iter2))
58 for(
typename std::list<mon>::iterator iterstock=stock.begin();
59 iterstock!=stock.end();iterstock++)
61 ,d-iterstock->GetDegree());
63 ppcm.erase(ppcm.begin(),ppcm.end());
68 template<
typename Base>
75 mon *tmp=(
mon*)MAC_REV_MALLOC<mon>(
76 (iter->taille1+iter->taille2)*
sizeof(
mon));
79 for(
int i=0;
i<iter->taille1;
i++)
80 tmp[count++]=iter->accept[
i];
83 tmp[count++]=iter->refuse[
i];
86 MAC_REV_FREE<mon>(tmp,(iter->taille1+iter->taille2)*
sizeof(
mon));
88 if (res<0) {cout<<
"merde "<<res<<endl;exit(-1);};
92 template<
typename Base>
95 cout<<
"Binddeg "<<d<<
" "<<
Bindeg(b,d)<<endl;
106 if (tmp<0) {cout<<
"exitcrit"<<endl;
return -1;}
107 if (tmp==0) {cout<<
"exitcrite"<<endl;
return j-1;}
109 cout<<
"exitcrit"<<endl;
113 #endif //ALREADY_countmon
QQ countmon(mon *ideal, int d, int nbvar, int nbmon)
Definition: countmon.hpp:19
list< predicat >::const_iterator const_iterator
Definition: types.hpp:21
QQ binomial(int m, int n)
Definition: countmon.hpp:6
int nbvar()
Definition: types.hpp:37
int critere(const Base &b, int d)
Definition: countmon.hpp:93
int sign(const Scl< T > &b)
Definition: BC.hpp:307
MSKconetypee MSKrealt MSKint32t MSKint32t j
Definition: mosek.h:2421
QQ Bindeg(const Base &b, int d)
Definition: countmon.hpp:69
iterator end()
Definition: types.hpp:30
Mon mon
Definition: solver_bb_floating.cpp:136
MSKint32t MSKint32t MSKint32t i
Definition: mosek.h:2278
mon lcm(const mon &m1, const mon &m2)
Definition: corealgo.hpp:43
iterator begin()
Definition: types.hpp:25
Multivariate monomials.
Definition: Monom.hpp:21