 #include <iostream>
 
 #include "../include/warpdrive.cuh"
+#include "../tools/binary_io.h"
 
 DEVICEQUALIFIER INLINEQUALIFIER
 void print_bits_32(uint32_t x)

    using namespace warpdrive;
    using namespace std;

    // type decls
    using plan_t  = plans::BasicPlan<>;

    using data_p     = plan_t::data_p;
    using failure_p  = plan_t::failure_p;

    using index_t = plan_t::index_t;
    using data_t  = data_p::data_t;
    using key_t   = data_p::key_t;

    // params
    const index_t len_data = 1UL << atoi(argv[1]);
    const float   load     = atof(argv[2]);
    const index_t capacity = len_data/load;
    const index_t lvl1_max = atoi(argv[3]);
    const index_t lvl2_max = atoi(argv[4]);
    const index_t blocks_per_grid = (atoi(argv[5]) != 0) ? atoi(argv[5]): std::numeric_limits<index_t>::max();
    const index_t threads_per_block = atoi(argv[6]);   
 
    plan_t::config_t config(lvl1_max,
                            lvl2_max,
                            blocks_per_grid,
                            threads_per_block);

    cudaSetDevice(atoi(argv[7])); CUERR

    // generate data
    data_t * data1_h = new data_t[len_data];
    data_t * data2_h = new data_t[len_data];

    cudaFree(data1_d); CUERR
    cudaFree(data2_d); CUERR
    cudaFree(hash_table_d); CUERR
    */
}
