int readFile(char* fileName, int dimension, int** matrixA, int** matrixB){ // reading in data from the inputFile char ch; int ch1; char* line = NULL; size_t len = 0; ssize_t read; FILE *fp = fopen(fileName, "r"); int d = dimension; if(fp == NULL ){ perror("Error while opening the file.\n"); exit(EXIT_FAILURE); } int holdingArray[(2*d*d) + 1]; int counter = 0; while((read = getline(&line, &len, fp)) != -1){ ch1 = atoi(line); holdingArray[counter] = ch1; counter++; } // fill matrix A int countvar = 0; for (int i = 0; i < d; i++){ for (int j = 0; j < d; j++){ matrixA[i][j] = holdingArray[countvar]; countvar++; } } // fill matrix B for (int i = 0; i < d; i++){ for (int j = 0; j < d; j++){ matrixB[i][j] = holdingArray[countvar]; countvar++; } } fclose(fp); printf("Matrix A: \n"); printMatrix(matrixA, dimension); printf("Matrix B: \n"); printMatrix(matrixB, dimension); sumMatrices(matrixA, matrixB, dimension); subMatrices(matrixB, matrixA, dimension); // int** aTest = allocateQuadrant(matrixA, dimension, 0); // int** bTest = allocateQuadrant(matrixA, dimension, 1); // int** cTest = allocateQuadrant(matrixA, dimension, 2); // int** dTest = allocateQuadrant(matrixA, dimension, 3); // reglue(aTest,bTest,cTest,dTest,dimension); return 0; }
//Função template para pthread_create void * function_pthread (void * arg) { Matrix_Data * m_data = (Matrix_Data *) arg; sumMatrices(m_data->id, m_data->matrix_size, m_data->number_of_threads, m_data->A); return (void *)NULL; }