153 #ifndef BooleMonomial_h_
154 #define BooleMonomial_h_
175 template <
class DDType,
class MonomType>
class CDDOperations;
189 friend class COrderBase;
190 template <
class,
class>
friend class CTermGeneratorBase;
239 std::less<poly_type::navigator>,
251 m_poly(rhs.m_poly) {}
259 m_poly(rhs, ring) { }
263 m_poly(ring.one()) {}
272 exp_type exp()
const;
295 return m_poly.nNodes();
297 return std::distance(m_poly.firstBegin(),m_poly.firstEnd());
308 set_type multiples(
const self&)
const;
345 return m_poly.reducibleBy(rhs); }
346 bool_type reducibleBy(
const var_type& rhs)
const;
349 comp_type compare(
const self&)
const;
352 size_type LCMDeg(
const self&)
const;
355 self& LCMAssign(
const self&);
358 self LCM(
const self&)
const;
361 self& GCDAssign(
const self&);
364 self GCD(
const self&)
const;
374 assert(!m_poly.isConstant());
376 m_poly.navigation().thenBranch()) );
380 var_type firstVariable()
const;
384 assert(!m_poly.isConstant());
399 assert(!m_poly.isZero());
417 inline BoolePolynomial
423 inline BoolePolynomial
441 inline BooleMonomial::bool_type
444 return (lhs.
compare(rhs) == CTypes::less_than);
448 inline BooleMonomial::bool_type
451 return (lhs.
compare(rhs) == CTypes::greater_than);
455 inline BooleMonomial::bool_type
458 return (lhs.
compare(rhs) <= CTypes::less_or_equal_max);
462 inline BooleMonomial::bool_type
465 return (lhs.
compare(rhs) >= CTypes::greater_or_equal_min);
485 BooleMonomial::bool_type
490 inline BoolePolynomial
497 inline BoolePolynomial
504 inline BoolePolynomial
520 inline BoolePolynomial&
536 inline BoolePolynomial
544 inline BoolePolynomial&
551 inline BoolePolynomial
560 inline BoolePolynomial
568 inline BoolePolynomial&
578 #endif // of BooleMonomial_h_