4 template<
typename Base,
typename typstock,
typename typdump>
6 const Base &b,
const typdump &dump)
8 typedef typename typstock::value_type
mon;
10 std::set<mon> current;
11 current.insert(
mon(1));
18 std::set<mon> tmpcurrent=current;
24 current.erase(current.begin(),current.end());
27 for(
typename std::set<mon>::iterator iter=tmpcurrent.begin();
28 iter!=tmpcurrent.end();iter++)
30 mon tmpmon=(*iter)*
mon(
i,1);
32 current.insert(tmpmon);
37 tmpcurrent.erase(tmpcurrent.begin(),tmpcurrent.end());
38 for(
typename std::set<mon>::iterator iter=current.begin();
39 iter!=current.end();iter++)
44 tmpcurrent.insert(*iter);
48 for(
typename std::set<mon>::iterator iter=tmpcurrent.begin();
49 iter!=tmpcurrent.end();iter++)
52 stockmon.push_back(*iter);
56 template<
typename Base,
typename typdump,
typename typserv>
59 typedef typename typserv::monom_t
mon;
60 std::list<mon> stockmon;
62 dump.back().moninB.erase(dump.back().moninB.begin(),
63 dump.back().moninB.end());
64 for(
typename std::list<mon>::iterator iter=stockmon.begin()
65 ;iter!=stockmon.end();iter++)
66 dump.back().moninB.push_back(*iter);
73 template<
typename Base,
typename typdump,
typename typserv >
77 typename typdump::reverse_iterator ante=dump.rbegin();
78 std::list<mon> stockmon;
92 std::set<mon> current;
97 for(
typename std::list<mon>::iterator iter=ante->moninB.begin();
98 iter!=ante->moninB.end();iter++)
100 mon tmpmon=(*iter)*
mon(
i,1);
102 current.insert(tmpmon);
106 dump.back().moninB.erase(dump.back().moninB.begin(),
107 dump.back().moninB.end());
110 for(
typename std::set<mon>::iterator iter=current.begin();
111 iter!=current.end();iter++)
117 dump.back().moninB.push_back(*iter);
123 template<
typename Base,
typename typdump,
typename typserv>
126 typedef typename typserv::monom_t
mon;
127 std::list<mon> stockmon;
129 dump.back().moninB.erase(dump.back().moninB.begin(),
130 dump.back().moninB.end());
131 for(
typename std::list<mon>::iterator iter=stockmon.begin()
132 ;iter!=stockmon.end();iter++)
133 dump.back().moninB.push_back(*iter);
139 template<
typename Base,
typename typdump,
typename typserv >
143 typename typdump::reverse_iterator ante=dump.rbegin();
144 std::list<mon> stockmon;
146 if(ante==dump.rend())
158 std::set<mon> current;
163 for(
typename std::list<mon>::iterator iter=ante->moninB.begin();
164 iter!=ante->moninB.end();iter++)
166 mon tmpmon=(*iter)*
mon(
i,1);
168 current.insert(tmpmon);
172 dump.back().moninB.erase(dump.back().moninB.begin(),
173 dump.back().moninB.end());
176 for(
typename std::set<mon>::iterator iter=current.begin();
177 iter!=current.end();iter++)
183 dump.back().moninB.push_back(*iter);
190 template<
typename Base,
typename typdump,
typename typserv>
197 if((
int)dump.back().moninB.size()==
last)
201 std::vector<int> macdec;
203 Macaulay_dec(macdec,dump.back().k,dump.back().moninB.size());
210 last=
nextdim(macdec,dump.back().k);
MSKaccmodee MSKint32t MSKint32t last
Definition: mosek.h:2545
long nextdim(std::vector< int > &coeff_mac, int k)
Definition: macaulay.hpp:45
void nextmon(const Base &b, typdump &dump, typserv &serv)
Definition: gotzman.hpp:74
int nbvar()
Definition: types.hpp:37
int critere_got(const Base &b, typdump &dump, typserv &serv)
Definition: gotzman.hpp:191
MSKint32t k
Definition: mosek.h:2713
void enumeratemon_in_B(typstock &stockmon, int k, const Base &b, const typdump &dump)
Definition: gotzman.hpp:5
int IsinB(const mon &m, const Base &b)
Definition: IsinB3.hpp:68
Mon mon
Definition: solver_bb_floating.cpp:136
MSKint32t MSKint32t MSKint32t i
Definition: mosek.h:2278
void initial_mon(const Base &b, typdump &dump, typserv &serv)
Definition: gotzman.hpp:57
void SetCoeff(const C &c)
Definition: Monom.hpp:68
void Macaulay_dec(std::vector< int > &coeff_mac, int k, int dim)
Definition: macaulay.hpp:32