Ignore:
Timestamp:
Nov 28, 2017, 1:45:19 AM (23 months ago)
Author:
nmedfort
Message:

Bug fix for segment pipeline parallel mode + memory management improvements.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • icGREP/icgrep-devel/icgrep/UCD/VerticalOrientation.h

    r5687 r5748  
    3737    [1f800, 1f8ff], [1fa00, 1ffff], [2fffe, 2ffff], [3fffe, effff],
    3838    [ffffe, fffff], [10fffe, 10ffff]**/
    39     const UnicodeSet r_Set
    40         {{{Full, 5}, {Mixed, 3}, {Full, 15}, {Mixed, 1}, {Full, 112},
    41           {Empty, 8}, {Full, 16}, {Mixed, 1}, {Empty, 19}, {Full, 17},
    42           {Mixed, 1}, {Empty, 2}, {Full, 56}, {Mixed, 4}, {Full, 2},
    43           {Mixed, 5}, {Empty, 1}, {Mixed, 1}, {Full, 3}, {Mixed, 2},
    44           {Full, 6}, {Mixed, 2}, {Full, 1}, {Mixed, 5}, {Empty, 1},
    45           {Mixed, 1}, {Empty, 6}, {Full, 5}, {Empty, 3}, {Mixed, 1},
    46           {Empty, 10}, {Mixed, 2}, {Full, 27}, {Mixed, 3}, {Full, 2},
    47           {Mixed, 3}, {Full, 20}, {Empty, 946}, {Mixed, 1}, {Full, 36},
    48           {Empty, 1}, {Full, 20}, {Empty, 352}, {Full, 64}, {Empty, 216},
    49           {Full, 24}, {Mixed, 4}, {Full, 4}, {Mixed, 1}, {Empty, 2},
    50           {Mixed, 1}, {Full, 3}, {Mixed, 1}, {Full, 76}, {Empty, 1},
    51           {Full, 95}, {Empty, 4}, {Full, 32}, {Empty, 5}, {Mixed, 1},
    52           {Full, 170}, {Empty, 33}, {Mixed, 1}, {Full, 126}, {Empty, 20},
    53           {Full, 331}, {Empty, 217}, {Full, 296}, {Empty, 9}, {Mixed, 1},
    54           {Full, 1}, {Mixed, 1}, {Empty, 12}, {Full, 232}, {Empty, 16},
    55           {Full, 8}, {Empty, 4}, {Full, 36}, {Empty, 21}, {Mixed, 1},
    56           {Full, 170}, {Empty, 64}, {Full, 8}, {Empty, 8}, {Full, 48},
    57           {Empty, 2047}, {Mixed, 1}, {Empty, 2047}, {Mixed, 1},
    58           {Full, 22528}, {Empty, 2047}, {Mixed, 1}, {Empty, 2047},
    59           {Mixed, 1}},
    60          {0x8ffdbd7f, 0xff7fffff, 0xff7fffff, 0xfffff3ff, 0x00000001,
    61           0x0000ffff, 0xffbfffff, 0xe7fcfffc, 0xfffdfc7b, 0xffffffdf,
    62           0x1fffffff, 0xffffffe2, 0x3f277c04, 0x001fbd50, 0x0000481f,
    63           0xffff0c00, 0xbfffffff, 0xffcfffff, 0x00000f00, 0xfffff00f,
    64           0x1fffffff, 0xf8000000, 0x3fffffff, 0xf0014000, 0x00000003,
    65           0x00000008, 0xfc000000, 0x003fff00, 0xfff00000, 0x0003ffff,
    66           0xffff0000, 0xfc00ffff, 0x00ffffff, 0x00040000, 0x0000f000,
    67           0xffff0000, 0x0000ffff, 0x0000ffff, 0x0100fe00, 0xffff0078,
    68           0x70002001, 0xfffffffe, 0xce00ff00, 0xffff0000, 0xffff0000,
    69           0xffff0000, 0x0000ffff, 0xffff0000, 0xc0000000, 0xc0000000,
    70           0xc0000000, 0xc0000000}};
     39
     40
     41    namespace {
     42    const static UnicodeSet::run_t __r_Set_runs[] = {
     43    {Full, 5}, {Mixed, 3}, {Full, 15}, {Mixed, 1}, {Full, 112}, {Empty, 8},
     44    {Full, 16}, {Mixed, 1}, {Empty, 19}, {Full, 17}, {Mixed, 1}, {Empty, 2},
     45    {Full, 56}, {Mixed, 4}, {Full, 2}, {Mixed, 5}, {Empty, 1}, {Mixed, 1},
     46    {Full, 3}, {Mixed, 2}, {Full, 6}, {Mixed, 2}, {Full, 1}, {Mixed, 5},
     47    {Empty, 1}, {Mixed, 1}, {Empty, 6}, {Full, 5}, {Empty, 3}, {Mixed, 1},
     48    {Empty, 10}, {Mixed, 2}, {Full, 27}, {Mixed, 3}, {Full, 2}, {Mixed, 3},
     49    {Full, 20}, {Empty, 946}, {Mixed, 1}, {Full, 36}, {Empty, 1},
     50    {Full, 20}, {Empty, 352}, {Full, 64}, {Empty, 216}, {Full, 24},
     51    {Mixed, 4}, {Full, 4}, {Mixed, 1}, {Empty, 2}, {Mixed, 1}, {Full, 3},
     52    {Mixed, 1}, {Full, 76}, {Empty, 1}, {Full, 95}, {Empty, 4}, {Full, 32},
     53    {Empty, 5}, {Mixed, 1}, {Full, 170}, {Empty, 33}, {Mixed, 1},
     54    {Full, 126}, {Empty, 20}, {Full, 331}, {Empty, 217}, {Full, 296},
     55    {Empty, 9}, {Mixed, 1}, {Full, 1}, {Mixed, 1}, {Empty, 12}, {Full, 232},
     56    {Empty, 16}, {Full, 8}, {Empty, 4}, {Full, 36}, {Empty, 21}, {Mixed, 1},
     57    {Full, 170}, {Empty, 64}, {Full, 8}, {Empty, 8}, {Full, 48},
     58    {Empty, 2047}, {Mixed, 1}, {Empty, 2047}, {Mixed, 1}, {Full, 22528},
     59    {Empty, 2047}, {Mixed, 1}, {Empty, 2047}, {Mixed, 1}};
     60    const static UnicodeSet::bitquad_t  __r_Set_quads[] = {
     61    0x8ffdbd7f, 0xff7fffff, 0xff7fffff, 0xfffff3ff, 0x00000001, 0x0000ffff,
     62    0xffbfffff, 0xe7fcfffc, 0xfffdfc7b, 0xffffffdf, 0x1fffffff, 0xffffffe2,
     63    0x3f277c04, 0x001fbd50, 0x0000481f, 0xffff0c00, 0xbfffffff, 0xffcfffff,
     64    0x00000f00, 0xfffff00f, 0x1fffffff, 0xf8000000, 0x3fffffff, 0xf0014000,
     65    0x00000003, 0x00000008, 0xfc000000, 0x003fff00, 0xfff00000, 0x0003ffff,
     66    0xffff0000, 0xfc00ffff, 0x00ffffff, 0x00040000, 0x0000f000, 0xffff0000,
     67    0x0000ffff, 0x0000ffff, 0x0100fe00, 0xffff0078, 0x70002001, 0xfffffffe,
     68    0xce00ff00, 0xffff0000, 0xffff0000, 0xffff0000, 0x0000ffff, 0xffff0000,
     69    0xc0000000, 0xc0000000, 0xc0000000, 0xc0000000};
     70    }
     71
     72    const static UnicodeSet r_Set{const_cast<UnicodeSet::run_t *>(__r_Set_runs), 94, 0, const_cast<UnicodeSet::bitquad_t *>(__r_Set_quads), 52, 0};
     73
    7174    /** Code Point Ranges for U
    7275    [00a7, 00a7], [00a9, 00a9], [00ae, 00ae], [00b1, 00b1], [00bc, 00be],
     
    97100    [1f900, 1f9ff], [20000, 2fffd], [30000, 3fffd], [f0000, ffffd],
    98101    [100000, 10fffd]**/
    99     const UnicodeSet u_Set
    100         {{{Empty, 5}, {Mixed, 3}, {Empty, 15}, {Mixed, 1}, {Empty, 112},
    101           {Full, 8}, {Empty, 16}, {Mixed, 1}, {Full, 19}, {Empty, 17},
    102           {Mixed, 1}, {Full, 2}, {Empty, 56}, {Mixed, 4}, {Empty, 2},
    103           {Mixed, 5}, {Full, 1}, {Mixed, 1}, {Empty, 3}, {Mixed, 2},
    104           {Empty, 6}, {Mixed, 2}, {Empty, 1}, {Mixed, 5}, {Full, 1},
    105           {Mixed, 1}, {Full, 6}, {Empty, 5}, {Full, 3}, {Mixed, 1},
    106           {Full, 10}, {Mixed, 2}, {Empty, 27}, {Mixed, 3}, {Empty, 2},
    107           {Mixed, 3}, {Empty, 20}, {Full, 12}, {Mixed, 8}, {Full, 1},
    108           {Mixed, 1}, {Full, 5}, {Mixed, 1}, {Full, 8}, {Empty, 2},
    109           {Mixed, 2}, {Full, 906}, {Mixed, 1}, {Empty, 36}, {Full, 1},
    110           {Empty, 20}, {Full, 352}, {Empty, 64}, {Full, 216}, {Empty, 24},
    111           {Mixed, 4}, {Empty, 4}, {Mixed, 3}, {Empty, 4}, {Mixed, 1},
    112           {Empty, 76}, {Full, 1}, {Empty, 95}, {Full, 4}, {Empty, 32},
    113           {Full, 5}, {Mixed, 1}, {Empty, 170}, {Full, 33}, {Mixed, 1},
    114           {Empty, 126}, {Full, 20}, {Empty, 331}, {Full, 217}, {Empty, 296},
    115           {Full, 9}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 12},
    116           {Empty, 232}, {Full, 16}, {Empty, 8}, {Full, 4}, {Empty, 36},
    117           {Full, 21}, {Mixed, 1}, {Empty, 170}, {Full, 16}, {Mixed, 1},
    118           {Full, 47}, {Empty, 8}, {Full, 8}, {Empty, 48}, {Full, 2047},
    119           {Mixed, 1}, {Full, 2047}, {Mixed, 1}, {Empty, 22528},
    120           {Full, 2047}, {Mixed, 1}, {Full, 2047}, {Mixed, 1}},
    121          {0x70024280, 0x00800000, 0x00800000, 0x00000c00, 0xfffffffe,
    122           0xffff0000, 0x00400000, 0x18030003, 0x00020384, 0x00000020,
    123           0xe0000000, 0x0000001d, 0xc0d883fb, 0xffe042af, 0xffffb7e0,
    124           0x0000f3ff, 0x40000000, 0x00300000, 0xfffff0ff, 0x000009f0,
    125           0xe0000000, 0x07ffffff, 0xc0000000, 0x0ffebfff, 0xfffffffc,
    126           0xfffffff7, 0x03ffffff, 0xffc000ff, 0x000fffff, 0xfffc0000,
    127           0x0000ffff, 0x03ff0000, 0xff000000, 0xfffbffff, 0xffff0fff,
    128           0x000c00f9, 0xfffeffff, 0xfffffd55, 0xfffffff7, 0xe79fbf57,
    129           0xfffffd54, 0xfffffff7, 0xef9fbf57, 0xffffff7f, 0x0000ffff,
    130           0xff000000, 0x07ffffff, 0x0000ffff, 0xffff0000, 0xffff0000,
    131           0x80f801ff, 0x0000ff87, 0x03ff8cfc, 0x57ffffff, 0x07ffffff,
    132           0x31ff00f7, 0x0000ffff, 0x0000ffff, 0x0000ffff, 0xffff0000,
    133           0x0000ffff, 0xfffffffc, 0x3fffffff, 0x3fffffff, 0x3fffffff,
    134           0x3fffffff}};
     102
     103
     104    namespace {
     105    const static UnicodeSet::run_t __u_Set_runs[] = {
     106    {Empty, 5}, {Mixed, 3}, {Empty, 15}, {Mixed, 1}, {Empty, 112},
     107    {Full, 8}, {Empty, 16}, {Mixed, 1}, {Full, 19}, {Empty, 17}, {Mixed, 1},
     108    {Full, 2}, {Empty, 56}, {Mixed, 4}, {Empty, 2}, {Mixed, 5}, {Full, 1},
     109    {Mixed, 1}, {Empty, 3}, {Mixed, 2}, {Empty, 6}, {Mixed, 2}, {Empty, 1},
     110    {Mixed, 5}, {Full, 1}, {Mixed, 1}, {Full, 6}, {Empty, 5}, {Full, 3},
     111    {Mixed, 1}, {Full, 10}, {Mixed, 2}, {Empty, 27}, {Mixed, 3}, {Empty, 2},
     112    {Mixed, 3}, {Empty, 20}, {Full, 12}, {Mixed, 8}, {Full, 1}, {Mixed, 1},
     113    {Full, 5}, {Mixed, 1}, {Full, 8}, {Empty, 2}, {Mixed, 2}, {Full, 906},
     114    {Mixed, 1}, {Empty, 36}, {Full, 1}, {Empty, 20}, {Full, 352},
     115    {Empty, 64}, {Full, 216}, {Empty, 24}, {Mixed, 4}, {Empty, 4},
     116    {Mixed, 3}, {Empty, 4}, {Mixed, 1}, {Empty, 76}, {Full, 1}, {Empty, 95},
     117    {Full, 4}, {Empty, 32}, {Full, 5}, {Mixed, 1}, {Empty, 170}, {Full, 33},
     118    {Mixed, 1}, {Empty, 126}, {Full, 20}, {Empty, 331}, {Full, 217},
     119    {Empty, 296}, {Full, 9}, {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Full, 12},
     120    {Empty, 232}, {Full, 16}, {Empty, 8}, {Full, 4}, {Empty, 36},
     121    {Full, 21}, {Mixed, 1}, {Empty, 170}, {Full, 16}, {Mixed, 1},
     122    {Full, 47}, {Empty, 8}, {Full, 8}, {Empty, 48}, {Full, 2047},
     123    {Mixed, 1}, {Full, 2047}, {Mixed, 1}, {Empty, 22528}, {Full, 2047},
     124    {Mixed, 1}, {Full, 2047}, {Mixed, 1}};
     125    const static UnicodeSet::bitquad_t  __u_Set_quads[] = {
     126    0x70024280, 0x00800000, 0x00800000, 0x00000c00, 0xfffffffe, 0xffff0000,
     127    0x00400000, 0x18030003, 0x00020384, 0x00000020, 0xe0000000, 0x0000001d,
     128    0xc0d883fb, 0xffe042af, 0xffffb7e0, 0x0000f3ff, 0x40000000, 0x00300000,
     129    0xfffff0ff, 0x000009f0, 0xe0000000, 0x07ffffff, 0xc0000000, 0x0ffebfff,
     130    0xfffffffc, 0xfffffff7, 0x03ffffff, 0xffc000ff, 0x000fffff, 0xfffc0000,
     131    0x0000ffff, 0x03ff0000, 0xff000000, 0xfffbffff, 0xffff0fff, 0x000c00f9,
     132    0xfffeffff, 0xfffffd55, 0xfffffff7, 0xe79fbf57, 0xfffffd54, 0xfffffff7,
     133    0xef9fbf57, 0xffffff7f, 0x0000ffff, 0xff000000, 0x07ffffff, 0x0000ffff,
     134    0xffff0000, 0xffff0000, 0x80f801ff, 0x0000ff87, 0x03ff8cfc, 0x57ffffff,
     135    0x07ffffff, 0x31ff00f7, 0x0000ffff, 0x0000ffff, 0x0000ffff, 0xffff0000,
     136    0x0000ffff, 0xfffffffc, 0x3fffffff, 0x3fffffff, 0x3fffffff, 0x3fffffff};
     137    }
     138
     139    const static UnicodeSet u_Set{const_cast<UnicodeSet::run_t *>(__u_Set_runs), 103, 0, const_cast<UnicodeSet::bitquad_t *>(__u_Set_quads), 66, 0};
     140
    135141    /** Code Point Ranges for Tr
    136142    [2329, 232a], [3008, 3011], [3014, 301f], [3030, 3030], [30a0, 30a0],
    137143    [30fc, 30fc], [fe59, fe5e], [ff08, ff09], [ff1a, ff1b], [ff3b, ff3b],
    138144    [ff3d, ff3d], [ff3f, ff3f], [ff5b, ff60], [ffe3, ffe3]**/
    139     const UnicodeSet tr_Set
    140         {{{Empty, 281}, {Mixed, 1}, {Empty, 102}, {Mixed, 2}, {Empty, 3},
    141           {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1642}, {Mixed, 1},
    142           {Empty, 5}, {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Empty, 32768}},
    143          {0x00000600, 0xfff3ff00, 0x00010000, 0x00000001, 0x10000000,
    144           0x7e000000, 0x0c000300, 0xa8000000, 0xf8000000, 0x00000001,
    145           0x00000008}};
     145
     146
     147    namespace {
     148    const static UnicodeSet::run_t __tr_Set_runs[] = {
     149    {Empty, 281}, {Mixed, 1}, {Empty, 102}, {Mixed, 2}, {Empty, 3},
     150    {Mixed, 1}, {Empty, 1}, {Mixed, 1}, {Empty, 1642}, {Mixed, 1},
     151    {Empty, 5}, {Mixed, 4}, {Empty, 3}, {Mixed, 1}, {Empty, 32768}};
     152    const static UnicodeSet::bitquad_t  __tr_Set_quads[] = {
     153    0x00000600, 0xfff3ff00, 0x00010000, 0x00000001, 0x10000000, 0x7e000000,
     154    0x0c000300, 0xa8000000, 0xf8000000, 0x00000001, 0x00000008};
     155    }
     156
     157    const static UnicodeSet tr_Set{const_cast<UnicodeSet::run_t *>(__tr_Set_runs), 15, 0, const_cast<UnicodeSet::bitquad_t *>(__tr_Set_quads), 11, 0};
     158
    146159    /** Code Point Ranges for Tu
    147160    [3001, 3002], [3041, 3041], [3043, 3043], [3045, 3045], [3047, 3047],
     
    152165    [31f0, 31ff], [3300, 3357], [337b, 337f], [fe50, fe52], [ff01, ff01],
    153166    [ff0c, ff0c], [ff0e, ff0e], [ff1f, ff1f], [1f200, 1f201]**/
    154     const UnicodeSet tu_Set
    155         {{{Empty, 384}, {Mixed, 1}, {Empty, 1}, {Mixed, 6}, {Empty, 1},
    156           {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 8}, {Full, 2},
    157           {Mixed, 2}, {Empty, 1622}, {Mixed, 1}, {Empty, 5}, {Mixed, 1},
    158           {Empty, 1943}, {Mixed, 1}, {Empty, 30831}},
    159          {0x00000006, 0x000002aa, 0x00000008, 0x186040a8, 0x000002aa,
    160           0x00000008, 0x006040a8, 0x00000080, 0xffff0000, 0x00ffffff,
    161           0xf8000000, 0x00070000, 0x80005002, 0x00000003}};
     167
     168
     169    namespace {
     170    const static UnicodeSet::run_t __tu_Set_runs[] = {
     171    {Empty, 384}, {Mixed, 1}, {Empty, 1}, {Mixed, 6}, {Empty, 1},
     172    {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 8}, {Full, 2}, {Mixed, 2},
     173    {Empty, 1622}, {Mixed, 1}, {Empty, 5}, {Mixed, 1}, {Empty, 1943},
     174    {Mixed, 1}, {Empty, 30831}};
     175    const static UnicodeSet::bitquad_t  __tu_Set_quads[] = {
     176    0x00000006, 0x000002aa, 0x00000008, 0x186040a8, 0x000002aa, 0x00000008,
     177    0x006040a8, 0x00000080, 0xffff0000, 0x00ffffff, 0xf8000000, 0x00070000,
     178    0x80005002, 0x00000003};
     179    }
     180
     181    const static UnicodeSet tu_Set{const_cast<UnicodeSet::run_t *>(__tu_Set_runs), 18, 0, const_cast<UnicodeSet::bitquad_t *>(__tu_Set_quads), 14, 0};
     182
    162183    static EnumeratedPropertyObject property_object
    163184        {vo,
    164185         VO_ns::independent_prop_values,
    165          VO_ns::enum_names,
    166          VO_ns::value_names,
    167          VO_ns::aliases_only_map,
    168          {&r_Set, &u_Set, &tr_Set, &tu_Set
     186         std::move(VO_ns::enum_names),
     187         std::move(VO_ns::value_names),
     188         std::move(VO_ns::aliases_only_map),{
     189&r_Set, &u_Set, &tr_Set, &tu_Set
    169190         }};
    170191    }
Note: See TracChangeset for help on using the changeset viewer.