@Test 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); LanczosSolver solver = new LanczosSolver(); solver.solve(state, rank, false); assertOrthonormal(state); for (int i = 0; i < rank/2; i++) { assertEigen(i, state.getRightSingularVector(i), corpus, ERROR_TOLERANCE, false); } }
public void solve(LanczosState state, int desiredRank) { solve(state, desiredRank, false); }
LanczosSolver { public void solve(LanczosState state, int desiredRank) { solve(state, desiredRank, false); } }
LanczosSolver { public void solve(LanczosState state, int desiredRank) { solve(state, desiredRank, false); }  }
LanczosSolver { public void solve(LanczosState state, int desiredRank) { solve(state, desiredRank, false); }  void solve(LanczosState state,
                    int desiredRank); void solve(LanczosState state,
                    int desiredRank,
                    boolean isSymmetric); }
LanczosSolver { public void solve(LanczosState state, int desiredRank) { solve(state, desiredRank, false); }  void solve(LanczosState state,
                    int desiredRank); void solve(LanczosState state,
                    int desiredRank,
                    boolean isSymmetric); static final double SAFE_MAX; }