                                          theta1Rows+1,
                                          1,1) );
 
-  floatType_t *d_srcData, *d_destData;
-  CUDA_CALL( cudaMalloc( &d_srcData, 
-          sizeof(floatType_t)*Xexamples*(theta1Rows+1)) );
-  CUDA_CALL( cudaMemset( d_srcData, 0,
-          sizeof(floatType_t)*Xexamples*(theta1Rows+1) ) );
-
-  CUDA_CALL( cudaMalloc( &d_destData, 
-          sizeof(floatType_t)*Xexamples*(theta1Rows+1)) );
-
-  CUDA_CALL( cudaMemset( d_destData, 0,
-          sizeof(floatType_t)*Xexamples*(theta1Rows+1) ) );
 
   floatType_t *d_X;
   CUDA_CALL( cudaMalloc( &d_X,

                              Xexamples, theta1Rows, theta1Cols,
			      &alpha, d_X, Xfeatures,
                              d_theta1, theta1Rows, &beta,
                              &d_srcData[INDX(0,1,Xexamples)], Xexamples ) );                              
    CUDA_CALL( cudaMemcpy( z2, d_srcData, 
                           sizeof(floatType_t)*Xexamples*(theta1Rows+1),
                           cudaMemcpyDeviceToHost ) );
    

    array[i] = (floatType_t)i;
} /* end setVAls */

__global__ void initOne( int size, floatType_t *array )
{
  int tid = blockDim.x * blockIdx.x + threadIdx.x;
  if( tid < size )
    array[tid] = (floatType_t) 1.0;
  return;
} /* end initOne */

__global__ void printKernel( int rows, int cols, floatType_t *array )
{
  for( int j = 0; j < cols; j++ )
