Syprik - I'm curious what happens if you run your SP500 matrices at a higher error tolerance. For instance, if you're using qinv, you could try running qinv(A, .01) instead of qinv(A) to override the default tolerance of .001.
I see a 1-2 order of magnitude speedup with this change on some...