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

◆ debug_check() [2/2]

template<typename Key>
int ResF4MonomialLookupTableT< Key >::debug_check ( mi_node * p,
const mi_node * up ) const
private

Definition at line 466 of file res-f4-monlookup.cpp.

473{
474 mi_node *q;
475 // First check the node 'p' itself
476 assert(p != NULL);
477 assert(p->var >= 0);
478 if (up != nullptr) assert(p->var < up->var);
479 assert(p->header == p);
480 assert(p->tag == mi_node::node);
481 assert(p->down() == up);
482 assert(p->left != NULL);
483 assert(p->right != NULL);
484
485 // Now loop through each element in left/right chain, checking that
486 // v, e, left, right values are consistent.
487 for (q = p->left; q != p; q = q->left)
488 {
489 assert(q->left != NULL);
490 assert(q->right != NULL);
491 assert(q->header == p);
492 assert(q->right->left == q);
493 assert(q->left->right == q);
494 assert(q->var == p->var);
495 assert((q->right == p) || (q->exp < q->right->exp));
496 assert(q->exp >= 0);
497 }
498
499 // Now loop through again, this time descending into nodes
500 int c = 0;
501 for (q = p->right; q != p; q = q->right)
502 if (q->tag == mi_node::node)
503 c += debug_check(q->down(), q);
504 else
505 c++;
506 return c;
507}

References debug_check(), ResF4MonomialLookupTableT< Key >::mi_node::down, ResF4MonomialLookupTableT< Key >::mi_node::exp, ResF4MonomialLookupTableT< Key >::mi_node::header, ResF4MonomialLookupTableT< Key >::mi_node::left, ResF4MonomialLookupTableT< Key >::mi_node::node, p, ResF4MonomialLookupTableT< Key >::mi_node::right, ResF4MonomialLookupTableT< Key >::mi_node::tag, and ResF4MonomialLookupTableT< Key >::mi_node::var.

Referenced by debug_check(), and debug_check().