         return 0.0f;
         }
         
-    printf("GPU/simple          : ");
-    printf("%f ms\n", avg_t);
+    if (!quiet)
+        {
+        printf("GPU/simple          : ");
+        printf("%f ms\n", avg_t);
+        }
     return avg_t;
     }
 

    float t = (end.tv_sec - start.tv_sec)*1000.0f + (end.tv_usec - start.tv_usec)/1000.0f;
    float avg_t = t/float(iters);
    
    if (include_memcpy)
        printf("Host w/device memcpy: ");
    else
        printf("Host                : ");
    printf("%f ms\n", avg_t);
    }

#if CUDA_ARCH >= 11

    std::cout << "];" << std::endl;
    }

void bmark_N()
    {
    g_rcut = 3.1f;
    float phi = 0.20f;
    
    std::vector<unsigned int> N_list;
    for (unsigned int power = 2; power < 6 ; power++)
        {
        N_list.push_back(1*pow(10.0f,float(power)));
        N_list.push_back(2*pow(10.0f,float(power)));
        N_list.push_back(3*pow(10.0f,float(power)));
        N_list.push_back(4*pow(10.0f,float(power)));
        N_list.push_back(5*pow(10.0f,float(power)));
        N_list.push_back(6*pow(10.0f,float(power)));
        N_list.push_back(7*pow(10.0f,float(power)));
        N_list.push_back(8*pow(10.0f,float(power)));
        N_list.push_back(9*pow(10.0f,float(power)));
        }


    std::cout << "N = [";
    for (unsigned int i = 0; i < N_list.size(); i++)
        std::cout << N_list[i] << " ";
    std::cout << "];" << std::endl;

    std::cout << "btim = [";
    for (unsigned int i = 0; i < N_list.size(); i++)
        {
        g_N = N_list[i];
        float L = pow(float(M_PI/6.0)*float(g_N) / phi, 1.0f/3.0f);
        g_Lx = g_Ly = g_Lz = L;
    
        // setup
        allocate_data();
        initialize_data();
        sort_data();
    
        // normally, data in HOOMD is not perfectly sorted:
        for (unsigned int k = 0; k < 100; k++)
            tweak_data();
    
        float time = bmark_host_rebinning(true, true);
        std::cout << time << " ";

        free_data();
        }
    std::cout << "];" << std::endl;
    }

int main(int argc, char **argv)
    {
    //bmark_grid();
    bmark_N();

#if 0
    // choose defaults if no args specified
    float phi;
    if (argc == 1)
