The Pagerank package provides a single driver call capable of running different pagerank algorithm.
1) PageRank with power iterations
2) PageRank with gauss-seidel iterations
3) PageRank as a linear system (bicgstab and gmres solvers)
4) PageRank with the arnoldi factorization
5) Approximate personalized PageRank
The included matlab file describes all the options and parameters.
For non-linux/win32 platforms, you must compile the included .c files
The mex files provide optimized matrix-vector multiplication routines for the PageRank code and improve the performance by 10-15%.
There is a special driver included to run a set of algorithms on the same web-graph and report comparative results.
Thanks for the comments. I've intended to update this code for more recent versions of Matlab for a while, but somehow never find the time.
: \ also, despite the notes in the top of pagerank.m, a flag == 0 denotes convergence, and flag==1 non-convergence.
1. must recompile with mex on 64-bit machine
int * A_row, A_col I think needs to be mwIndex* A_row, A_col in spmatvec_transmult.c
Otherwise, you get a compile warning with mex and nonsensical, nonconverging answers.
[reproduction scenario: 64-bit machine, sparse matrix, options=power]
I suspect this change will be made in other mex compiled files too as they also had warnings.
Otherwise, so far so good.
Create scripts with code, output, and formatted text in a single executable document.