random.py 504 Bytes
Newer Older
1
2
3
4
5
from .utils import get_func
from .degree import node_degree
from .permute import permute


rusty1s's avatar
rusty1s committed
6
def random_cluster(edge_index, rid=None, perm_edges=True, num_nodes=None):
7
    num_nodes = edge_index.max() + 1 if num_nodes is None else num_nodes
rusty1s's avatar
rusty1s committed
8
    row, col = permute(edge_index, num_nodes, rid, perm_edges)
9
10
11
12
13
14
15
    degree = node_degree(row, num_nodes, out=row.new())

    cluster = edge_index.new(num_nodes).fill_(-1)
    func = get_func('random', cluster)
    func(cluster, row, col, degree)

    return cluster