24 # pragma warning (disable: 4786)
25 # pragma warning (disable: 4243)
27 # pragma warning (disable: 4355)
54 mpDenominator(new
CNormalSum(*src.mpDenominator)) {}
226 if (fabs(factor) < 1.0E-100)
239 std::set<CNormalItemPower*, compareItemPowers >::const_iterator it = (*
mpDenominator->
getProducts().begin())->getItemPowers().begin();
240 std::set<CNormalItemPower*, compareItemPowers >::const_iterator itEnd = (*
mpDenominator->
getProducts().begin())->getItemPowers().end();
241 std::vector<CNormalItemPower*> tmpV;
247 if (fabs(exp) >= 1.0E-100)
251 if (fabs(exp) >= 1.0E-100)
254 tmpV.push_back(itemPower);
261 std::vector<CNormalItemPower*>::iterator it2 = tmpV.begin();
262 std::vector<CNormalItemPower*>::iterator itEnd2 = tmpV.end();
264 while (it2 != itEnd2)
301 if (fabs(exp) >= 1.0E-100)
307 if ((tmpExp = fabs(itemPower.
getExp() - exp)) >= 1.0E-100)
333 std::set<CNormalFraction*>::const_iterator it;
338 lcm->
add((*it)->getDenominator());
341 std::set<CNormalFraction*>::const_iterator it2;
346 lcm->
add((*it2)->getDenominator());
395 assert(
expand(*lcm) ==
true);
420 std::ostringstream os;
CNormalSum & getNumerator()
bool remove(const CNormalItemPower &itemPower)
bool multiply(const C_FLOAT64 &number)
bool checkForFractions() const
virtual CNormalBase * copy() const
bool checkNumeratorOne() const
bool add(const CNormalItemPower &itemPower)
bool operator<(const CNormalFraction &src) const
bool operator==(const CNormalFraction &rhs) const
bool add(const CNormalProduct &product)
C_FLOAT64 checkFactor(const CNormalItemPower &itemPower) const
virtual ~CNormalFraction()
static CNormalFraction * createUnitFraction()
CNormalFraction & operator=(const CNormalFraction &src)
const std::set< CNormalFraction * > & getFractions() const
bool divide(const CNormalItemPower &itemPower)
CNormalSum & getDenominator()
bool setDenominator(const CNormalSum &denominator)
const C_FLOAT64 & getExp() const
std::ostream & operator<<(std::ostream &os, const CNormalFraction &d)
bool checkDenominatorOne() const
CNormalSum * mpDenominator
bool setNumerator(const CNormalSum &numerator)
virtual std::string toString() const
static CNormalSum * createUnitSum()
const CNormalLcm * findLcm() const
const std::set< CNormalProduct *, compareProducts > & getProducts() const
bool expand(const CNormalLcm &lcm)
bool multiply(const C_FLOAT64 &number)