fix major bug in SparseVector row selector
move row rank earlier
make phase1 tol user controllable