   return mask;
 }
 
-__device__ __forceinline__ int inclusive_segscan_block64(
+__device__ __forceinline__ int inclusive_segscan_warp(
     int *shmem, const int packed_value, int &dist_block, int &nseg)
 {
   const int  flag = packed_value < 0;

  return mysum;
}

__device__ __forceinline__ int calc_prefix(int* prefix, int value) 
{
  prefix[laneId] = inclusive_scan_warp<WARP_SIZE2>(value);
  return prefix[WARP_SIZE-1];
}


__device__ int calc_prefix(int N, int* prefix_in) 
{

  int y = calc_prefix(prefix_in, prefix_in[laneId]);
  if (N <= WARP_SIZE) return y;

  for (int p = WARP_SIZE; p < N; p += WARP_SIZE) 
  {
    int *prefix = &prefix_in[p];
    const int y1 = calc_prefix(prefix, prefix[laneId]);
    prefix[laneId] += y;
    y += y1;
  }

  return y;
} 

/************************************/
/********* SEGMENTED SCAN ***********/

  return partial;
}
  template<const int SIZE2>
__device__ __forceinline__ int inclusive_segscan_warp_step(int value, const int distance)
{

#if 0
