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

◆ find_one_divisor1()

template<typename Key>
bool F4MonomialLookupTableT< Key >::find_one_divisor1 ( mi_node * mi,
const_ntuple_monomial exp,
Key & result_k ) const
private

Definition at line 157 of file f4-monlookup.cpp.

161{
162 if (mi == nullptr) return false;
163
164 mi_node *p = mi;
165
166 for (;;)
167 {
168 p = p->right;
169
170 if (p == p->header)
171 {
172 if ((p = p->down()) == nullptr) return false;
173 continue;
174 }
175
176 if (p->exp > exp[p->var])
177 {
178 if ((p = p->header->down()) == nullptr) return false;
179 continue;
180 }
181
182 if (p->tag == mi_node::leaf)
183 {
184 result_k = p->key();
185 return true;
186 }
187
188 p = p->down();
189 }
190}

References F4MonomialLookupTableT< Key >::mi_node::leaf, and p.

Referenced by find_one_divisor_packed(), and find_one_divisor_vp().