Macaulay2 Engine
Loading...
Searching...
No Matches

◆ FindDivisor()

template<typename MonomType>
const Polynom< MonomType > * BIBasis::BooleanInvolutiveBasis< MonomType >::FindDivisor ( const Polynom< MonomType > * polynom,
const std::list< Polynom< MonomType > * > & set,
bool toGroebner ) const
private

Definition at line 284 of file involutive.hpp.

287 {
288 if (!polynom || polynom->IsZero())
289 {
290 return 0;
291 }
292
294 const MonomType& plm = polynom->Lm();
295
296 while (it != setEnd)
297 {
298 if (toGroebner && plm.IsDivisibleBy((**it).Lm()))
299 {
300 return *it;
301 }
302 else if (!toGroebner && plm.IsPommaretDivisibleBy((**it).Lm()))
303 {
304 return *it;
305 }
306 ++it;
307 }
308
309 return 0;
310 }

References BIBasis::Polynom< MonomType >::IsZero(), and BIBasis::Polynom< MonomType >::Lm().

Referenced by Reduce().