      * This label is their index in the _seed_indices list, because
      * it is a unique int strictly > 0
      */
+#ifdef ONE_THREAD_ONLY
+    block.x = 1;
+#else // ONE_THREAD_ONLY
     block.x = 8;
+#endif // ONE_THREAD_ONLY
     block.y = 1;
     block.z = 1;
     grid.x  = _vote._seed_indices.host.size;

            other_direction = Left;
            phi.set_direction( Right );
        }

        ++i;


    }
};

#ifdef ONE_THREAD_ONLY
// include data in class
#else // ONE_THREAD_ONLY
__shared__ int2  edge_buffer[EDGE_LINKING_MAX_EDGE_LENGTH]; // convexEdgeSegment
__shared__ int   edge_index[2];
#endif // ONE_THREAD_ONLY

struct EdgeBuffer
{
#ifdef ONE_THREAD_ONLY
    int2  edge_buffer[EDGE_LINKING_MAX_EDGE_LENGTH]; // convexEdgeSegment
    int   edge_index[2];
#endif // ONE_THREAD_ONLY
    __device__ inline
    void init( int2 start )
    {
#ifdef ONE_THREAD_ONLY
        edge_buffer[0]    = start;
        edge_index[Left]  = 1;
        edge_index[Right] = 0;
#else // ONE_THREAD_ONLY
        if( threadIdx.x == 0 ) {
            edge_buffer[0]    = start;
            edge_index[Left]  = 1;
            edge_index[Right] = 0;
        }
        __syncthreads();
#endif // ONE_THREAD_ONLY
    }

    __device__ inline
