 
 	void compact()
 	{
+#if 0
 		int f[] = { 3, 1, 7, 0, 4, 1, 6, 3, 3, 1, 7, 0, 4, 1, 6, 3, 3, 1, 7, 0, 4, 1, 6, 3, 3, 1, 7, 0, 4, 1, 6, 3, 3, 1, 7, 0, 4, 1, 6, 3 };
 		//int f[] = { 3, 1, 7, 0, 4, 1, 6, 3, 3, 1 };
 		//int f[] = { 3, 1, 7, 0, 4, 1, 6, 3 };

	dst[2 * index + 1 + (blockIdx.x * blockDim.x * 2)] = temp[2 * index + 1];
}

namespace idaten {

	void scan(
		idaten::TypedCudaMemory<int>& src,
		idaten::TypedCudaMemory<int>& dst)
	{
		int blocksize = 8;
		int blockPerGrid = (dst.maxNum() - 1) / blocksize + 1;

		exclusiveScan << <blockPerGrid, blocksize / 2, blocksize * sizeof(int) >> > (


// NOTE
// https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch39.html
// https://github.com/bcrusco/CUDA-Path-Tracer/blob/master/stream_compaction/efficient.cu

// ubNPʂŌvZ exclusiveScan ̑al𑫂̂vZ.
__global__ void computeBlockCount(
