 			
 			case 3:
 				t = clock();
-				for (int i = 0; i < 10000; i++)
+				//for (int i = 0; i < 10000; i++)
 				{
-					checkCudaErrors(cudaMemset(findArray, 0, sizeof(bool) * (2*bound + 2)));
-					checkCudaErrors(cudaMemset(primeArray, 1, sizeof(bool) * (2*bound + 2)));
+					checkCudaErrors(cudaMemset(findArray, 0, sizeof(bool) * (bound + 1)));
+					checkCudaErrors(cudaMemset(primeArray, 1, sizeof(bool) * (bound + 1)));
 					sundPartOnePerRow<<<t_gridSize, t_blockSize>>>(bound, findArray);
 					cudaDeviceSynchronize(); checkCudaErrors(cudaGetLastError());
 					sundPartTwoPerElementOneD<<<t_gridSize, t_blockSize>>>(bound, findArray, primeArray);

			
			case 4:
				t = clock();
				for (int i = 0; i < 10000; i++)
				{
					checkCudaErrors(cudaMemset(findArray, 0, sizeof(bool) * (2*bound + 2)));
					checkCudaErrors(cudaMemset(primeArray, 1, sizeof(bool) * (2*bound + 2)));
					sundPartOnePerRow<<<t_gridSize, t_blockSize>>>(bound, findArray);
					cudaDeviceSynchronize(); checkCudaErrors(cudaGetLastError());
					sundPartTwoPerElementTwoD<<<b_gridSize, b_blockSize>>>(bound, findArray, primeArray);

			case 1:
			{
				t = clock();
				//for (int i = 0; i < 10000; i++)
				{
					cpuArray = new bool[bound + 1];
					sundaramSieve(bound, cpuArray);
