Does eigen decomposition exist in the library?

I’m probably missing something, but I can’t seem to find a full eigen decomposition in your library, although it exists here on GitHub: https://github.com/deeplearning4j/nd4j/blob/14410087388980c6c25111859a1272418e20ec54/nd4j-backends/nd4j-api-parent/nd4j-api/src/main/java/org/nd4j/linalg/eigen/Eigen.java

This appears to be an official implementation, but I’m not sure because it’s not in the latest version of the API. Can someone clear this up for me?

EDIT: I see that eigenvalues can be calculated, but I’m looking for a full decomposition or at least a separate method that will calculate eigenvectors and not just eigenvalues.

As you can see it does still exist on master, and you can find it in the JavaDoc: Eigen (nd4j-api 1.0.0-beta7 API)

So, yes, it does exist.

Thank you, but all of those methods appear to only return the eigenvalues. Doesn’t eigendecomposition typically include the accompanying vectors?

I’m sorry if I’m just blind or dumb, I may be bad at reading JavaDoc. I’m getting into Java from Python which typically has more verbose documentation. Again I apologize.

In principle the methods I’ve linked give you access to the BLAS methods for eigenvector and eigenvalue computation.

The JavaDoc says that the input matrix will be modified to hold the eigenvectors. So you get two outputs effectively. The return value, which holds eigenvalues and the modification of the input matrix which now holds the eigenvectors.

1 Like