Just got burned by a silly Matlab gotcha. Suppose you have a diagonal matrix `D`

and you want to compute the inverse square root matrix:

```
Disqrt = diag(1./sqrt(diag(D))
```

But this will be dense!

Instead use

```
Disqrt = diag(sqrt(diag(D).^-1)
```

Or maybe

```
Disqrt = diag(diag(D).^-0.5)
```

Not sure if there’s an accuracy difference (hopefully not).

Tags: matlab