diff --git a/arnoldi.c b/arnoldi.c index 7888d1b..65d4f83 100644 --- a/arnoldi.c +++ b/arnoldi.c @@ -199,33 +199,33 @@ int main(int argc, char **argv) { PetscLogDouble lapack_time = lapack_end_time - lapack_start_time; PetscCall(PetscPrintf(PETSC_COMM_WORLD, "[Arnoldi] LAPACK time: %f seconds\n", lapack_time)); - // // print Hessenberg matrix - // printf("H = \n"); - // for (int i = 0; i < l + 1; i++) { - // for (int j = 0; j < l; j++) { - // printf("%.3f ", H[i * l + j]); - // } - // printf("\n"); - // } - - // // sort eigenvalues - // for (int i = 0; i < l; i++) { - // for (int j = i + 1; j < l; j++) { - // if (wr[i] > wr[j]) { - // swap(&wr[i], &wr[j]); - // swap(&wi[i], &wi[j]); - // for (int k = 0; k < l; k++) { - // swap(&z[i * l + k], &z[j * l + k]); - // } - // } - // } - // } - - // // print eigenvalues - // printf("Eigenvalues = \n"); - // for (int i = 0; i < l; i++) { - // printf("%.3f + %.3f i\n", wr[i], wi[i]); - // } + // print Hessenberg matrix + printf("H = \n"); + for (int i = 0; i < l + 1; i++) { + for (int j = 0; j < l; j++) { + printf("%.2f ", H[i * l + j]); + } + printf("\n"); + } + + // sort eigenvalues + for (int i = 0; i < l; i++) { + for (int j = i + 1; j < l; j++) { + if (wr[i] > wr[j]) { + swap(&wr[i], &wr[j]); + swap(&wi[i], &wi[j]); + for (int k = 0; k < l; k++) { + swap(&z[i * l + k], &z[j * l + k]); + } + } + } + } + + // print eigenvalues + printf("Eigenvalues = \n"); + for (int i = 0; i < l; i++) { + printf("%.3f + %.3f i\n", wr[i], wi[i]); + } } // print eigenvectors