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

◆ debug_check() [2/2]

int MonomialIdeal::debug_check ( Nmi_node * p,
const Nmi_node * up ) const
private

Definition at line 524 of file monideal.cpp.

531{
532 Nmi_node *q;
533 // First check the node 'p' itself
534 assert(p != nullptr);
535 assert(p->var >= 0);
536 if (up != nullptr) assert(p->var < up->var);
537 assert(p->header == p);
538 assert(p->tag == Nmi_node::node);
539 assert(p->down() == up);
540 assert(p->left != nullptr);
541 assert(p->right != nullptr);
542
543 // Now loop through each element in left/right chain, checking that
544 // v, e, left, right values are consistent.
545 for (q = p->left; q != p; q = q->left)
546 {
547 assert(q->left != nullptr);
548 assert(q->right != nullptr);
549 assert(q->header == p);
550 assert(q->right->left == q);
551 assert(q->left->right == q);
552 assert(q->var == p->var);
553 assert((q->right == p) || (q->exp < q->right->exp));
554 assert(q->exp >= 0);
555 }
556
557 // Now loop through again, this time descending into nodes
558 int c = 0;
559 for (q = p->right; q != p; q = q->right)
560 if (q->tag == Nmi_node::node)
561 c += debug_check(q->down(), q);
562 else
563 c++;
564 return c;
565}
void debug_check() const
Definition monideal.cpp:567
enum Nmi_node::@355074146072071371146336002330246050056154227161 tag
Nmi_node * header
Definition monideal.hpp:84
Nmi_node * down
Definition monideal.hpp:88
Nmi_node * left
Definition monideal.hpp:82
Nmi_node * right
Definition monideal.hpp:83
int p

References debug_check(), Nmi_node::down, Nmi_node::exp, Nmi_node::header, Nmi_node::left, Nmi_node::node, p, Nmi_node::right, Nmi_node::tag, and Nmi_node::var.

Referenced by debug_check().