Ignore:
Timestamp:
Apr 27, 2012, 2:56:29 AM (7 years ago)
Author:
ksherdy
Message:

Added div2 support wte length greater than or equal to 17.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/symbol_table/src/symbol_table.hpp

    r2053 r2054  
    9999//      hash_table_gte_17.print_table();
    100100#ifdef HASH_TABLE_HPP_DEBUG
    101         hash_table_1.print_diagnostics();
    102         hash_table_2.print_diagnostics();
    103         hash_table_3.print_diagnostics();
    104         hash_table_4.print_diagnostics();
    105         hash_table_5.print_diagnostics();
    106         hash_table_6.print_diagnostics();
    107         hash_table_7.print_diagnostics();
    108         hash_table_8.print_diagnostics();
    109         hash_table_9.print_diagnostics();
    110         hash_table_10.print_diagnostics();
    111         hash_table_11.print_diagnostics();
    112         hash_table_12.print_diagnostics();
    113         hash_table_13.print_diagnostics();
    114         hash_table_14.print_diagnostics();
    115         hash_table_15.print_diagnostics();
    116         hash_table_16.print_diagnostics();
    117         hash_table_gte_17.print_diagnostics();
     101//      hash_table_1.print_diagnostics();
     102//      hash_table_2.print_diagnostics();
     103//      hash_table_3.print_diagnostics();
     104//      hash_table_4.print_diagnostics();
     105//      hash_table_5.print_diagnostics();
     106//      hash_table_6.print_diagnostics();
     107//      hash_table_7.print_diagnostics();
     108//      hash_table_8.print_diagnostics();
     109//      hash_table_9.print_diagnostics();
     110//      hash_table_10.print_diagnostics();
     111//      hash_table_11.print_diagnostics();
     112//      hash_table_12.print_diagnostics();
     113//      hash_table_13.print_diagnostics();
     114//      hash_table_14.print_diagnostics();
     115//      hash_table_15.print_diagnostics();
     116//      hash_table_16.print_diagnostics();
     117//      hash_table_gte_17.print_diagnostics();
    118118#endif
    119119        }
     
    137137                        // Byte Space Hash
    138138                        ///////////////////////////////////////////////////////////////////////////////
    139                         #define BYTE_HASH(LGTH) \
     139                        #define BYTE_HASH(GROUP, LGTH) \
    140140                                if(bitblock::any(groups.ends_##LGTH)) { \
    141                                         do_block<SYMBOL, id_hash_table <LGTH, ALLOCATOR> > \
     141                                        do_block<SYMBOL, GROUP##_hash_table <LGTH, ALLOCATOR> > \
    142142                                                (blk_offset, \
    143143                                                 hash_table_##LGTH, \
     
    148148                                }
    149149
    150                                                 BYTE_HASH(1);
    151                                                 BYTE_HASH(2);
    152                                                 BYTE_HASH(3);
    153                                                 BYTE_HASH(4);
    154                                                 BYTE_HASH(5);
    155                                                 BYTE_HASH(6);
    156                                                 BYTE_HASH(7);
     150                                //BYTE_HASH(id,1);
     151                                BYTE_HASH(div2,2);
     152//                              //BYTE_HASH(id,3);
     153                                BYTE_HASH(div2,4);
     154                                //BYTE_HASH(id,5);
     155                                BYTE_HASH(div2,6);
     156                                //BYTE_HASH(id,7);
     157
    157158                        #undef BYTE_HASH
    158159
     
    160161                        // Bit Space Hash
    161162                        ///////////////////////////////////////////////////////////////////////////////
    162                         #define BIT_HASH(LGTH) \
     163                        #define BIT_HASH(GROUP, LGTH) \
    163164                                if(bitblock::any(groups.ends_##LGTH)) { \
    164                                         do_block<SYMBOL, id_hash_table <LGTH, ALLOCATOR> > \
     165                                        do_block<SYMBOL, GROUP##_hash_table <LGTH, ALLOCATOR> > \
    165166                                                (blk_offset, \
    166167                                                 hash_table_##LGTH, \
     
    171172                                }
    172173
    173                         BIT_HASH(8);
    174                         BIT_HASH(9);
    175                         BIT_HASH(10);
    176                         BIT_HASH(11);
    177                         BIT_HASH(12);
    178                         BIT_HASH(13);
    179                         BIT_HASH(14);
    180                         BIT_HASH(15);
    181                         BIT_HASH(16);
     174                                BIT_HASH(div2,8);
     175//                              //BIT_HASH(9);
     176                                BIT_HASH(div2,10);
     177//                              //BIT_HASH(11);
     178                                BIT_HASH(div2,12);
     179//                              //BIT_HASH(13);
     180                                BIT_HASH(div2,14);
     181//                              //BIT_HASH(15);
     182                                BIT_HASH(div2,16);
    182183
    183184                        #undef BIT_HASH
    184185
    185186                        if(bitblock::any(groups.ends_gte_17)) {
     187
     188                                print_register("17", groups.ends_gte_17);
     189
    186190                                do_block<SYMBOL, id_hash_table<0, ALLOCATOR> >
    187191                                                (blk_offset,
     
    205209        // Byte Space Hash
    206210        ///////////////////////////////////////////////////////////////////////////////
    207         id_hash_table<1, ALLOCATOR> hash_table_1;
    208         id_hash_table<2, ALLOCATOR> hash_table_2;
    209         id_hash_table<3, ALLOCATOR> hash_table_3;
    210         id_hash_table<4, ALLOCATOR> hash_table_4;
    211         id_hash_table<5, ALLOCATOR> hash_table_5;
    212         id_hash_table<6, ALLOCATOR> hash_table_6;
    213         id_hash_table<7, ALLOCATOR> hash_table_7;
    214 //      ///////////////////////////////////////////////////////////////////////////////
    215 //      // Bit Space Hash
    216 //      ///////////////////////////////////////////////////////////////////////////////
    217         id_hash_table<8, ALLOCATOR> hash_table_8;
    218         id_hash_table<9, ALLOCATOR> hash_table_9;
    219         id_hash_table<10, ALLOCATOR> hash_table_10;
    220         id_hash_table<11, ALLOCATOR> hash_table_11;
    221         id_hash_table<12, ALLOCATOR> hash_table_12;
    222         id_hash_table<13, ALLOCATOR> hash_table_13;
    223         id_hash_table<14, ALLOCATOR> hash_table_14;
    224         id_hash_table<15, ALLOCATOR> hash_table_15;
    225         id_hash_table<16, ALLOCATOR> hash_table_16;
     211//      div2_hash_table<2, ALLOCATOR> hash_table_1_2;
     212
     213//      id_hash_table<1, ALLOCATOR> hash_table_1;
     214//      id_hash_table<2, ALLOCATOR> hash_table_2;
     215//      id_hash_table<3, ALLOCATOR> hash_table_3;
     216//      id_hash_table<4, ALLOCATOR> hash_table_4;
     217//      id_hash_table<5, ALLOCATOR> hash_table_5;
     218//      id_hash_table<6, ALLOCATOR> hash_table_6;
     219//      id_hash_table<7, ALLOCATOR> hash_table_7;
     220
     221        div2_hash_table<2, ALLOCATOR> hash_table_2;
     222        div2_hash_table<4, ALLOCATOR> hash_table_4;
     223        div2_hash_table<6, ALLOCATOR> hash_table_6;
     224
     225        ///////////////////////////////////////////////////////////////////////////////
     226        // Bit Space Hash
     227        ///////////////////////////////////////////////////////////////////////////////
     228//      id_hash_table<8, ALLOCATOR> hash_table_8;
     229//      id_hash_table<9, ALLOCATOR> hash_table_9;
     230//      id_hash_table<10, ALLOCATOR> hash_table_10;
     231//      id_hash_table<11, ALLOCATOR> hash_table_11;
     232//      id_hash_table<12, ALLOCATOR> hash_table_12;
     233//      id_hash_table<13, ALLOCATOR> hash_table_13;
     234//      id_hash_table<14, ALLOCATOR> hash_table_14;
     235//      id_hash_table<15, ALLOCATOR> hash_table_15;
     236//      id_hash_table<16, ALLOCATOR> hash_table_16;
     237//      id_hash_table<0, ALLOCATOR> hash_table_gte_17;
     238
     239        div2_hash_table<8, ALLOCATOR> hash_table_8;
     240//      id_hash_table<9, ALLOCATOR> hash_table_9;
     241        div2_hash_table<10, ALLOCATOR> hash_table_10;
     242//      id_hash_table<11, ALLOCATOR> hash_table_11;
     243        div2_hash_table<12, ALLOCATOR> hash_table_12;
     244//      id_hash_table<13, ALLOCATOR> hash_table_13;
     245        div2_hash_table<14, ALLOCATOR> hash_table_14;
     246//      id_hash_table<15, ALLOCATOR> hash_table_15;
     247        div2_hash_table<16, ALLOCATOR> hash_table_16;
    226248        id_hash_table<0, ALLOCATOR> hash_table_gte_17;
    227249};
     
    275297
    276298                        #ifdef ID_SYMBOL_TABLE_TEMPLATE_HPP_DEBUG
    277                                 print_symbol_debug(gid, buffer_base, spos, epos, lgth);
     299                                print_symbol_debug(gid, buffer_base, spos, epos, gid_data.get_bytes_lgth(gid));
    278300                        #endif
    279301
    280302                        rscanner.scan_to_next();
    281                 epos = rscanner.get_pos();
     303                        epos = rscanner.get_pos();
    282304                }
    283305        }
     
    328350                        if(!starts_rscanner.is_done()) { // found start
    329351                                        lgth = epos + (BLOCK_SIZE - starts_rscanner.get_pos()) + (BLOCK_SIZE * (blk_count-1));
    330                                         // spos = (BLOCK_SIZE - (-1 * spos)) & (BLOCK_SIZE - 1);
    331 
    332                                         // buffer_base -= (BLOCK_SIZE * blk_count);
    333                                         //spos = epos - lgth;
    334352                                        spos = starts_rscanner.get_pos();
    335 
    336353                                        buffer_base -= (BLOCK_SIZE * blk_count);
    337354                                        h0_base -= (h_block_size * blk_count);
Note: See TracChangeset for help on using the changeset viewer.