I wonder whether we really need to offer eig, eigvecs and eigfact at the same time. eig and eigvecs are respectively a two- and a one-line wrapper around eigfact.
Also, maybe eigvals! could be replaced with an eigfact! function taking the vector in which to store eigenvectors. This would allow getting rid of eigvals, which is yet another wrapper around eigfact.
The same applies to the svd* family of functions.
A more speculative note: if tuple destructuring was extended to immutables, one could write directly val, vec = eigfact(X). This would offer a perfect replacement for eig.
I wonder whether we really need to offer
eig,eigvecsandeigfactat the same time.eigandeigvecsare respectively a two- and a one-line wrapper aroundeigfact.Also, maybe
eigvals!could be replaced with aneigfact!function taking the vector in which to store eigenvectors. This would allow getting rid ofeigvals, which is yet another wrapper aroundeigfact.The same applies to the
svd*family of functions.A more speculative note: if tuple destructuring was extended to immutables, one could write directly
val, vec = eigfact(X). This would offer a perfect replacement foreig.