src/matOptimize/main_helper.cpp
//see whether within radius of root have nodes that have same mutation as root and have changed in previous iteration (or this is the first iteration)
see whether within radius of root have nodes that have same mutation as root and have changed in previous iteration (or this is the first iteration)
see whether within radius of root have nodes that have same mutation as root and have changed in previous iteration ( or this is the first iteration )
static void mark_changed_neighbor(int radius, MAT::Node* root, MAT::Node* exclude) {
    root->to_search=true;
    if (!radius) {
        return;
    }
    if (root->parent&&root->parent!=exclude) {
        mark_changed_neighbor(radius-1, root->parent, root);
    }
    for(auto node:root->children) {
        if(node!=exclude) {
            mark_changed_neighbor(radius-1, node, root);
        }
    }
}
static void mark_changed_neighbor ( int radius , MAT :: Node * root , MAT :: Node * exclude ) { root -> to_search = true ; if ( ! radius ) { return ; } if ( root -> parent && root -> parent != exclude ) { mark_changed_neighbor ( radius - 1 , root -> parent , root ) ; } for ( auto node : root -> children ) { if ( node != exclude ) { mark_changed_neighbor ( radius - 1 , node , root ) ; } } }
see whether within radius of root have nodes that have same mutation as root and have changed in previous iteration (or this is the first iteration)
see whether within radius of root have nodes that have same mutation as root and have changed in previous iteration ( or this is the first iteration )