degree.py 343 Bytes
Newer Older
rusty1s's avatar
rusty1s committed
1
2
3
4
5
import torch

from .new import new


rusty1s's avatar
rusty1s committed
6
def node_degree(index, n, out=None):
rusty1s's avatar
rusty1s committed
7
    if out is None:  # pragma: no cover
rusty1s's avatar
rusty1s committed
8
9
10
11
12
        zero = torch.zeros(n)
    else:
        out.resize_(n) if torch.is_tensor(out) else out.data.resize_(n)
        zero = out.fill_(0)

rusty1s's avatar
rusty1s committed
13
    one = new(zero, index.size(0)).fill_(1)
rusty1s's avatar
rusty1s committed
14
    return zero.scatter_add_(0, index, one)