Hi,
I have no interest in pursuing this at the moment.
That's no problem. We have a permanent record here (http://thread.gmane.org/gmane.science.nmr.relax.scm/22044) for this issue. It should be a useful reference for the future.
If numpy should provide a universal function, which is faster, like einsum is a replacement for dot, for multiple dimension, then we can have a look.
We will have to wait for a future version I'm afraid. Probably a very distant future. There doesn't seem to be any developers interested in this problem on the numpy or scipy mailing lists, as far as I can tell.
But I wont use scipy.
This is best. It was just a suggestion for understanding the problem and possible solutions, and more for reading the Scipy code for these functions. I.e. just a learning exercise.
The thing I would like more, is to eliminate the looping when doing the matrix exponential. I have just completed a test/profiling script, which strides through the data. It took it me quite long to grasp the striding thing, but I think it is worth my time to learn how to access data in any possible way. We can gain 1.5 in speed ! :-)
On top of the current gains, this will be quite significant. I can't help you with the striding concept as I'm not too familiar with it. This seems similar to pointer arithmetic in C for accessing matrix data. Is this essentially collapsing the rank-7 [NE, NS, NM, NO, ND, x, y] structure into a rank-3 structure and looping over the first column. This combined with maybe a Pade approximation instead of the much slower eigenvalue decomposition method might be the fastest. Regards, Edward