 	int idx = (blockIdx.x * blockDim.x) + threadIdx.x;
 
 	// load shared memory
-	if (idx < g_dimensionality) {
-		s_qWeights[idx] = g_qWeights[idx];
-	}
-	__syncthreads();
+	// if (idx < g_dimensionality) {
+	// 	s_qWeights[idx] = g_qWeights[idx];
+	// }
+	// __syncthreads();
 
 	// set some rgisters
 	int charWeightIndex = 0;

	// calulate the cosine similarity
	for (int j = 0; j < g_klimit; ++j) {
		charWeightIndex = charWeightIndexPart + j;

		numerator += s_qWeights[j] * g_charWeights[charWeightIndex];
		denominatorA += s_qWeights[j] * s_qWeights[j];
		denominatorB += g_charWeights[charWeightIndex] * g_charWeights[charWeightIndex];
	}


	}

	// save cosine similarity score
	//g_scores[idx] = totalScore;
}

static char launchNearestNeighborA(struct OCRkit *ocrKit, double *questionWeights)
