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

#include "matrix.h"

int main(int argc, char *argv[]){
	dispatch_queue_t globalQueue;
			
	initialize(argc, argv);

	globalQueue = dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
	
	dispatch_apply(size, globalQueue, ^(size_t index) {
		int position, start, stop, line, column;
		start = index * range;
		stop = start + range;
		for (position = start; position < stop; position ++) {
			line  = position / DIMENSION;
			column = position % DIMENSION;
			matrixProduct[line][column] = scalar_product(matrixA[line], matrixB[column]);
		}
	});

	return 0;
}