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

◆ Find()

template<typename MonomType>
const Triple< MonomType > * BIBasis::JanetTree< MonomType >::Find ( const MonomType & monom) const

Definition at line 333 of file janettree.hpp.

334 {
335 const Triple<MonomType>* triple = 0;
336
337 if (Root)
338 {
340 typename MonomType::Integer degree = monom.Degree();
341 typename MonomType::Integer var = 0;
342 do
343 {
344 if (nodeIterator.GetDegree() != monom[var] && nodeIterator.HasNextDegree())
345 {
346 nodeIterator.StepNextDegree();
347 }
348
349 if (nodeIterator.GetDegree() != monom[var])
350 {
351 break;
352 }
353 else if (nodeIterator.HasNextVariable())
354 {
355 degree -= monom[var];
356 if (!degree)
357 {
358 break;
359 }
360 ++var;
361 nodeIterator.StepNextVariable();
362 }
363 else
364 {
365 triple = nodeIterator.GetTriple();
366 break;
367 }
368 } while(true);
369 }
370 return triple;
371 }

References BIBasis::JanetTree< MonomType >::ConstIterator::GetDegree(), BIBasis::JanetTree< MonomType >::ConstIterator::GetTriple(), BIBasis::JanetTree< MonomType >::ConstIterator::HasNextDegree(), BIBasis::JanetTree< MonomType >::ConstIterator::HasNextVariable(), Root, BIBasis::JanetTree< MonomType >::ConstIterator::StepNextDegree(), and BIBasis::JanetTree< MonomType >::ConstIterator::StepNextVariable().