16 # pragma warning (disable: 4786)
17 # pragma warning (disable: 4243)
19 # pragma warning (disable: 4355)
45 std::set <CNormalItemPower*, compareItemPowers >::const_iterator it;
46 std::set <CNormalItemPower*, compareItemPowers >::const_iterator itEnd = src.
mItemPowers.end();
48 for (it = src.
mItemPowers.begin(); it != itEnd; ++it)
53 std::vector<CNormalSum*>::const_iterator it2;
54 std::vector<CNormalSum*>::const_iterator it2End = src.
mSums.end();
56 for (it2 = src.
mSums.begin(); it2 != it2End; ++it2)
67 std::set<CNormalItemPower*, compareItemPowers >::const_iterator it;
68 std::set<CNormalItemPower*, compareItemPowers >::const_iterator itEnd = src.
mItemPowers.end();
70 for (it = src.
mItemPowers.begin(); it != itEnd; ++it)
73 std::vector<CNormalSum*>::const_iterator it2;
74 std::vector<CNormalSum*>::const_iterator it2End = src.
mSums.end();
76 for (it2 = src.
mSums.begin(); it2 != it2End; ++it2)
87 std::set<CNormalItemPower*, compareItemPowers >::const_iterator it;
88 std::set<CNormalItemPower*, compareItemPowers >::const_iterator itEnd =
mItemPowers.end();
93 std::vector<CNormalSum*>::const_iterator it2;
94 std::vector<CNormalSum*>::const_iterator it2End =
mSums.end();
96 for (it2 =
mSums.begin(); it2 != it2End; ++it2)
107 std::set <CNormalItemPower*, compareItemPowers >::iterator it;
108 std::set <CNormalItemPower*, compareItemPowers >::iterator itEnd =
mItemPowers.end();
112 if ((*it)->getItem().areEqual(itemPower.
getItem()))
114 (*it)->setExp((*it)->getExp() > itemPower.
getExp() ? (*it)->getExp() : itemPower.
getExp());
141 std::set<CNormalItemPower*, compareItemPowers >::const_iterator it;
142 std::set<CNormalItemPower*, compareItemPowers >::const_iterator itEnd = product->
getItemPowers().end();
144 for (it = product->
getItemPowers().begin(); it != itEnd; ++it)
154 std::vector<CNormalSum*>::iterator it;
155 std::vector<CNormalSum*>::iterator itEnd =
mSums.end();
157 for (it =
mSums.begin(); it != itEnd; ++it)
166 mSums.push_back(tmp);
178 std::set <CNormalItemPower*, compareItemPowers >::iterator it;
179 std::set <CNormalItemPower*, compareItemPowers >::iterator itEnd =
mItemPowers.end();
183 if ((*it)->getItem().areEqual(itemPower.
getItem()))
187 if (dif <= -1.0E-100)
190 if (fabs(dif) < 1.0E-100)
212 std::set <CNormalItemPower*, compareItemPowers >::const_iterator it, itEnd;
213 std::vector<CNormalSum*>::iterator it2, itEnd2;
226 for (it = pProduct->
getItemPowers().begin(); it != itEnd && result ==
true; ++it)
228 if (
remove(**it) ==
false)
237 itEnd2 =
mSums.end();
240 for (it2 =
mSums.begin(); it2 != itEnd2; ++it2)
282 std::ostringstream os;
291 bool firstFactor =
true;
292 std::set <CNormalItemPower*, compareItemPowers >::const_iterator it;
293 std::set <CNormalItemPower*, compareItemPowers >::const_iterator itEnd = d.
mItemPowers.end();
295 for (it = d.
mItemPowers.begin(); it != itEnd; ++it)
297 if (firstFactor ==
false)
306 std::vector<CNormalSum*>::const_iterator it2;
307 std::vector<CNormalSum*>::const_iterator it2End = d.
mSums.end();
309 for (it2 = d.
mSums.begin(); it2 != it2End; ++it2)
311 if (firstFactor ==
false)
316 os <<
"(" << **it2 <<
")";
329 void CNormalLcm::refresh()
bool remove(const CNormalItemPower &itemPower)
const std::vector< CNormalSum * > & getSums() const
bool add(const CNormalItemPower &itemPower)
std::string toString() const
std::set< CNormalItemPower *, compareItemPowers > mItemPowers
std::ostream & operator<<(std::ostream &os, const CNormalLcm &d)
const std::set< CNormalItemPower *, compareItemPowers > & getItemPowers() const
const C_FLOAT64 & getExp() const
std::vector< CNormalSum * > mSums
CNormalLcm & operator=(const CNormalLcm &src)
const std::set< CNormalProduct *, compareProducts > & getProducts() const
const std::set< CNormalItemPower *, compareItemPowers > & getItemPowers() const