Check procedure and Test procedure

Check procedure is responsible to test outputs of two different functions and return false in case of different results.
Test procedure is responsible to run series of Matrix-Vector products in order to be able to compare the efficiency of functions.

Bug fixed in 'shared memory kernel':
* not enough memory was allocated to shared array
* checks of i and j a bit too late