lazydroid/redsvd

Wrong eigen values and vectors of a sparse symmetric matrix

Opened this issue · 0 comments

What steps will reproduce the problem?
1. ./RedSVD.exe -i ip.mat -o op -r 2 -m SymEigen -f sparse

2. cat ip.mat
0:1 3:0.5
1:1
2:1
0:0.5 3:1


What is the expected output? What do you see instead?
Expected: since the matrix is sparse and there are rows with just 1 non-zero 
value, I expect to see either eigen value of 1 or eigen vector with value at 
index 1 and index 2 to be 0 (if counting indices from 0). Something like
x_0
0
0
x_3

I see this:
cat op.evec
+0.463004 -0.795740
-0.735242 -0.368169
+0.411030 -0.080414
-0.275864 -0.474113

cat op.eval
+0.872274
+1.377271

What version of the product are you using? On what operating system?
I am compiling the code in visual studio 2013. The versions are:
1. redsvd 0.2.0
2. Eigen 3

Please provide any additional information below.
If I provide identity matrix, I get the correct eigen values and vectors. 
Adding 2 elements at some {i,j} and {j,i} location does not yield the correct 
eigen vectors. 

Am I missing something here ? Your help would be much appreciated. Thank you. 

Original issue reported on code.google.com by adeo...@gmail.com on 27 Feb 2014 at 10:37