 // a4Sum[] - The array containing the sums for a4
 //******************************************************************************
 __global__
-void sumArea(float a1Sum[], float a2Sum[], float a3Sum[], float a4Sum[],
-             const unsigned int bucketBeg[], const unsigned int bucketEnd[],
-             uint2 maxMinArray[],
-             const float a1[], const float a2[], 
-             const float a3[], const float a4[],
+void sumArea(float* __restrict__ a1Sum, float* __restrict__ a2Sum, 
+             float* __restrict__ a3Sum, float* __restrict__ a4Sum, 
+             const unsigned int* __restrict__ bucketBeg, 
+				 const unsigned int* __restrict__ bucketEnd,
+             uint2* __restrict__ maxMinArray,
+             const float* __restrict__ a1, const float* __restrict__ a2, 
+             const float* __restrict__ a3, const float* __restrict__ a4,
              unsigned int numGridBins, unsigned int numParticles,
              int bufferSize=4)
 {

//        a3 = area.z, a4 = area.w
//******************************************************************************
__global__
void calcA(const float2 particleLocations[],
           float area1[],
           float area2[],
           float area3[],
           float area4[],
           const unsigned int numParticles,
           const unsigned int NY,
           const float DX,

// height - The height of the area that is calculated
//******************************************************************************
__global__
void fixRhoGridTopBottom(float* __restrict__ rhoe, float* __restrict__ rhoi,
                         const unsigned int width, 
                         const unsigned int height
                         )
