boolean isSymmetric) {
log.info("Finding {} singular vectors of matrix with {} rows, via Lanczos", desiredRank, corpus.numRows());
Vector currentVector = getInitialVector(corpus);
Vector previousVector = new DenseVector(currentVector.size());
Matrix basis = new SparseRowMatrix(new int[]{desiredRank, corpus.numCols()});
basis.assignRow(0, currentVector);
double beta = 0;
DoubleMatrix2D triDiag = new DenseDoubleMatrix2D(desiredRank, desiredRank);
for (int i = 1; i < desiredRank; i++) {
startTime(TimingSection.ITERATE);
Vector nextVector = isSymmetric ? corpus.times(currentVector) : corpus.timesSquared(currentVector);