#include <stdio.h>
#include <stdlib.h>
#include <dispatch/dispatch.h>

#include "matrix.h"

int main(int argc, char *argv[]){
	int line, column;
	dispatch_queue_t globalQueue;
	dispatch_group_t grp;
			
	initialize(argc, argv);
	
	globalQueue = dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
	grp = dispatch_group_create();
	
	for (line = 0; line < dimension; line++) {
		for (column = 0; column < dimension; column++) {
			dispatch_group_async(grp, globalQueue, ^{
				matrixProduct[line][column] = scalar_product(matrixA[line], matrixB[column]);
			});
		}
	}
	dispatch_group_wait(grp, DISPATCH_TIME_FOREVER);

	return 0;
}