 
     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");

    checkCUDA( cudaEventDestroy( start ) );
    checkCUDA( cudaEventDestroy( stop ) );

	/* check CUBLAS versus GPU NAIVE numerical results */

	double temp = 0.0;

	for( int i = 0; i < size * size; i++ )
	{
		temp += ( h_c[i] - h_c1[i] ) * ( h_c[i] - h_c1[i] );
	} /* end for */

	printf("error is %f\n",temp);
	if( temp > 10 ) printf("FAIL\n");
        else printf("PASS\n");

	/* cleanup */

    checkCUDA( cudaFree( d_a ) );
    checkCUDA( cudaFree( d_b ) );

#pragma unroll
		for ( int i = 0; i < NX ; i ++ ) 
		{
                        /* complete the index into the array */
			as[ FIXME ][ FIXME ] = a[ (aoff + FIXME) ];
		}

