I am seeing surprisingly large allocations from `spdiagm`

. The compute

times are ok for what I need to do, so perhaps this is a case where large

allocations do not harm. Here’s the story.

I compute the discrete negative Laplacian with homogeneous Dirichlet

boundary conditions on the unit square with an n x n grid.

```
function Lap2d(n)
h=1/(n+1);
maindiag=4*ones(n^2,)/(h*h);
sxdiag=-ones(n^2-1,)/(h*h);
sydiag=-ones(n^2-n,)/(h*h);
for iz=n:n:n^2-1
sxdiag[iz]=0.0;
end
L2d=spdiagm(-n => sydiag, -1 => sxdiag, 0=> maindiag,
1 => sxdiag, n => sydiag);
return L2d
end
```

The sparse matrix should take rougly 5 vectors or 40 n^2 bytes.

Not exactly …

```
julia> n=1000;
julia> @btime Lap2d($n);
129.733 ms (81 allocations: 358.46 MiB)
```

So I need 40 MB to store the matrix and am allocating 9 times that.

Why?

The timings are fast enough for what I need, so performance is fine.