The code we use for eigenvalue/eigenvector computation is ancient and I have no idea how it works. I feel we can do better or at least if someone knew what they were doing could refactor the monster algorithm. I believe the code was written in the PHP 4 days.
We've decided to remove Eigendecomposition from Tensor PHP in the next major release. The algorithm is just too gnarly and the extension using OpenBLAS is much faster anyways.
The code we use for eigenvalue/eigenvector computation is ancient and I have no idea how it works. I feel we can do better or at least if someone knew what they were doing could refactor the monster algorithm. I believe the code was written in the PHP 4 days.
Here's what we're working with currently
https://github.com/RubixML/Tensor/blob/master/lib/JAMA/EigenvalueDecomposition.php