     }
 
     typedef Reads::word_type word_type;
-    NVBIO_VAR_UNUSED static const uint32 SYMBOL_SIZE = Reads::SYMBOL_SIZE;
+    NVBIO_VAR_UNUSED static const uint32 SYMBOL_SIZE      = Reads::SYMBOL_SIZE;
+    NVBIO_VAR_UNUSED static const uint32 SYMBOLS_PER_WORD = Reads::SYMBOLS_PER_WORD;
 
     const char* reads_name        = argv[argc-2];
     const char* output_name       = argv[argc-1];

        {
            log_verbose(stderr, "  using fast path\n");

            thrust::device_vector<word_type> d_read_storage( reads.h_read_storage );
            thrust::device_vector<uint64>    d_read_index( reads.h_read_index );

            const packed_stream_type d_packed_string( (word_type*)nvbio::plain_view( d_read_storage ) );



        log_info(stderr,"  reading input... done\n");

        const uint64 input_words = util::divide_ri( reads.n_symbols, SYMBOLS_PER_WORD );
        const uint64 input_size  = input_words * sizeof(word_type);
        log_stats(stderr,"    reads   : %u (min len: %u, max len: %u)\n", reads.n_reads, reads.min_len, reads.max_len);
        log_stats(stderr,"    symbols : %llu\n", reads.n_symbols);
        log_stats(stderr,"    size    : %llu MB\n", input_size / uint64(1024*1024));
