matrix = {
const index = new Map(names.map((name, i) => [name, i]))
const matrix = Array.from(index, () => new Array(names.length).fill(0))
for (const {source, target, value} of data) matrix[index.get(source)][index.get(target)] += value
return matrix
}