51 IndexVector& descendants, IndexVector& relax_end) {
54 internal::treePostorder(StorageIndex(n), et, post);
55 IndexVector inv_post(n + 1);
56 for (StorageIndex i = 0; i < n + 1; ++i) inv_post(post(i)) = i;
60 IndexVector et_save(n + 1);
61 for (Index i = 0; i < n; ++i) {
62 iwork(post(i)) = post(et(i));
71 for (j = 0; j < n; j++) {
74 descendants(parent) += descendants(j) + 1;
83 while (parent != n && descendants(parent) < relax_columns) {
89 for (Index i = snode_start; i <= j; ++i) k = (std::min)(k, inv_post(i));
91 if ((l - k) == (j - snode_start))
96 for (Index i = snode_start; i <= j; ++i) {
98 if (descendants(i) == 0) {
105 while (descendants(j) != 0 && j < n) j++;