79 if (
nodes_[ node_id ].parent != node_id ) {
82 return nodes_[ node_id ].parent;
98 if (
nodes_[ parent_node1 ].rank <
nodes_[ parent_node2 ].rank ) {
99 nodes_[ parent_node1 ].parent = parent_node2;
100 ++
nodes_[ parent_node2 ].rank;
102 }
else if (
nodes_[ parent_node1 ].rank >
nodes_[ parent_node2 ].rank ) {
103 nodes_[ parent_node2 ].parent = parent_node1;
104 ++
nodes_[ parent_node1 ].rank;
106 }
else if ( parent_node1 != parent_node2 ) {
107 nodes_[ parent_node1 ].parent = parent_node2;
108 ++
nodes_[ parent_node2 ].rank;
123 if (
nodes_[ ii ].parent == ii )
142 if (
nodes_[ ii ].parent == ii )
143 index_2_ds[ ii ] = ++n_disjoint;
148 ++ds_set_sizes[ index_2_ds[
ds_find( ii ) ] ];
184 std::map< platform::Size, utility::vector1< platform::Size > >
187 std::map< platform::Size, utility::vector1< platform::Size > > r2s;
191 r2s[
ds_find( i ) ].push_back( i );