 #define NX 4  // = TBX/TX == number of iterations to do TBX work with TX blocks
 #define NY 4  // = TBY/TY == number of iterations to do TBY work with TY blocks
 
-__global__ void GPU_shmem2(const int m, double const * const a, double const * const b, double *c )
+__global__ void GPU_shmem2(const int m, floatType_t const * const a, 
+     floatType_t const * const b, floatType_t *c )
 {
 
 /* setup some constants for later use */

#include "cublas_v2.h"
#include "../debug.h"

/* macro for index calculations */

#define INDX( row, col, ld ) ( ( (col) * (ld) ) + (row) )

    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 = max( temp, abs( (double)h_c[i] - (double)h_c1[i] )/
                      abs((double)h_c[i]) );
    } /* end for */
    printf("Maximum error is %e percent \n",temp*100.0);
    if( temp > 0.001 ) printf("FAIL\n");
    else printf("PASS\n");

/* cleanup */


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