algorithm hybrid eigenvector following code OPTIM contributor Jacob Stevenson and Cheng Shang