in utils.py [0:0]
def de_plus_node_labeling(adj, src, dst, max_dist=100):
# Distance Encoding Plus. When computing distance to src, temporarily mask dst;
# when computing distance to dst, temporarily mask src. Essentially the same as DRNL.
src, dst = (dst, src) if src > dst else (src, dst)
idx = list(range(src)) + list(range(src + 1, adj.shape[0]))
adj_wo_src = adj[idx, :][:, idx]
idx = list(range(dst)) + list(range(dst + 1, adj.shape[0]))
adj_wo_dst = adj[idx, :][:, idx]
dist2src = shortest_path(adj_wo_dst, directed=False, unweighted=True, indices=src)
dist2src = np.insert(dist2src, dst, 0, axis=0)
dist2src = torch.from_numpy(dist2src)
dist2dst = shortest_path(adj_wo_src, directed=False, unweighted=True, indices=dst-1)
dist2dst = np.insert(dist2dst, src, 0, axis=0)
dist2dst = torch.from_numpy(dist2dst)
dist = torch.cat([dist2src.view(-1, 1), dist2dst.view(-1, 1)], 1)
dist[dist > max_dist] = max_dist
dist[torch.isnan(dist)] = max_dist + 1
return dist.to(torch.long)