     int                         ITEMS_PER_THREAD,
     BlockHistogramAlgorithm     ALGORITHM>
 void Test(
-    GenMode                     gen_mode,
-    char*                       type_string)
+    GenMode                     gen_mode)
 {
     int num_samples = BLOCK_THREADS * ITEMS_PER_THREAD;
 
     printf("cub::BlockHistogram %s %d %s samples (%dB), %d bins, %d threads, gen-mode %s\n",
         (ALGORITHM == BLOCK_HISTO_SORT) ? "BLOCK_HISTO_SORT" : "BLOCK_HISTO_ATOMIC",
         num_samples,
-        type_string,
+        typeid(SampleT).name(),
         (int) sizeof(SampleT),
         BINS,
         BLOCK_THREADS,

#ifdef QUICK_TEST

    // Compile/run quick tests
    Test<unsigned char, 256, 128, 4, BLOCK_HISTO_SORT>(RANDOM, "unsigned char");
    Test<unsigned char, 256, 128, 4, BLOCK_HISTO_ATOMIC>(RANDOM, "unsigned char");

#else

    // Compile/run thorough tests
    for (int i = 0; i <= g_repeat; ++i)
    {
        Test<unsigned char, 32>("unsigned char");
        Test<unsigned char, 256>("unsigned char");
        Test<unsigned short, 1024>("unsigned short");
    }

#endif

    int                         BLOCK_THREADS,
    int                         ITEMS_PER_THREAD,
    BlockHistogramAlgorithm     ALGORITHM>
void Test()
{
    Test<SampleT, BINS, BLOCK_THREADS, ITEMS_PER_THREAD, ALGORITHM>(UNIFORM);
    Test<SampleT, BINS, BLOCK_THREADS, ITEMS_PER_THREAD, ALGORITHM>(INTEGER_SEED);
