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.