clear all
close all

A = mmread('a_shell.mtx');
disp('loaded matrix A');

N = size(A,1);

% for i=1:N
%     
%     B = A(1:i,1:i);
%     
%     C = diag(B);
%     R = sum(abs(B),2) - abs(C);
%     
%     minVal = min(C-R);
%     
%     if minVal<0
%         maxL = eigs(B,1)
%         minL = eigs(B-maxL*speye(size(B)),1) + maxL
%         
%         if minL<0
%             keyboard
%         end
%     end
% end

% 
% gershgoring test
% C = diag(A);
% R = sum(abs(A),2) - abs(C);
% 
% minVal = (C-R);
% [minVal,I] = sort(minVal);
% 
% Nend = find(minVal>0,1);
% 
% for i=1:Nend
%     
%     clc
%     
%     i
%     
%     B = A(I(1:i),I(1:i));
%     
%     maxL = eigs(B,1)
%     minL = eigs(B-maxL*speye(size(B)),1) + maxL
%     
%     if minL<0
%         disp('negative found')
%         keyboard
%     end
% end
% 
% iter = 0;
% while iter<1e2
%     keyboard
%     
%     [V,D] = eigs(A,1);
%     V = sparse(V);
%     R = V./norm(V,2);
%     D
%     
%     keyboard
%     
%     A = A - D*(V*R');
%     
%     iter = iter + 1
%         
% end
% 

B = A-diag(diag(A));
[I,J,s] = find(B);
[maxval,k] = max(s);
I = unique(I);
