124{
125
126
127
128
129
130
132 {
133 auto f =
reinterpret_cast<const Poly*
>(f1.get_Poly());
134 if (f->numTerms() != 1) return false;
135 auto i = f->cbegin();
136 if (
monoid().is_one(i.monom()))
137 {
139 return true;
140 }
141 return false;
142 }
144 {
145
146 auto f =
reinterpret_cast<const Poly*
>(f1.get_Poly());
147 auto resultf =
new Poly;
149 result = ring_elem(
reinterpret_cast<void *
>(resultf));
150 return true;
151 }
152
153
154 return false;
155}
Polynomial< CoefficientRingType > Poly
void copy(Poly &result, Poly::const_iterator fBegin, Poly::const_iterator fEnd) const
const FreeAlgebra & freeAlgebra() const
const Ring * coefficientRing() const
const M2FreeAlgebra & m2FreeAlgebra() const
const FreeMonoid & monoid() const
virtual ring_elem copy(const ring_elem f) const =0
VALGRIND_MAKE_MEM_DEFINED & result(result)