diff --git a/Projekt1_Knuettel_Daniel.c b/Projekt1_Knuettel_Daniel.c index 3208133..02b947a 100644 --- a/Projekt1_Knuettel_Daniel.c +++ b/Projekt1_Knuettel_Daniel.c @@ -34,9 +34,21 @@ /* * General Information: * - * - Matrices are represented using line vectors. This is + * - Matrices are represented using row vectors. This is * convenient for accessing elements. * + * Compiling: + * + * Use + * + * gcc -lm -o main Projekt1_Knuettel_Daniel.c + * + * To produce the executable. You can use + * + * gcc -DDEBUG -g -lm -o main Projekt1_Knuettel_Daniel.c + * + * To enable a rudimentary debug mode. + * * */ #include @@ -243,6 +255,10 @@ int main(void) A_2[i] = malloc(sizeof(double) * n); for(j = 0; j < n; j++) { +#ifdef DEBUG + fprintf(stderr, "set A_2[%d][%d] = A_stack_2[%d] = %f\n" + , i, j, n*i + j, A_stack_2[n*i + j]); +#endif A_2[i][j] = A_stack_2[n*i + j]; } } @@ -330,7 +346,9 @@ int householder(double ** A, double * alpha, int m, int n) * This is just the sample implementation from the * lecture script. * */ - for(k = 0; k < min(n, m - 1); k++) + // I figured out that min(n, m - 1) from the scrip is wrong. + // It must be because the last row would be uninitialized. + for(k = 0; k < min(n, m); k++) { alpha[k] = square(A[k][k]);