Switched to Eigen 3.2 beta to get sparse QR factorization. Wrote Lanczos's algorithm, will need some testing.
Lanczos + QR written, but slow and buggy. Added BLAS, LAPACK, LAPACKE to see if LAPACK can handle such large matrices. If not, I will take another shot at ARPACK without ARPACK++ - although the interface is confusing, linking to fortran code isn't so hard. Something is wrong with release configuration, it doesn't seem to find the path to libblas.lib .
Linker issue in release mode solved.
Lapack thought my matrix was an invalid argument for some reason. Now switching to ARPACK which should work better anyway, still crashes after putting the right dll versions for BLAS and LAPACK.
Sparse eigensystem solver through Arpack now works correctly. Now I can finally implement the normalized cut algorithm.
Currently toying around with sparse/dense multiplication, I resolved the NaN issue by adding a constant (1) to weights to avoid 0 weights.
Solved the NaN issue in the sparse laplacian. Also added a minimum weight in the grid graph so the eigenvalues algorithm converges better. With the corrected laplacian, isoperimetric graph partitioning seems to actually work, right now it's oversegmenting quite a bit though.
Normalized cut now computes eigenvalues up to only a constant number iterations of the lanczos algorithm, for a tradeoff between performance and accuracy.
Merge branch 'kuwahara_filter' of https://github.com/alexisVallet/animation-character-identification into NormalizedCuts
Refqctoring, documentation, started implementing techniques to reduce the running time of the eigen solver for normalized cuts as described in the original paper - nearest neighbor graph with random pruning, working with the generalized eigenproblem, stopping recursion based on stability of the eigenvector.
not much
Ironing out some bugs in image graphs.
Normalized cuts algorithm is now pretty much complete and runs alright if the image is small enough. It doesn't seem to give results better than Felzenszwalb's method, and seems to be much more dependent on parameters to give good results.
Merge branch 'NormalizedCuts'

Conflicts:
	aci/animation-character-identification.vcxproj.filters
	aci/main.cpp