Skip to content

Commit

Permalink
A couple bug fixes
Browse files Browse the repository at this point in the history
  • Loading branch information
Heatherms27 committed Mar 4, 2024
1 parent 2485eb2 commit d0a0cb4
Show file tree
Hide file tree
Showing 4 changed files with 11 additions and 8 deletions.
2 changes: 1 addition & 1 deletion examples/ex_eigs_dparTests.c
Expand Up @@ -122,7 +122,7 @@ int main (int argc, char *argv[]) {
primme.numEvals = 10; /* Number of wanted eigenpairs */
primme.maxBlockSize = 1;
primme.printLevel = 4;
primme.minRestartSize = 10;
//primme.minRestartSize = 10;
primme.locking = 0;
primme.eps = 1e-1; /* ||r|| <= eps * ||matrix|| */
primme.aNorm = 1.0;
Expand Down
13 changes: 7 additions & 6 deletions src/eigs/lanczos.c
Expand Up @@ -124,7 +124,7 @@ int print_lanczos_timings_Sprimme(primme_context ctx) {
printf("Restarts : %-" PRIMME_INT_P "\n", primme->stats.numRestarts);
printf("Matvecs : %-" PRIMME_INT_P "\n", primme->stats.numMatvecs);
printf("Preconds : %-" PRIMME_INT_P "\n", primme->stats.numPreconds);
printf("Elapsed Time : %-22.10E\n", primme->stats.elapsedTime);
printf("Elapsed Time : %-22.10E\n", primme_wTimer() - primme->stats.elapsedTime);
printf("MatVec Time : %-22.10E\n", primme->stats.timeMatvec);
printf("Precond Time : %-22.10E\n", primme->stats.timePrecond);
printf("Ortho Time : %-22.10E\n", primme->stats.timeOrtho);
Expand Down Expand Up @@ -390,24 +390,25 @@ int lanczos_Sprimme(HEVAL *evals, SCALAR *evecs, PRIMME_INT ldevecs,
} /* End non-sketching */

/* Check how many pairs have converged basis in approximate residual */
numConverged = 0;
for(j = 0; j < primme->numEvals; j++) {
if(j < numEvals) {
resNorms[j] = fabs(H[(i-blockSize)*ldH + i]*hVecs[(i+blockSize)*j+(i+blockSize)-1]);
} else {
resNorms[j] = 1.0;
}
}
numConverged = 0;
CHKERR(globalSum_Rprimme(resNorms, numEvals, ctx));
if(resNorms[j] < primme->aNorm*primme->eps) numConverged++;
for(j = 0; j < primme->numEvals; j++) if(resNorms[j] < primme->aNorm*primme->eps) numConverged++;

/* FOR TESTING: Print residual information */
if(primme->procID == 0){
printf("BasisSize %ld: NumConverged = %d, Convergence Tolerance = %.6E (%.6E x %.6E)\n", i+blockSize, numConverged, primme->aNorm*primme->eps, primme->aNorm, primme->eps);
for(j = 0; j < primme->numEvals; j++){
if(j < numEvals) {
printf("Iteration %ld Eval[%ld] = %lf, ResNorm[%ld] = %.6E\n", i, j, hVals[j], j, resNorms[j]);
printf("BasisSize %ld Eval[%ld] = %lf, ResNorm[%ld] = %.6E\n", i+blockSize, j, hVals[j], j, resNorms[j]);
} else {
printf("Iteration %ld Eval[%ld] = %lf, ResNorm[%ld] = %.6E\n", i, j, 0.0, j, 0.0);
printf("BasisSize %ld Eval[%ld] = %lf, ResNorm[%ld] = %.6E\n", i+blockSize, j, 0.0, j, 0.0);
}
}
}
Expand Down Expand Up @@ -456,7 +457,7 @@ int lanczos_Sprimme(HEVAL *evals, SCALAR *evecs, PRIMME_INT ldevecs,
primme->stats.numOuterIterations++;

//Report timings
if(primme->procID == 0 && primme->stats.numOuterIterations % 100 == 0) CHKERR(print_lanczos_timings_Sprimme(ctx));
if(primme->procID == 0 && (primme->stats.numOuterIterations % 100 == 0 || i % 100 == 0)) CHKERR(print_lanczos_timings_Sprimme(ctx));

} /* End basis build */

Expand Down
2 changes: 1 addition & 1 deletion src/eigs/main_iter.c
Expand Up @@ -125,7 +125,7 @@ int print_timings_Sprimme(primme_context ctx) {
printf("Restarts : %-" PRIMME_INT_P "\n", primme->stats.numRestarts);
printf("Matvecs : %-" PRIMME_INT_P "\n", primme->stats.numMatvecs);
printf("Preconds : %-" PRIMME_INT_P "\n", primme->stats.numPreconds);
printf("Elapsed Time : %-22.10E\n", primme->stats.elapsedTime);
printf("Elapsed Time : %-22.10E\n", primme_wTimer() - primme->stats.elapsedTime);
printf("MatVec Time : %-22.10E\n", primme->stats.timeMatvec);
printf("Precond Time : %-22.10E\n", primme->stats.timePrecond);
printf("Ortho Time : %-22.10E\n", primme->stats.timeOrtho);
Expand Down
2 changes: 2 additions & 0 deletions src/eigs/primme_c.c
Expand Up @@ -288,6 +288,7 @@ int wrapper_Sprimme(void *evals, void *evecs, void *resNorms,
/* zero out the timer */

double t0 = primme_wTimer();
primme->stats.elapsedTime = t0; // XXX: Added this for debugging purposes - Heather

/* Set some defaults for sequential programs */

Expand Down Expand Up @@ -547,6 +548,7 @@ STATIC int check_input(
}
}

printf("Return = %d\n", ret);
return ret;
}

Expand Down

0 comments on commit d0a0cb4

Please sign in to comment.