 	
 	// normally, data in HOOMD is not perfectly sorted:
 	for (unsigned int i = 0; i < 100; i++)
-		tweak_data();	
+		tweak_data();
 	
 	// run the various benchmarks
 	bmark_host_rebinning(false);
 	bmark_host_rebinning(true);
 	bmark_simple_rebinning();
-	bmark_simple_sort_rebinning();
+	bmark_simple_sort_rebinning(32);
+	bmark_simple_sort_rebinning(64);
+	bmark_simple_sort_rebinning(128);
+	bmark_simple_sort_rebinning(256);
+	bmark_simple_sort_rebinning(512);
 	bmark_simple_updating();
 	
 	free_data();

	scan_naive<unsigned int, block_size>(unique);
	
	// determine start location of each unique value in the array
	__shared__ unsigned int start[block_size+1];
	
	if (is_unique)
		start[unique[threadIdx.x]] = threadIdx.x;

	bitonic_sort<bin_id_pair, block_size>(bin_pairs);
	
	// identify the breaking points
	__shared__ unsigned int unique[block_size*2+1];
	
	bool is_unique = false;
	if (threadIdx.x > 0 && bin_pairs[threadIdx.x].bin != bin_pairs[threadIdx.x-1].bin)
