#include <stdio.h>
#include <stdlib.h>
#include <pthread.h>

#include "matrix.h"

void *thread_func(void *argument) {
	int line, column;
	line = *((int *) argument);
	for (column = 0; column < dimension; column++)
		matrixProduct[line][column] = scalar_product(matrixA[line], matrixB[column]);
	return NULL;
}

int main(int argc, char *argv[]){
	int i, *indice;
	pthread_t *threads;
		
	initialize(argc, argv);
	
	indice = (int *) malloc (dimension * sizeof(int));
	threads = (pthread_t *) malloc (dimension * sizeof(pthread_t));

	for(i = 0; i < dimension; i++){
		indice[i] = i;
		pthread_create(&(threads[i]), NULL, thread_func, &(indice[i]));
	}
	for(i = 0; i < dimension; i++){
		pthread_join(threads[i], NULL);
	}

	return 0;
}