Rick, excellent tutorial on vectorizing operations. I didn't appreciate the power of using vectorized subscripts, so purely for fun to test it out:

start Dilbert(n);
i = repeat((1:n)`, 1, n);
j = repeat(1:n, n);
a = 1 / ( 1:2*n-1 );
return( shape(a[i+j-1],n,n) );
finish;

H = Dilbert(5);

Please keep on sharing all the good stuff hidden in SAS/IML. Really enjoy reading your blogs.