 
   fprintf(stdout, "Matrix size is %d\n",size);
 
-  double *h_a, *h_b, *h_c, *h_c1;
-  double *d_a, *d_b, *d_c;
+  floatType_t *h_a, *h_b, *h_c, *h_c1;
+  floatType_t *d_a, *d_b, *d_c;
  
-  size_t numbytes = (size_t ) size * (size_t ) size * sizeof( double );
-
-  h_a = (double *) malloc( numbytes );
+  size_t numbytes = (size_t ) size * (size_t ) size * sizeof( floatType_t );
+
+  h_a = (floatType_t *) malloc( numbytes );
   if( h_a == NULL )
   {
     fprintf(stderr,"Error in host malloc\n");
     return 911;
   }
 
-  h_b = (double *) malloc( numbytes );
+  h_b = (floatType_t *) malloc( numbytes );
   if( h_b == NULL )
   {
     fprintf(stderr,"Error in host malloc\n");
     return 911;
   }
 
-  h_c = (double *) malloc( numbytes );
+  h_c = (floatType_t *) malloc( numbytes );
   if( h_c == NULL )
   {
     fprintf(stderr,"Error in host malloc\n");
     return 911;
   }
 
-  h_c1 = (double *) malloc( numbytes );
+  h_c1 = (floatType_t *) malloc( numbytes );
   if( h_c1 == NULL )
   {
     fprintf(stderr,"Error in host malloc\n");


int main( int argc, char *argv[] )
{
/* get GPU device number and name */

  int dev;


/* naive GPU kernel where each element of C is computed by a single thread */

__global__ void GPU_naive( const int m, floatType_t const * const a, 
     floatType_t const * const b, floatType_t * const c )
{

/* determine my threads's row and col indices in the global C matrix */
