Moved the final O(n) loop (to compute the alpha matrix) to slice notation and
Cython.

Profiling now seems to spend the majority of time in MKL LAPACK calls when the
data set is at least a few hundred samples.