Can taco find eigenvalues/eigenvectors of tensors?
I want to use taco to construct a tensor algebra equation of the form:
A(n,n) * u(n) = L * u(n)
so that I can solve for eigenvectors of A. Is this possible? Is there a way to change the equation above to achieve this?
For a general algorithm, I don't think it would be as simple as that. Taco is good at regular operations over sparse data. But there is no simple algorithm to directly calculate eigenvalues for general matrices.
Solving for specific special classes of matrix may be possible, see the above link.
For a more general algorithm, you could do the messier parts in normal C or C++ code, and call Taco-generated functions for some of the lowlevel operations. For example, you could implement the QR algorithm, with pieces like matrix multiply and Householder reflection implemented in Taco. The outer loop, convergence check, and sorting the results by abs(λ) would make more sense in normal C or C++ code.
It's also possible that the output would be much bigger (less sparse) than the input.