## Issue

In the calculation of the resistance distance matrix there is a bottleneck in the final step, which is as follows:

```
matrix1[i, j] = matrix2[i, i] - 2*matrix2[i, j] + matrix[j, j]
```

Every algorithm I find parallelizes every step except this one, so right now I just have a double for loop. The matrices are 16000×16000 so this is quite time costly. Is there a way to speed up such an operation?

## Solution

How about:

```
matrix1 = matrix2.diagonal()[:,None] - 2*matrix2 + matrix.diagonal()[None,:]
```

Answered By – Alain T.

Answer Checked By – Willingham (BugsFixing Volunteer)