Changeset 2103


Ignore:
Timestamp:
May 16, 2012, 10:17:27 AM (7 years ago)
Author:
ksherdy
Message:

Updated symbol table to represent group 0 as the arbitrary length group.

Location:
trunk/symbol_table
Files:
1 added
14 edited

Legend:

Unmodified
Added
Removed
  • trunk/symbol_table/Makefile

    r2098 r2103  
    3030LOGBASE2_GROUP_STRMS = logbase2_group_strms.py
    3131DIV2_LOGBASE2_GROUP_STRMS = div2_logbase2_group_strms.py
     32SINGLE_GROUP_STRMS = single_group_strms.py
    3233
    3334GROUP_PREFIX=@group_strms_
     
    5051        python $(PABLO_COMPILER) $(MARKER_PABLO_SRC) -t $(MAIN_OUTFILE) -l $(MARKER_PREFIX) -o $(MAIN_OUTFILE) $(PABLO_ADD_DEBUG)
    5152
     53single: markers hash single_group src/main.cpp
     54        python $(PABLO_COMPILER) $(MARKER_PABLO_SRC) -t $(MAIN_OUTFILE) -l $(MARKER_PREFIX) -o $(MAIN_OUTFILE) $(PABLO_ADD_DEBUG)
     55
    5256markers: marker_strms.py marker_strms_template.hpp
    5357        python $(PABLO_COMPILER) $(MARKER_PABLO_SRC) -t $(MARKER_TEMPLATE) -l $(MARKER_PREFIX) -o $(MARKER_OUTFILE) $(PABLO_ADD_DEBUG)
     
    6872        python $(PABLO_COMPILER) $(LOGBASE2_GROUP_STRMS) -t $(MAIN_TEMPLATE) -l $(GROUP_PREFIX) -o $(MAIN_OUTFILE) $(PABLO_ADD_DEBUG)
    6973
    70 div2_logbase2_group: logbase2_group_strms.py group_strms_template.hpp main_template.cpp
     74div2_logbase2_group: div2_logbase2_group_strms.py group_strms_template.hpp main_template.cpp
    7175        python $(PABLO_COMPILER) $(DIV2_LOGBASE2_GROUP_STRMS) -t $(GROUP_TEMPLATE) -l $(GROUP_PREFIX) -o $(GROUP_OUTFILE) $(PABLO_ADD_DEBUG)
    7276        python $(PABLO_COMPILER) $(DIV2_LOGBASE2_GROUP_STRMS) -t $(MAIN_TEMPLATE) -l $(GROUP_PREFIX) -o $(MAIN_OUTFILE) $(PABLO_ADD_DEBUG)
     77
     78single_group: single_group_strms.py group_strms_template.hpp main_template.cpp
     79        python $(PABLO_COMPILER) $(SINGLE_GROUP_STRMS) -t $(GROUP_TEMPLATE) -l $(GROUP_PREFIX) -o $(GROUP_OUTFILE) $(PABLO_ADD_DEBUG)
     80        python $(PABLO_COMPILER) $(SINGLE_GROUP_STRMS) -t $(MAIN_TEMPLATE) -l $(GROUP_PREFIX) -o $(MAIN_OUTFILE) $(PABLO_ADD_DEBUG)
    7381
    7482clean:
  • trunk/symbol_table/demo_strms.py

    r2098 r2103  
    4343        ('groups.follows_14', bitstream2string(groups.follows_14, lgth)),
    4444        ('groups.follows_16', bitstream2string(groups.follows_16, lgth)),
    45         ('groups.follows_gte_17', bitstream2string(groups.follows_gte_17, lgth))])
     45        ('groups.follows_0', bitstream2string(groups.follows_0, lgth))])
    4646
    4747def Demo_logbase2(u8data, basis_bits):
     
    6969        ('groups.follows_8', bitstream2string(groups.follows_8, lgth)),
    7070        ('groups.follows_16', bitstream2string(groups.follows_16, lgth)),
    71         ('groups.follows_gte_17', bitstream2string(groups.follows_gte_17, lgth))])
     71        ('groups.follows_0', bitstream2string(groups.follows_0, lgth))])
    7272
    7373def Demo_div2_logbase2(u8data, basis_bits):
     
    9595        ('groups.follows_8', bitstream2string(groups.follows_8, lgth)),
    9696        ('groups.follows_16', bitstream2string(groups.follows_16, lgth)),
    97         ('groups.follows_gte_17', bitstream2string(groups.follows_gte_17, lgth))])
     97        ('groups.follows_0', bitstream2string(groups.follows_0, lgth))])
    9898
    9999if __name__ == "__main__":
  • trunk/symbol_table/div2_group_strms.py

    r2101 r2103  
    1313        follows_14 = 0
    1414        follows_16 = 0
    15         follows_gte_17 = 0
     15        follows_0 = 0
    1616
    1717def Gen_lgth_groups(groups):
     
    5656        follows_gt_16 = follows_gt_14 &~ follows_mask_15_16
    5757
    58         groups.follows_gte_17 = follows_gt_16
     58        groups.follows_0 = follows_gt_16
    5959
    6060def Main(groups):
  • trunk/symbol_table/div2_logbase2_group_strms.py

    r2101 r2103  
    99        follows_8 = 0
    1010        follows_16 = 0
    11         follows_gte_17 = 0
     11        follows_0 = 0
    1212
    1313def Gen_lgth_groups(groups):
     
    3737
    3838        ### Log2 Strategy ###
    39         follows_mask_1_8 = follows_mask_1_2 | follows_mask_3_4 | follows_mask_5_6 | follows_mask_7_8
     39        # Groups symbols of length 9 to length 16
     40
     41        follows_mask_1_8 = (follows_mask_1_2 | follows_mask_3_4 | follows_mask_5_6 | follows_mask_7_8)
    4042        # Naive Advance
    4143        follows_mask_9_16 = pablo.Advance(pablo.Advance(pablo.Advance(pablo.Advance(pablo.Advance(pablo.Advance(pablo.Advance(pablo.Advance(follows_mask_1_8))))))))
    42 
    43         # Groups symbols of length 9 to length 16
    4444        groups.follows_16 = follows_gt_8 & follows_mask_9_16
    4545
    4646        # Advance 32 and Interpose
    47         # temp32 = pablo.Advance32 (follows_mask_1_8)
    48         # groups.follows_16 = interpose32 (temp, temp32, 8)
     47        #temp32 = pablo.Advance32 (follows_mask_1_8)
     48        #groups.follows_16 = follows_gt_8 & interpose32 (follows_mask_1_8, temp32, 8)
    4949
    50         follows_gt_16 = follows_gt_8 &~ follows_mask_9_16
     50        follows_gt_16 = follows_gt_8 &~ groups.follows_16
    5151
    5252        # Groups symbols of length greater than 16
    53         groups.follows_gte_17 = follows_gt_16
     53        groups.follows_0 = follows_gt_16
    5454
    5555def Main(groups):
  • trunk/symbol_table/id_group_strms.py

    r2097 r2103  
    2121        follows_15 = 0
    2222        follows_16 = 0
    23         follows_gte_17 = 0
     23        follows_0 = 0
    2424
    2525def Gen_lgth_groups(groups):
     
    109109
    110110        # Group symbols of length greater than 16
    111         groups.follows_gte_17 = temp
     111        groups.follows_0 = temp
    112112
    113113def Main(groups):
  • trunk/symbol_table/logbase2_group_strms.py

    r2098 r2103  
    99        follows_8 = 0
    1010        follows_16 = 0
    11         follows_gte_17 = 0
     11        follows_0 = 0
    1212
    1313def Gen_lgth_groups(groups):
     
    5151
    5252    # Group symbols of length 17 and longer
    53     groups.follows_gte_17 = remaining_follows
     53    groups.follows_0 = remaining_follows
    5454
    5555def Main(groups):
  • trunk/symbol_table/main_template.cpp

    r2101 r2103  
    113113    BitBlock * starts = &lookback_starts[LOOKBACK_SIZE/BLOCK_SIZE];
    114114
    115     // follows_gte_17
    116     BitBlock aligned_follows_gte_17[SEGMENT_ALLOC_SIZE/8];
    117     BitBlock * lookback_follows_gte_17 = (BitBlock *) aligned_follows_gte_17;
    118     memset(lookback_follows_gte_17,0,LOOKBACK_SIZE/BLOCK_SIZE);
    119     BitBlock * follows_gte_17 = &lookback_follows_gte_17[LOOKBACK_SIZE/BLOCK_SIZE];
     115    // follows_0 - Arbitrary length symbols
     116    BitBlock aligned_follows_0[SEGMENT_ALLOC_SIZE/8];
     117    BitBlock * lookback_follows_0 = (BitBlock *) aligned_follows_0;
     118    memset(lookback_follows_0,0,LOOKBACK_SIZE/BLOCK_SIZE);
     119    BitBlock * follows_0 = &lookback_follows_0[LOOKBACK_SIZE/BLOCK_SIZE];
    120120
    121121    // BitSteams - Without lookback
     
    152152        h1[blk] = hash[blk].h1;
    153153        starts[blk] = groups[blk].starts;
    154         follows_gte_17[blk] = groups[blk].follows_gte_17;
     154        follows_0[blk] = groups[blk].follows_0;
    155155    }
    156156
    157157    PERF_SEC_START(parser_timer);
    158     st.resolve(raw_buffer, groups, starts, follows_gte_17, h0, h1, SEGMENT_BLOCKS, gids);
     158    st.resolve(raw_buffer, groups, starts, follows_0, h0, h1, SEGMENT_BLOCKS, gids);
    159159    PERF_SEC_END(parser_timer, SEGMENT_SIZE);
    160160
     
    166166
    167167    memmove(lookback_starts,&((uint8_t *)starts)[(SEGMENT_SIZE-LOOKBACK_SIZE)/8],LOOKBACK_SIZE/8);
    168     memmove(lookback_follows_gte_17,&((uint8_t *)follows_gte_17)[(SEGMENT_SIZE-LOOKBACK_SIZE)/8],LOOKBACK_SIZE/8);
     168    memmove(lookback_follows_0,&((uint8_t *)follows_0)[(SEGMENT_SIZE-LOOKBACK_SIZE)/8],LOOKBACK_SIZE/8);
    169169
    170170    //lookback_h0[0] = h0[SEGMENT_BLOCKS-1];
     
    227227        h1[blk] = hash[blk].h1;
    228228        starts[blk] = groups[blk].starts;
    229         follows_gte_17[blk] = groups[blk].follows_gte_17;
    230     }
    231 
     229        follows_0[blk] = groups[blk].follows_0;
     230    }
     231
     232    // PERF_SEC_BIND(0);
    232233    PERF_SEC_START(parser_timer);
    233     st.resolve(raw_buffer, groups, starts, follows_gte_17, h0, h1, segment_blocks, gids);
     234    st.resolve(raw_buffer, groups, starts, follows_0, h0, h1, segment_blocks, gids);
    234235    PERF_SEC_END(parser_timer, chars_avail+1);
    235236
  • trunk/symbol_table/src/Makefile

    r2101 r2103  
    1 CC= g++ $(CFLAGS) #-fno-inline -O3 # -g
     1CC= g++ $(CFLAGS) -O3 #-fno-inline #-g
    22SSE=-msse2 #-mssse3 #-msse4.2
    33CFLAGS= $(SSE)
     
    2828
    2929div2_logbase2: basis_bits.hpp buffer.hpp byte_pool.hpp hash_strms.hpp  hash_table.hpp ../lib/hash.hpp  group_strms.hpp  symbol_table.hpp  main.cpp  marker_strms.hpp symbol_table.hpp transpose.hpp
    30         $(CC) -o div2_logbase2 main.cpp $(AFLAGS) -DDIV2_LOGBASE2_STRATEGY -DBUFFER_PROFILING -DID_SYMBOL_TABLE_TEMPLATE_HPP_DEBUG  #-DHASH_TABLE_HPP_DEBUG
     30        $(CC) -o div2_logbase2 main.cpp $(AFLAGS) -DDIV2_LOGBASE2_STRATEGY -DBUFFER_PROFILING #-DID_SYMBOL_TABLE_TEMPLATE_HPP_DEBUG  #-DHASH_TABLE_HPP_DEBUG
     31
     32single: basis_bits.hpp buffer.hpp byte_pool.hpp hash_strms.hpp  hash_table.hpp ../lib/hash.hpp  group_strms.hpp  symbol_table.hpp  main.cpp  marker_strms.hpp symbol_table.hpp transpose.hpp
     33        $(CC) -o single main.cpp $(AFLAGS) -DSINGLE_STRATEGY -DBUFFER_PROFILING -DID_SYMBOL_TABLE_TEMPLATE_HPP_DEBUG  #-DHASH_TABLE_HPP_DEBUG
     34
    3135
    3236# Diff Tests
     
    5155        diff -rq --exclude=".svn" $(TEST_SRC_DIR) $(TEST_DST_DIR) || exit 0
    5256
     57single_diff_test: single
     58        $(CC) -o single main.cpp $(AFLAGS) -DSINGLE_STRATEGY -DIDENTITY_TEST
     59        python $(TEST_SCRIPT) single -d
     60        diff -rq --exclude=".svn" $(TEST_SRC_DIR) $(TEST_DST_DIR) || exit 0
     61
    5362# GID Tests
    5463id_gid_test:
     
    6877        python $(TEST_SCRIPT) div2_logbase2 -g
    6978
     79single_gid_test:
     80        $(CC) -o single main.cpp $(AFLAGS) -DSINGLE_STRATEGY -DGID_TEST
     81        python $(TEST_SCRIPT) single -g
     82
    7083clean:
    71         rm -Rf id div2 logbase2 div2_logbase2 $(TEST_DST_DIR)
    72 
    73 
     84        rm -Rf id div2 logbase2 div2_logbase2 single $(TEST_DST_DIR)
    7485
    7586# valgrind --tool=callgrind --callgrind-out-file=./callgrind.out ./logbase2 ../test/in/\(1_1000_10\)_\(2_1000_10\)_\(3_1000_10\)_\(4_1000_10\)_\(5_1000_10\)_\(6_1000_10\)_\(7_1000_10\)_\(8_1000_10\)_\(9_1000_10\)_\(10_1000_10\)_\(11_1000_10\)_\(12_1000_10\)_\(13_1000_10\)_\(14_1000_10\)_\(15_1000_10\)_\(16_1000_10\)_\(17_1000_10\)_\(18_1000_10\)_\(19_1000_10\)_1_1.test
  • trunk/symbol_table/src/compare_strategy.hpp

    r2095 r2103  
    186186};
    187187
     188///////////////////////////////////////////////////////////////////////////////
     189// Single specialized
     190///////////////////////////////////////////////////////////////////////////////
     191template<> class compare_strategy_t<0,single> {
     192public:
     193    static IDISA_ALWAYS_INLINE bool compare(uint8_t * x, uint8_t * y, const uint32_t lgth) {
     194        return overlap_compare<uint8_t>(x,y,lgth);
     195    }
     196};
     197
    188198#endif // COMPARE_STRATEGY_HPP
  • trunk/symbol_table/src/hash_table.hpp

    r2101 r2103  
    450450class logbase2_hash_table : public hash_table<LGTH, GROUP_STRATEGY, SCALE_FACTOR, ALLOCATOR> {};
    451451
     452///////////////////////////////////////////////////////////////////////////
     453// single - Single Strategy
     454///////////////////////////////////////////////////////////////////////////
     455template<uint32_t LGTH, int GROUP_STRATEGY, int SCALE_FACTOR, class ALLOCATOR>
     456class single_hash_table : public hash_table<LGTH, GROUP_STRATEGY, SCALE_FACTOR, ALLOCATOR> {};
     457
     458
    452459#endif // HASH_TABLE_HPP
  • trunk/symbol_table/src/main.cpp

    r2101 r2103  
    113113    BitBlock * starts = &lookback_starts[LOOKBACK_SIZE/BLOCK_SIZE];
    114114
    115     // follows_gte_17
    116     BitBlock aligned_follows_gte_17[SEGMENT_ALLOC_SIZE/8];
    117     BitBlock * lookback_follows_gte_17 = (BitBlock *) aligned_follows_gte_17;
    118     memset(lookback_follows_gte_17,0,LOOKBACK_SIZE/BLOCK_SIZE);
    119     BitBlock * follows_gte_17 = &lookback_follows_gte_17[LOOKBACK_SIZE/BLOCK_SIZE];
     115    // follows_0 - Arbitrary length symbols
     116    BitBlock aligned_follows_0[SEGMENT_ALLOC_SIZE/8];
     117    BitBlock * lookback_follows_0 = (BitBlock *) aligned_follows_0;
     118    memset(lookback_follows_0,0,LOOKBACK_SIZE/BLOCK_SIZE);
     119    BitBlock * follows_0 = &lookback_follows_0[LOOKBACK_SIZE/BLOCK_SIZE];
    120120
    121121    // BitSteams - Without lookback
     
    152152        h1[blk] = hash[blk].h1;
    153153        starts[blk] = groups[blk].starts;
    154         follows_gte_17[blk] = groups[blk].follows_gte_17;
     154        follows_0[blk] = groups[blk].follows_0;
    155155    }
    156156
    157157    PERF_SEC_START(parser_timer);
    158     st.resolve(raw_buffer, groups, starts, follows_gte_17, h0, h1, SEGMENT_BLOCKS, gids);
     158    st.resolve(raw_buffer, groups, starts, follows_0, h0, h1, SEGMENT_BLOCKS, gids);
    159159    PERF_SEC_END(parser_timer, SEGMENT_SIZE);
    160160
     
    166166
    167167    memmove(lookback_starts,&((uint8_t *)starts)[(SEGMENT_SIZE-LOOKBACK_SIZE)/8],LOOKBACK_SIZE/8);
    168     memmove(lookback_follows_gte_17,&((uint8_t *)follows_gte_17)[(SEGMENT_SIZE-LOOKBACK_SIZE)/8],LOOKBACK_SIZE/8);
     168    memmove(lookback_follows_0,&((uint8_t *)follows_0)[(SEGMENT_SIZE-LOOKBACK_SIZE)/8],LOOKBACK_SIZE/8);
    169169
    170170    //lookback_h0[0] = h0[SEGMENT_BLOCKS-1];
     
    213213    // Final partial block or any carry
    214214    ///////////////////////////////////////////////////////////////////////////
    215     if (remaining > 0 || generate_markers.carryQ.CarryTest(0, 2) || gen_lgth_groups.carryQ.CarryTest(0, 17) /*|| hash_strms_any_carry*/) {
     215    if (remaining > 0 || generate_markers.carryQ.CarryTest(0, 2) || 1 /*|| hash_strms_any_carry*/) {
    216216        BitBlock EOF_mask = bitblock::srl(simd<1>::constant<1>(), convert(BLOCK_SIZE-remaining));
    217217        s2p_do_final_block((BytePack *) &raw_buffer[blk*BLOCK_SIZE], basis_bits[blk], EOF_mask);
     
    227227        h1[blk] = hash[blk].h1;
    228228        starts[blk] = groups[blk].starts;
    229         follows_gte_17[blk] = groups[blk].follows_gte_17;
    230     }
    231 
     229        follows_0[blk] = groups[blk].follows_0;
     230    }
     231
     232    // PERF_SEC_BIND(0);
    232233    PERF_SEC_START(parser_timer);
    233     st.resolve(raw_buffer, groups, starts, follows_gte_17, h0, h1, segment_blocks, gids);
     234    st.resolve(raw_buffer, groups, starts, follows_0, h0, h1, segment_blocks, gids);
    234235    PERF_SEC_END(parser_timer, chars_avail+1);
    235236
  • trunk/symbol_table/src/symbol_table.hpp

    r2101 r2103  
    9090//      hash_table_15.print_table();
    9191//      hash_table_16.print_table();
    92 //      hash_table_gte_17.print_table();
     92//      hash_table_0.print_table();
    9393#ifdef HASH_TABLE_HPP_DEBUG
    9494//      hash_table_1.print_diagnostics();
     
    108108//      hash_table_15.print_diagnostics();
    109109//      hash_table_16.print_diagnostics();
    110 //      hash_table_gte_17.print_diagnostics();
     110//      hash_table_0.print_diagnostics();
    111111#endif
    112112        }
    113113
    114114        // Groups & groups
    115         void resolve(uint8_t buffer [], Groups groups [],  BitBlock starts [], BitBlock follows_gte_17 [],
     115        void resolve(uint8_t buffer [], Groups groups [],  BitBlock starts [], BitBlock follows_0 [],
    116116                                 BitBlock h0 [], BitBlock h1 [], uint32_t segment_blocks, GIDS & gids) {
    117117
     
    206206                            BIT_HASH_FIXED(id,bit,15);
    207207                            BIT_HASH_FIXED(id,bit,16);
     208                            BIT_HASH_VARIABLE(id,bit,0);
    208209                        #elif DIV2_STRATEGY
    209210                            BYTE_HASH_FIXED(div2,byte,2);
     
    215216                            BIT_HASH_FIXED(div2,bit,14);
    216217                            BIT_HASH_FIXED(div2,bit,16);
     218                            BIT_HASH_VARIABLE(id,bit,0);
    217219                        #elif LOGBASE2_STRATEGY
    218220                            BYTE_HASH_VARIABLE(logbase2,byte,1);
     
    221223                            BIT_HASH_VARIABLE(logbase2,bit,8);
    222224                            BIT_HASH_VARIABLE(logbase2,bit,16);
     225                            BIT_HASH_VARIABLE(id,bit,0);
    223226                        #elif DIV2_LOGBASE2_STRATEGY
    224227                            BYTE_HASH_FIXED(div2,byte,2);
     
    226229                            BYTE_HASH_FIXED(div2,byte,6);
    227230                            BIT_HASH_FIXED(div2,bit,8);
    228 //                      BYTE_HASH_FIXED(id,byte,1);
    229 //                      BYTE_HASH_FIXED(id,byte,2);
    230 //                      BYTE_HASH_FIXED(id,byte,3);
    231 //                      BYTE_HASH_FIXED(id,byte,4);
    232 //                      BYTE_HASH_FIXED(id,byte,5);
    233 //                      BYTE_HASH_FIXED(id,byte,6);
    234 //                      BYTE_HASH_FIXED(id,byte,7);
    235 //                      BIT_HASH_FIXED(id,bit,8);
    236231                            BIT_HASH_VARIABLE(logbase2,bit,16);
     232                            BIT_HASH_VARIABLE(id,bit,0);
     233                        #elif SINGLE_STRATEGY
     234                            BIT_HASH_VARIABLE(single,bit,0);
    237235                        #endif
    238236
     
    242240                        #undef BIT_HASH_VARIABLE
    243241
    244                         if(bitblock::any(groups.follows_gte_17)) {
    245                             do_block<GIDS, id_hash_table<0, id, bit, ALLOCATOR> >
    246                                                 (blk_offset,
    247                                                  hash_table_gte_17,
    248                                                  starts, &groups.follows_gte_17,
    249                                                  buffer,
    250                                                  (uint8_t *)h0, (uint8_t *)h1, BLOCK_SIZE/8,
    251                                                  gids, this->gid_factory, this->gid_data);
    252                         }
     242//                      #ifdef SINGLE_STRATEGY
     243
     244//                      if(bitblock::any(groups.follows_0)) {
     245//                          do_block<GIDS, id_hash_table<0, id, bit, ALLOCATOR> >
     246//                                              (blk_offset,
     247//                                               hash_table_0,
     248//                                               starts, &groups.follows_0,
     249//                                               buffer,
     250//                                               (uint8_t *)h0, (uint8_t *)h1, BLOCK_SIZE/8,
     251//                                               gids, this->gid_factory, this->gid_data);
     252//                      }
     253
     254//                      #else
    253255        }
    254256
     
    281283            id_hash_table<15, id, bit, ALLOCATOR> hash_table_15;
    282284            id_hash_table<16, id, bit, ALLOCATOR> hash_table_16;
     285            id_hash_table<0, id, bit, ALLOCATOR> hash_table_0;
    283286        #elif DIV2_STRATEGY
    284287            div2_hash_table<2, div2, byte, ALLOCATOR> hash_table_2;
     
    290293            div2_hash_table<14, div2, bit, ALLOCATOR> hash_table_14;
    291294            div2_hash_table<16, div2, bit, ALLOCATOR> hash_table_16;
     295            id_hash_table<0, id, bit, ALLOCATOR> hash_table_0;
    292296        #elif LOGBASE2_STRATEGY
    293297            logbase2_hash_table<1, logbase2, byte, ALLOCATOR> hash_table_1;
     
    296300            logbase2_hash_table<8, logbase2, bit, ALLOCATOR> hash_table_8;
    297301            logbase2_hash_table<16, logbase2, bit, ALLOCATOR> hash_table_16;
     302            id_hash_table<0, id, bit, ALLOCATOR> hash_table_0;
    298303        #elif DIV2_LOGBASE2_STRATEGY
    299304            div2_hash_table<2, div2, byte, ALLOCATOR> hash_table_2;
     
    310315//      id_hash_table<8, id, bit, ALLOCATOR> hash_table_8;
    311316            logbase2_hash_table<16, logbase2, bit, ALLOCATOR> hash_table_16;
     317            id_hash_table<0, id, bit, ALLOCATOR> hash_table_0;
     318        #elif SINGLE_STRATEGY
     319            single_hash_table<0, single, bit, ALLOCATOR> hash_table_0;
    312320        #else
    313             #error "Length group strategy not specified. #define {ID_STRATEGY,DIV2_STRATEGY,LOGBASE2_STRATEGY,DIV2_LOGBASE2_STRATEGY}."
     321            #error "Length group strategy not specified. #define {ID_STRATEGY,DIV2_STRATEGY,LOGBASE2_STRATEGY,DIV2_LOGBASE2_STRATEGY,SINGLE}."
    314322        #endif
    315323
    316         id_hash_table<0, id, bit, ALLOCATOR> hash_table_gte_17;
     324
    317325};
    318326
  • trunk/symbol_table/src/types.hpp

    r2092 r2103  
    22#define TYPES_HPP
    33
    4 enum group_strategy { id, div2, logbase2 };
     4enum group_strategy { id, div2, logbase2, single };
    55enum scale_factor { bit=1, byte=8 };
    66
  • trunk/symbol_table/symbol_table.pro

    r2101 r2103  
    5656    test/gen_test_file.py \
    5757    logbase2_group_strms.py \
    58     div2_logbase2_group_strms.py
     58    div2_logbase2_group_strms.py \
     59    single_group_strms .py \
     60    single_group_strms .py \
     61    single_group_strms .py \
     62    single_group_strms.py
    5963HEADERS += marker_strms_template.hpp \
    6064    marker_strms.hpp \
Note: See TracChangeset for help on using the changeset viewer.