public void testLanczosSolver() throws Exception {
int numRows = 800;
int numColumns = 500;
Matrix corpus = randomHierarchicalMatrix(numRows, numColumns, false);
Vector initialVector = new DenseVector(numColumns);
initialVector.assign(1.0 / Math.sqrt(numColumns));
int rank = 50;
LanczosState state = new LanczosState(corpus, rank, initialVector);
long time = timeLanczos(corpus, state, rank, false);
assertTrue("Lanczos taking too long! Are you in the debugger? :)", time < 10000);
assertOrthonormal(state);