   free(hostmat);
 }
 
-// Print values of CPU arrays 
+// Print values of CPU arrays; used for debugging
 void print_CPU_Mat(double *mat, int length) {
 
   for (int i = 0; i < length; ++i) {

// Number of threads per block.
#define DIM_THREADS 128
#define MAX_THREADS 256
#define MAX_BLOCKS 65535 

// Define CUDA condition check.
#define CUDA_CHECK(condition) \
/* Code block avoids redefinition of cudaError_t error */ \
do { \
cudaError_t error = condition; \
if (error != cudaSuccess) \
printf("%s\n", cudaGetErrorString(error)); \
} while (0)


// Print values of GPU arrays
void print_GPU_Mat(double *mat, int length) {

  double *hostmat = (double*)malloc(length*sizeof(double));

}


// Compute the euclidean between each D-dimensional row of 'data' matrix and 
// the D-dimensional row of 'queries' matrix.
extern "C"
void compute_distance_gpu(double *data, double *queries, int D, int Q, int N,
                          double *dist) {
