samer@0: % aeig - Arrow for eigenvalue/vector decomposition samer@0: % samer@0: % aeig :: N:natural, I:[[M]->[N]] -> arrow( {[[N,N]]}, {[[N,M]], [[M]]}, empty). samer@0: function o=aeig(N,I) samer@0: J=(1+N)-I; samer@0: o=arr(@eigsI,'sizefn',@(sz){[N,length(I)],[length(I),1]}); samer@0: samer@0: function [V,d]=eigsI(A) samer@0: [V,D]=eig(A.cov); samer@0: V=V(:,J); samer@0: d=diag(D); samer@0: d=d(J); samer@0: end samer@0: end samer@0: samer@0: