     g_Mx = std::min(g_Mx, (unsigned)30);
     g_My = std::min(g_My, (unsigned)30);
     g_Mz = std::min(g_Mz, (unsigned)30);
+    g_Mx = std::max(g_Mx, (unsigned)1);
+    g_My = std::max(g_My, (unsigned)1);
+    g_Mz = std::max(g_Mz, (unsigned)1);
 
     // allocate bins
     unsigned int Nbins = g_Mx * g_My * g_Mz;

    if (!verify())
        {
        printf("Invalid results in host bmark!\n");
        return;
        }
        
    // benchmarks

    }

// benchmark the host rebinning
float bmark_host_rebinning(bool include_memcpy, bool quiet=false)
    {
    // warm up
    rebin_particles_host(gh_idxlist, gh_bin_size, gh_pos, g_N, g_Lx, g_Ly, g_Lz, g_Mx, g_My, g_Mz, g_Nmax);
