 #define THREADS_PER_BLOCK_Y 16 // Thread block size, y dimension
 #define BLOCK_K 16 // square block of K size
 
-__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 constanst for later use */

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

/* macro for index calculations */

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


/* shared memory arrays for A and B */

  __shared__ floatType_t as[ THREADS_PER_BLOCK_X ][ BLOCK_K + 1 ];
  __shared__ floatType_t bs[ BLOCK_K ][ THREADS_PER_BLOCK_Y + 1 ];
	
/* space for C to be held in registers */

  floatType_t c_tmp = 0.0 ;

/* calculate my initial offset into A and B */

