4 template<
typename typPk,
typename typdump,
typename Base,
9 typedef typename typPk::value_type polyalp;
10 typedef typename polyalp::monom_t
mon;
11 typedef typename typdump::value_type
dumpstruct;
13 typename typPk::iterator iter=Pk.begin();
15 for(;iter!=Pk.end();iter++)
19 for(
typename polyalp::iterator itermon=iter->begin();
20 itermon!=iter->end();itermon++)
23 if (!
IsinB(*itermon,b))
38 tmp+=invconv<polyalp>(ttmp,serv)*
mon(itermon->GetCoeff()/ttmp.ind.GetCoeff());
55 template<
typename T,
typename typdump,
typename Base,
typename monomial_server>
59 typedef typename typdump::value_type::pol_t
pol;
60 typedef typename T::value_type polyalp;
61 typedef typename polyalp::monom_t
mon;
63 typename T::iterator iter=Crochet.begin();
71 for(;iter!=Crochet.end();iter++)
79 std::copy_if(iter->begin(), iter->end(), monared.begin(),
80 [&b](mon &m) {
return !
IsinB(m,b);});
83 for(
typename polyalp::iterator iterpol=iter->begin();
84 iterpol!=iter->end();iterpol++)
86 if (!
IsinB(*iterpol,b))
87 monared.push_back(*iterpol);
92 for(
typename list<mon>::iterator itermon=monared.begin();itermon!=monared.end();itermon++)
101 accumul.
nf=(coeff*)MAC_REV_MALLOC<coeff>(
sizeof(coeff));
104 for(
int j=0;
j<itermon->GetDegree(
i);
j++)
109 tmp=
mult(
i,accumul,dump,b,&exce,sizeex);
110 MAC_REV_FREE<coeff>(accumul.
nf,accumul.
size*
sizeof(coeff));
112 for(
int k=0;
k<sizeex-1;
k++)
114 MAC_REV_FREE<mon>(exce,sizeex*
sizeof(
mon));
116 for(
int k=0;
k<accumul.
size;
k++)
122 result+=tmpmon*accumul.
nf[
k];
124 MAC_REV_FREE<coeff>(accumul.
nf,accumul.
size*
sizeof(coeff));
128 for(
int j=0;
j<itermon->GetDegree(
i);
j++)
133 for (
typename polyalp::iterator iterres=result.begin();
134 iterres!=result.end();iterres++)
136 if (!
IsinB(*iterres,b))
139 tmp.push_back(result);
150 for(
typename polyalp::iterator iterpol=iter->begin();
151 iterpol!=iter->end();iterpol++)
152 if ((itermon->rep)==(iterpol->rep))
154 Coeff=iterpol->GetCoeff();
158 *iter+=result*
mon(Coeff);
160 *iter-=polyalp(
mon((*itermon)*(coeff)(Coeff/itermon->GetCoeff())));
168 #endif //ALREADY_proj3
void int2mon(const int &i, mon &res)
Definition: placemon3.hpp:664
void rewrite(typPk &Pk, const typdump &dump, const Base &b, monomial_server &serv)
Definition: proj3.hpp:6
void proj(T &Crochet, const typdump &dump, const Base &b, monomial_server &serv)
Definition: proj3.hpp:56
void findcorresppol(const mon &m, const typdump &dump, pol &res)
Definition: corealgo.hpp:2031
typpol mult(int i, const typpol &pol, const typdump &dump, const Base &b, mon **exce, int &exsize)
Definition: corealgo.hpp:1077
int nbvar()
Definition: types.hpp:37
void reinit_multiple()
Definition: placemon3.hpp:85
MSKconetypee MSKrealt MSKint32t MSKint32t j
Definition: mosek.h:2421
MSKint32t k
Definition: mosek.h:2713
C coeff_t
Definition: Monom.hpp:26
Definition: placemon3.hpp:14
MPoly< R, O > Coeff(const MPoly< R, O > &P, int i)
Definition: MPolyFunction.hpp:66
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
int Iszero(const Scl< MPQ > &c)
Definition: Iszero.hpp:14
int size
Definition: pol.hpp:10
cont< pol< mon, T > > Crochet(const cont< pol< mon, T > > &P, int k)
Definition: corealgo.hpp:6
#define pol
Definition: pol2ter.hpp:3
T * nf
Definition: pol.hpp:12