1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
<html xmlns="http://www.w3.org/1999/xhtml">
4
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5
<title>BitMagic: bm Namespace Reference</title>
6
<link href="tabs.css" rel="stylesheet" type="text/css"/>
7
<link href="doxygen.css" rel="stylesheet" type="text/css"/>
10
<!-- Generated by Doxygen 1.6.1 -->
11
<div class="navigation" id="top">
14
<li><a href="index.html"><span>Main Page</span></a></li>
15
<li><a href="modules.html"><span>Modules</span></a></li>
16
<li class="current"><a href="namespaces.html"><span>Namespaces</span></a></li>
17
<li><a href="annotated.html"><span>Data Structures</span></a></li>
18
<li><a href="files.html"><span>Files</span></a></li>
19
<li><a href="examples.html"><span>Examples</span></a></li>
24
<li><a href="namespaces.html"><span>Namespace List</span></a></li>
25
<li><a href="namespacemembers.html"><span>Namespace Members</span></a></li>
29
<div class="contents">
30
<h1>bm Namespace Reference</h1><table border="0" cellpadding="0" cellspacing="0">
31
<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
32
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00044.html">bvector</a></td></tr>
33
<tr><td class="mdescLeft"> </td><td class="mdescRight">bitvector with runtime compression of bits. <a href="a00044.html#_details">More...</a><br/></td></tr>
34
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html">bv_statistics</a></td></tr>
35
<tr><td class="mdescLeft"> </td><td class="mdescRight">Structure with statistical information about bitset's memory allocation details. <a href="a00043.html#_details">More...</a><br/></td></tr>
36
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00067.html">gap_len_table</a></td></tr>
37
<tr><td class="mdescLeft"> </td><td class="mdescRight">Default GAP lengths table. <a href="a00067.html#_details">More...</a><br/></td></tr>
38
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00068.html">gap_len_table_min</a></td></tr>
39
<tr><td class="mdescLeft"> </td><td class="mdescRight">Alternative GAP lengths table. Good for for memory saver mode and very sparse bitsets. <a href="a00068.html#_details">More...</a><br/></td></tr>
40
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00041.html">block_set_table</a></td></tr>
41
<tr><td class="mdescLeft"> </td><td class="mdescRight">Structure keeps all-left/right ON bits masks. <a href="a00041.html#_details">More...</a><br/></td></tr>
42
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html">all_set</a></td></tr>
43
<tr><td class="mdescLeft"> </td><td class="mdescRight">Structure carries pointer on bit block with all bits 1. <a href="a00012.html#_details">More...</a><br/></td></tr>
44
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html">_copyright</a></td></tr>
45
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internal structure. <a href="a00011.html#_details">More...</a><br/></td></tr>
46
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00070.html">globals</a></td></tr>
47
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internal structure. <a href="a00070.html#_details">More...</a><br/></td></tr>
48
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00050.html">d_copy_func</a></td></tr>
49
<tr><td class="mdescLeft"> </td><td class="mdescRight">d-Gap copy functor <a href="a00050.html#_details">More...</a><br/></td></tr>
50
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html">copy_to_array_functor</a></td></tr>
51
<tr><td class="mdescLeft"> </td><td class="mdescRight">Adaptor to copy 1 bits to array. <a href="a00047.html#_details">More...</a><br/></td></tr>
52
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html">copy_to_array_functor_inc</a></td></tr>
53
<tr><td class="mdescLeft"> </td><td class="mdescRight">Adaptor to copy 1 bits to array with base increment. <a href="a00048.html#_details">More...</a><br/></td></tr>
54
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00036.html">bitblock_get_adapter</a></td></tr>
55
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit-block get adapter, takes bitblock and represents it as a <a class="el" href="a00036.html#a5fd937c34bcb5e5a2f6aa25333480db2">get_32()</a> accessor function /internal. <a href="a00036.html#_details">More...</a><br/></td></tr>
56
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00037.html">bitblock_store_adapter</a></td></tr>
57
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit-block store adapter, takes bitblock and saves results into it /internal. <a href="a00037.html#_details">More...</a><br/></td></tr>
58
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html">bitblock_sum_adapter</a></td></tr>
59
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit-block sum adapter, takes values and sums it /internal. <a href="a00038.html#_details">More...</a><br/></td></tr>
60
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00057.html">decoder_range_adapter</a></td></tr>
61
<tr><td class="mdescLeft"> </td><td class="mdescRight">Adapter to get words from a range stream (see range serialized bit-block). <a href="a00057.html#_details">More...</a><br/></td></tr>
62
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html">bit_AND</a></td></tr>
63
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit AND functor. <a href="a00014.html#_details">More...</a><br/></td></tr>
64
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html">bit_OR</a></td></tr>
65
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit OR functor. <a href="a00030.html#_details">More...</a><br/></td></tr>
66
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00032.html">bit_SUB</a></td></tr>
67
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit SUB functor. <a href="a00032.html#_details">More...</a><br/></td></tr>
68
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00034.html">bit_XOR</a></td></tr>
69
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit XOR functor. <a href="a00034.html#_details">More...</a><br/></td></tr>
70
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html">bit_ASSIGN</a></td></tr>
71
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit ASSIGN functor. <a href="a00015.html#_details">More...</a><br/></td></tr>
72
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html">bit_COUNT</a></td></tr>
73
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit COUNT functor. <a href="a00016.html#_details">More...</a><br/></td></tr>
74
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html">bit_COUNT_AND</a></td></tr>
75
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit COUNT AND functor. <a href="a00018.html#_details">More...</a><br/></td></tr>
76
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00024.html">bit_COUNT_XOR</a></td></tr>
77
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit COUNT XOR functor. <a href="a00024.html#_details">More...</a><br/></td></tr>
78
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00020.html">bit_COUNT_OR</a></td></tr>
79
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit COUNT OR functor. <a href="a00020.html#_details">More...</a><br/></td></tr>
80
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html">bit_COUNT_SUB_AB</a></td></tr>
81
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit COUNT SUB AB functor. <a href="a00021.html#_details">More...</a><br/></td></tr>
82
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html">bit_COUNT_SUB_BA</a></td></tr>
83
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit SUB BA functor. <a href="a00022.html#_details">More...</a><br/></td></tr>
84
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00017.html">bit_COUNT_A</a></td></tr>
85
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit COUNT A functor. <a href="a00017.html#_details">More...</a><br/></td></tr>
86
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00019.html">bit_COUNT_B</a></td></tr>
87
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit COUNT B functor. <a href="a00019.html#_details">More...</a><br/></td></tr>
88
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00077.html">operation_functions</a></td></tr>
89
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00075.html">miniset</a></td></tr>
90
<tr><td class="mdescLeft"> </td><td class="mdescRight">Template class implements memory saving set functionality. <a href="a00075.html#_details">More...</a><br/></td></tr>
91
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00046.html">bvmini</a></td></tr>
92
<tr><td class="mdescLeft"> </td><td class="mdescRight">Mini bitvector used in <a class="el" href="a00044.html" title="bitvector with runtime compression of bits.">bvector</a> template to keep block type flags. <a href="a00046.html#_details">More...</a><br/></td></tr>
93
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00045.html">bvector_mini</a></td></tr>
94
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bitvector class with very limited functionality. <a href="a00045.html#_details">More...</a><br/></td></tr>
95
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00062.html">encoder</a></td></tr>
96
<tr><td class="mdescLeft"> </td><td class="mdescRight">Memory encoding. <a href="a00062.html#_details">More...</a><br/></td></tr>
97
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00055.html">decoder_base</a></td></tr>
98
<tr><td class="mdescLeft"> </td><td class="mdescRight">Base class for all decoding functionality. <a href="a00055.html#_details">More...</a><br/></td></tr>
99
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00054.html">decoder</a></td></tr>
100
<tr><td class="mdescLeft"> </td><td class="mdescRight">Class for decoding data from memory buffer. <a href="a00054.html#_details">More...</a><br/></td></tr>
101
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00056.html">decoder_little_endian</a></td></tr>
102
<tr><td class="mdescLeft"> </td><td class="mdescRight">Class for decoding data from memory buffer. <a href="a00056.html#_details">More...</a><br/></td></tr>
103
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00031.html">bit_out</a></td></tr>
104
<tr><td class="mdescLeft"> </td><td class="mdescRight">Byte based writer for un-aligned bit streaming. <a href="a00031.html#_details">More...</a><br/></td></tr>
105
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00029.html">bit_in</a></td></tr>
106
<tr><td class="mdescLeft"> </td><td class="mdescRight">Byte based reader for un-aligned bit streaming. <a href="a00029.html#_details">More...</a><br/></td></tr>
107
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00066.html">gamma_encoder</a></td></tr>
108
<tr><td class="mdescLeft"> </td><td class="mdescRight">Functor for Elias Gamma encoding. <a href="a00066.html#_details">More...</a><br/></td></tr>
109
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00065.html">gamma_decoder</a></td></tr>
110
<tr><td class="mdescLeft"> </td><td class="mdescRight">Elias Gamma <a class="el" href="a00054.html" title="Class for decoding data from memory buffer.">decoder</a>. <a href="a00065.html#_details">More...</a><br/></td></tr>
111
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00053.html">DeBruijn_bit_position</a></td></tr>
112
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00064.html">first_bit_table</a></td></tr>
113
<tr><td class="mdescLeft"> </td><td class="mdescRight">Structure keeps index of first right 1 bit for every byte. <a href="a00064.html#_details">More...</a><br/></td></tr>
114
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00023.html">bit_count_table</a></td></tr>
115
<tr><td class="mdescLeft"> </td><td class="mdescRight">Structure to aid in counting bits table contains count of bits in 0-255 diapason of numbers. <a href="a00023.html#_details">More...</a><br/></td></tr>
116
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00085.html">sse_empty_guard</a></td></tr>
117
<tr><td class="mdescLeft"> </td><td class="mdescRight">SSE2 reinitialization guard class. <a href="a00085.html#_details">More...</a><br/></td></tr>
118
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00061.html">distance_metric_descriptor</a></td></tr>
119
<tr><td class="mdescLeft"> </td><td class="mdescRight">Distance metric descriptor, holds metric code and result. <a href="a00061.html#_details">More...</a><br/></td></tr>
120
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00087.html">tmatrix</a></td></tr>
121
<tr><td class="mdescLeft"> </td><td class="mdescRight">Mini-matrix for bit transposition purposes. <a href="a00087.html#_details">More...</a><br/></td></tr>
122
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00025.html">bit_grabber</a></td></tr>
123
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00028.html">bit_grabber< unsigned, 32 ></a></td></tr>
124
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00027.html">bit_grabber< unsigned short, 16 ></a></td></tr>
125
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00026.html">bit_grabber< unsigned char, 8 ></a></td></tr>
126
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00033.html">bit_trans_grabber</a></td></tr>
127
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00069.html">gap_transpose_engine</a></td></tr>
128
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit-plain splicing of a GAP block. <a href="a00069.html#_details">More...</a><br/></td></tr>
129
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00079.html">ptr_guard</a></td></tr>
130
<tr><td class="mdescLeft"> </td><td class="mdescRight">Mini auto-pointer for internal memory management. <a href="a00079.html#_details">More...</a><br/></td></tr>
131
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html">serializer</a></td></tr>
132
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit-vector serialization class. <a href="a00084.html#_details">More...</a><br/></td></tr>
133
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00058.html">deseriaizer_base</a></td></tr>
134
<tr><td class="mdescLeft"> </td><td class="mdescRight">Base deserialization class. <a href="a00058.html#_details">More...</a><br/></td></tr>
135
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00059.html">deserializer</a></td></tr>
136
<tr><td class="mdescLeft"> </td><td class="mdescRight">Class <a class="el" href="a00059.html" title="Class deserializer.">deserializer</a>. <a href="a00059.html#_details">More...</a><br/></td></tr>
137
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00073.html">iterator_deserializer</a></td></tr>
138
<tr><td class="mdescLeft"> </td><td class="mdescRight">Iterator to walk forward the serialized stream. <a href="a00073.html#_details">More...</a><br/></td></tr>
139
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00083.html">serial_stream_iterator</a></td></tr>
140
<tr><td class="mdescLeft"> </td><td class="mdescRight">Serialization stream iterator. <a href="a00083.html#_details">More...</a><br/></td></tr>
141
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00076.html">operation_deserializer</a></td></tr>
142
<tr><td class="mdescLeft"> </td><td class="mdescRight">Class <a class="el" href="a00059.html" title="Class deserializer.">deserializer</a>, can perform logical operation on bit-vector and serialized bit-vector. <a href="a00076.html#_details">More...</a><br/></td></tr>
143
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00039.html">block_allocator</a></td></tr>
144
<tr><td class="mdescLeft"> </td><td class="mdescRight">Default malloc based bitblock allocator class. <a href="a00039.html#_details">More...</a><br/></td></tr>
145
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00078.html">ptr_allocator</a></td></tr>
146
<tr><td class="mdescLeft"> </td><td class="mdescRight">Default malloc based bitblock allocator class. <a href="a00078.html#_details">More...</a><br/></td></tr>
147
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00074.html">mem_alloc</a></td></tr>
148
<tr><td class="mdescLeft"> </td><td class="mdescRight">BM style allocator adapter. <a href="a00074.html#_details">More...</a><br/></td></tr>
149
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00080.html">random_subset</a></td></tr>
150
<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
151
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00075.html">bm::miniset</a><br class="typebreak"/>
152
< <a class="el" href="a00039.html">bm::block_allocator</a>, <br class="typebreak"/>
153
<a class="el" href="a00116.html#a505011007f54598794e0b9477c0b0b11">bm::set_total_blocks</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ac77813f2c2dfe40575830ba6a8373bcc">mem_save_set</a></td></tr>
154
<tr><td class="memItemLeft" align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a18a8f03b151ca3a6d5e39e7709fb6c7c">gap_operation_to_bitset_func_type</a> )(unsigned *, const <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *)</td></tr>
155
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *(* </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a8402de852093e5b23b5825f1974b9c12">gap_operation_func_type</a> )(const <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT, const <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT, <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT, unsigned &)</td></tr>
156
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a>(* </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ad93f96a77f223240b8c6b8f81c5db840">bit_operation_count_func_type</a> )(const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT)</td></tr>
157
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00054.html">decoder</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ac36d9b78ebf78baf0b92dc61487d9847">decoder_big_endian</a></td></tr>
158
<tr><td class="mdescLeft"> </td><td class="mdescRight">Class for decoding data from memory buffer. <a href="#ac36d9b78ebf78baf0b92dc61487d9847"></a><br/></td></tr>
159
<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned long long </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a1f6a6dd108cd9e9f4fb284043ef518fe">id64_t</a></td></tr>
160
<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">id_t</a></td></tr>
161
<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">word_t</a></td></tr>
162
<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned short </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ae64960202b691ae1b6efe5fec12cb5af">short_t</a></td></tr>
163
<tr><td class="memItemLeft" align="right" valign="top">typedef unsigned short </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a></td></tr>
164
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">word_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a7176bf7817550ca24cb6612bd8d7957d">wordop_t</a></td></tr>
165
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00074.html">mem_alloc</a><br class="typebreak"/>
166
< <a class="el" href="a00039.html">block_allocator</a>, <br class="typebreak"/>
167
<a class="el" href="a00078.html">ptr_allocator</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00128.html#gab9059bfb40a6588cdbacfd93901593c1">standard_allocator</a></td></tr>
168
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
169
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109">set_operation</a> { <br/>
170
<a class="el" href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109a949fba4d9b152e1cbba9a450e05e21a3">set_AND</a> = 0,
171
<a class="el" href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109a05d88a2639cbd3d2ac63436df3ed6780">set_OR</a> = 1,
172
<a class="el" href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109a348f23af148237ac49194815b222b769">set_SUB</a> = 2,
173
<a class="el" href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109ab823123a0d630167532a96be004e6304">set_XOR</a> = 3,
175
<a class="el" href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109a34150dd6a8ac2e70b887565bd1c3f788">set_ASSIGN</a> = 4,
176
<a class="el" href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109a3f165b7944e33214e8721aaf2eb8378e">set_COUNT</a> = 5,
177
<a class="el" href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109a378be4b14cee6a341e859fd3157ab959">set_COUNT_AND</a> = 6,
178
<a class="el" href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109a1373054e4f243dffb762a55b8a8bfe4c">set_COUNT_XOR</a> = 7,
180
<a class="el" href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109a27e34c148d06e3d8a405482d820cd7fb">set_COUNT_OR</a> = 8,
181
<a class="el" href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109a0028cc7084b37fe66ce5ae459b93b7f1">set_COUNT_SUB_AB</a> = 9,
182
<a class="el" href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109a2f7b894c11c058598d02722a7eeef03b">set_COUNT_SUB_BA</a> = 10,
183
<a class="el" href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109abafe8a971864164aeec7f43d1205ed29">set_COUNT_A</a> = 11,
185
<a class="el" href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109a2ac4eb7f41d00f8387d5dd3ffb9d0617">set_COUNT_B</a> = 12,
186
<a class="el" href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109ad894d257a23664720dbf4155153a1e5c">set_END</a>
189
<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Nomenclature of set operations. </p>
190
<a href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109">More...</a><br/></td></tr>
191
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a42405343976ec931388381cea4092bf1">operation</a> { <a class="el" href="a00116.html#a42405343976ec931388381cea4092bf1a546fdf33b301e5b9bee0591522ed9250">BM_AND</a> = set_AND,
192
<a class="el" href="a00116.html#a42405343976ec931388381cea4092bf1a0c8cf0197857d0bd73a63037e2f2c5c5">BM_OR</a> = set_OR,
193
<a class="el" href="a00116.html#a42405343976ec931388381cea4092bf1a1df0f4de7126bb2f7ce69d7a005affb5">BM_SUB</a> = set_SUB,
194
<a class="el" href="a00116.html#a42405343976ec931388381cea4092bf1a45c2fe36efb72dc03f03a842d253f64c">BM_XOR</a> = set_XOR
196
<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Bit operations enumeration. </p>
197
<a href="a00116.html#a42405343976ec931388381cea4092bf1">More...</a><br/></td></tr>
198
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a577905b348676c2bc556b51793350dbb">ByteOrder</a> { <a class="el" href="a00116.html#a577905b348676c2bc556b51793350dbbac959b97503c42581f3dd81fd3b93fff2">BigEndian</a> = 0,
199
<a class="el" href="a00116.html#a577905b348676c2bc556b51793350dbba5ebe266b6d18ee74483c2bbf624e2cc2">LittleEndian</a> = 1
201
<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Byte orders recognized by the library. </p>
202
<a href="a00116.html#a577905b348676c2bc556b51793350dbb">More...</a><br/></td></tr>
203
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#gad0b87b3b7292383a864d27feaf1c9eff">strategy</a> { <a class="el" href="a00119.html#ggad0b87b3b7292383a864d27feaf1c9effa40920ae0ef7b4411d60463d8f576b5ba">BM_BIT</a> = 0,
204
<a class="el" href="a00119.html#ggad0b87b3b7292383a864d27feaf1c9effa7fe09d1d7c62a813db922c396c0cbc9c">BM_GAP</a> = 1
206
<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Block allocation strategies. </p>
207
<a href="a00119.html#gad0b87b3b7292383a864d27feaf1c9eff">More...</a><br/></td></tr>
208
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a593916a103395805070a3200720c6416">set_representation</a> { <a class="el" href="a00116.html#a593916a103395805070a3200720c6416a11f970b705c57a0572043e5cc5e2e333">set_bitset</a> = 0,
209
<a class="el" href="a00116.html#a593916a103395805070a3200720c6416a4809f1871df2ba431e5b70d175f050ec">set_gap</a> = 1,
210
<a class="el" href="a00116.html#a593916a103395805070a3200720c6416a4bd710c312645ed34e4db359a7e59c42">set_array1</a> = 2,
211
<a class="el" href="a00116.html#a593916a103395805070a3200720c6416a8d71ac8a4f70b88d2a425d0c1e872fa2">set_array0</a> = 3
213
<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>set representation variants </p>
214
<a href="a00116.html#a593916a103395805070a3200720c6416">More...</a><br/></td></tr>
215
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00126.html#gac38d64c8b27b652413a664cddd4d40ab">distance_metric</a> { <br/>
216
<a class="el" href="a00126.html#ggac38d64c8b27b652413a664cddd4d40abacb39376469ba778e9a9099ddbae5e7ce">COUNT_AND</a> = set_COUNT_AND,
217
<a class="el" href="a00126.html#ggac38d64c8b27b652413a664cddd4d40aba3e4861dde6e1179457ee0d3502ae8061">COUNT_XOR</a> = set_COUNT_XOR,
218
<a class="el" href="a00126.html#ggac38d64c8b27b652413a664cddd4d40abad0bd2d56c8ebd03f55c01b3cc6faaaeb">COUNT_OR</a> = set_COUNT_OR,
219
<a class="el" href="a00126.html#ggac38d64c8b27b652413a664cddd4d40aba9c101dab8904c0432f72ccce0a207e62">COUNT_SUB_AB</a> = set_COUNT_SUB_AB,
221
<a class="el" href="a00126.html#ggac38d64c8b27b652413a664cddd4d40abafa036fb9d54bc659ed3c9e4185ccf400">COUNT_SUB_BA</a> = set_COUNT_SUB_BA,
222
<a class="el" href="a00126.html#ggac38d64c8b27b652413a664cddd4d40abaac7947d53eb3acf81251ee4130e6a4a2">COUNT_A</a> = set_COUNT_A,
223
<a class="el" href="a00126.html#ggac38d64c8b27b652413a664cddd4d40abac6dbadf2ab9405daa47dc0f10d082516">COUNT_B</a> = set_COUNT_B
226
<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Distance metrics codes defined for vectors A and B. </p>
227
<a href="a00126.html#gac38d64c8b27b652413a664cddd4d40ab">More...</a><br/></td></tr>
228
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ab69f66b71d349b0757370f54318bb2c0">serialization_header_mask</a> { <br/>
229
<a class="el" href="a00116.html#ab69f66b71d349b0757370f54318bb2c0a97434d6617bb5f0d6f3bf44491f712ca">BM_HM_DEFAULT</a> = 1,
230
<a class="el" href="a00116.html#ab69f66b71d349b0757370f54318bb2c0af4fbefa0ed0a8ff42dd664f120782c27">BM_HM_RESIZE</a> = (1 << 1),
231
<a class="el" href="a00116.html#ab69f66b71d349b0757370f54318bb2c0a64c44c57a6f8b8e89f0916db9e120d47">BM_HM_ID_LIST</a> = (1 << 2),
232
<a class="el" href="a00116.html#ab69f66b71d349b0757370f54318bb2c0a6b127bde401907318702dd4827c8f74e">BM_HM_NO_BO</a> = (1 << 3),
234
<a class="el" href="a00116.html#ab69f66b71d349b0757370f54318bb2c0a04c714af376c203bc8b082856ad622a3">BM_HM_NO_GAPL</a> = (1 << 4)
237
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00127.html#ga537dfe6318f1f1fe18d86dac312be978">serialization_flags</a> { <a class="el" href="a00127.html#gga537dfe6318f1f1fe18d86dac312be978acdd8c071c079589388c3ca7bd4f367c8">BM_NO_BYTE_ORDER</a> = 1,
238
<a class="el" href="a00127.html#gga537dfe6318f1f1fe18d86dac312be978a5521473081d341bc32ac59538e6a8096">BM_NO_GAP_LENGTH</a> = (1 << 1)
240
<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Bit mask flags for serialization algorithm. </p>
241
<a href="a00127.html#ga537dfe6318f1f1fe18d86dac312be978">More...</a><br/></td></tr>
242
<tr><td colspan="2"><h2>Functions</h2></td></tr>
243
<tr><td class="memTemplParams" colspan="2">template<class Alloc , class MS > </td></tr>
244
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00044.html">bvector</a>< Alloc, MS > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#ac766cc15ae8feca9e21a36c49bf3b557">operator&</a> (const <a class="el" href="a00044.html">bvector</a>< Alloc, MS > &v1, const <a class="el" href="a00044.html">bvector</a>< Alloc, MS > &v2)</td></tr>
245
<tr><td class="memTemplParams" colspan="2">template<class Alloc , class MS > </td></tr>
246
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00044.html">bvector</a>< Alloc, MS > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a5cc9411c5170df52c1c4ea436ef32745">operator|</a> (const <a class="el" href="a00044.html">bvector</a>< Alloc, MS > &v1, const <a class="el" href="a00044.html">bvector</a>< Alloc > &v2)</td></tr>
247
<tr><td class="memTemplParams" colspan="2">template<class Alloc , class MS > </td></tr>
248
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00044.html">bvector</a>< Alloc, MS > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a7042429992aec5891a3df1b0bddea05f">operator^</a> (const <a class="el" href="a00044.html">bvector</a>< Alloc, MS > &v1, const <a class="el" href="a00044.html">bvector</a>< Alloc, MS > &v2)</td></tr>
249
<tr><td class="memTemplParams" colspan="2">template<class Alloc , class MS > </td></tr>
250
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00044.html">bvector</a>< Alloc, MS > </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#afe23d0ced66b48b9c4214e0b00dcc5ac">operator-</a> (const <a class="el" href="a00044.html">bvector</a>< Alloc, MS > &v1, const <a class="el" href="a00044.html">bvector</a>< Alloc, MS > &v2)</td></tr>
251
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE <a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#gaef40342b0c318391df3db2b891acf7c1">word_bitcount</a> (<a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> w)</td></tr>
252
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a30cec2c137813460f4b4c65c5879a4c3">parallel_popcnt_32</a> (unsigned int n)</td></tr>
253
<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a3deb310cdf11bca948817f94adfec160">is_const_set_operation</a> (<a class="el" href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109">set_operation</a> op)</td></tr>
254
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns true if set operation is constant (bitcount). <a href="#a3deb310cdf11bca948817f94adfec160"></a><br/></td></tr>
255
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#a42405343976ec931388381cea4092bf1">bm::operation</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a7c192b64adb0590a09b5c2dad77c4b76">setop2op</a> (<a class="el" href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109">bm::set_operation</a> op)</td></tr>
256
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert set operation to operation. <a href="#a7c192b64adb0590a09b5c2dad77c4b76"></a><br/></td></tr>
257
<tr><td class="memTemplParams" colspan="2">template<typename W > </td></tr>
258
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#afb2c1acc56270abb381741a709a2b17c">xor_swap</a> (W &x, W &y)</td></tr>
259
<tr><td class="mdescLeft"> </td><td class="mdescRight">XOR swap two scalar variables. <a href="#afb2c1acc56270abb381741a709a2b17c"></a><br/></td></tr>
260
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
261
<tr><td class="memTemplItemLeft" align="right" valign="top">int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#gafee2e8361c2e90a67dbaf9c7559d50e4">wordcmp0</a> (T w1, T w2)</td></tr>
262
<tr><td class="mdescLeft"> </td><td class="mdescRight">Lexicographical comparison of two words as bit strings. Auxiliary implementation for testing and reference purposes. <a href="a00121.html#gafee2e8361c2e90a67dbaf9c7559d50e4"></a><br/></td></tr>
263
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
264
<tr><td class="memTemplItemLeft" align="right" valign="top">int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#ga5847533a73b7a5125fe5c2888ec827bd">wordcmp</a> (T a, T b)</td></tr>
265
<tr><td class="mdescLeft"> </td><td class="mdescRight">Lexicographical comparison of two words as bit strings. Auxiliary implementation for testing and reference purposes. <a href="a00121.html#ga5847533a73b7a5125fe5c2888ec827bd"></a><br/></td></tr>
266
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
267
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#acebed8b533c2c9e17167617501477693">gap_bfind</a> (const T *buf, unsigned pos, unsigned *is_set)</td></tr>
268
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
269
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga866352ef5986a7d2b709795d127b666b">gap_test</a> (const T *buf, unsigned pos)</td></tr>
270
<tr><td class="mdescLeft"> </td><td class="mdescRight">Tests if bit = pos is true. <a href="a00120.html#ga866352ef5986a7d2b709795d127b666b"></a><br/></td></tr>
271
<tr><td class="memTemplParams" colspan="2">template<class T , class F > </td></tr>
272
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#ae8b342c25dc22d6cd26cb96d7ae796db">for_each_nzblock</a> (T ***root, unsigned size1, unsigned size2, F &f)</td></tr>
273
<tr><td class="memTemplParams" colspan="2">template<class T , class F > </td></tr>
274
<tr><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a6f5cb8cbb105eae84d4b0f8a3bc1230f">for_each_nzblock_if</a> (T ***root, unsigned size1, unsigned size2, F &f)</td></tr>
275
<tr><td class="memTemplParams" colspan="2">template<class T , class F > </td></tr>
276
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a86742a3e17527be5a9743f26b36a7691">for_each_block</a> (T ***root, unsigned size1, unsigned size2, F &f)</td></tr>
277
<tr><td class="memTemplParams" colspan="2">template<class T , class F > </td></tr>
278
<tr><td class="memTemplItemLeft" align="right" valign="top">F </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#abf587377ca70f11b8eb75f95494830b5">bmfor_each</a> (T first, T last, F f)</td></tr>
279
<tr><td class="memTemplParams" colspan="2">template<class T > </td></tr>
280
<tr><td class="memTemplItemLeft" align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#ac8f3443ba8fcd1b28face4b09dfd21bf">sum_arr</a> (T *first, T *last)</td></tr>
281
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
282
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga570a6f573ffb9ac9e41a688d2bdc6004">gap_bit_count</a> (const T *buf, unsigned dsize=0)</td></tr>
283
<tr><td class="mdescLeft"> </td><td class="mdescRight">Calculates number of bits ON in GAP buffer. <a href="a00120.html#ga570a6f573ffb9ac9e41a688d2bdc6004"></a><br/></td></tr>
284
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
285
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a7324ebded429e15361f62117a2ff18d1">gap_bit_count_range</a> (const T *buf, T left, T right)</td></tr>
286
<tr><td class="mdescLeft"> </td><td class="mdescRight">Counts 1 bits in GAP buffer in the closed [left, right] diapason. <a href="#a7324ebded429e15361f62117a2ff18d1"></a><br/></td></tr>
287
<tr><td class="memTemplParams" colspan="2">template<class T , class Func > </td></tr>
288
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a6a7bfe8af49ed785f0e96c7ca37a2155">for_each_dgap</a> (const T *gap_buf, Func &func)</td></tr>
289
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
290
<tr><td class="memTemplItemLeft" align="right" valign="top">T * </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#afa6ea0cce0cdd88738a01fad393376b3">gap_2_dgap</a> (const T *gap_buf, T *dgap_buf, bool copy_head=true)</td></tr>
291
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert GAP buffer into D-GAP buffer. <a href="#afa6ea0cce0cdd88738a01fad393376b3"></a><br/></td></tr>
292
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
293
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a528894002dcd8edda28c8fb2b0aa8c64">dgap_2_gap</a> (const T *dgap_buf, T *gap_buf, T gap_header=0)</td></tr>
294
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert D-GAP buffer into GAP buffer. <a href="#a528894002dcd8edda28c8fb2b0aa8c64"></a><br/></td></tr>
295
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
296
<tr><td class="memTemplItemLeft" align="right" valign="top">int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga406952734f1b05962941b32e37b3eb96">gapcmp</a> (const T *buf1, const T *buf2)</td></tr>
297
<tr><td class="mdescLeft"> </td><td class="mdescRight">Lexicographical comparison of GAP buffers. <a href="a00120.html#ga406952734f1b05962941b32e37b3eb96"></a><br/></td></tr>
298
<tr><td class="memTemplParams" colspan="2">template<typename T , class F > </td></tr>
299
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#aac0daaac2b5a7c88e6be726c77f52c68">gap_buff_op</a> (T *BMRESTRICT dest, const T *BMRESTRICT vect1, unsigned vect1_mask, const T *BMRESTRICT vect2, unsigned vect2_mask, F &f, unsigned &dlen)</td></tr>
300
<tr><td class="mdescLeft"> </td><td class="mdescRight">Abstract operation for GAP buffers. Receives functor F as a template argument. <a href="#aac0daaac2b5a7c88e6be726c77f52c68"></a><br/></td></tr>
301
<tr><td class="memTemplParams" colspan="2">template<typename T , class F > </td></tr>
302
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga5e3123c3c9d3587f470abdbe6c8c3ad3">gap_buff_any_op</a> (const T *BMRESTRICT vect1, unsigned vect1_mask, const T *BMRESTRICT vect2, unsigned vect2_mask, F f)</td></tr>
303
<tr><td class="mdescLeft"> </td><td class="mdescRight">Abstract distance test operation for GAP buffers. Receives functor F as a template argument. <a href="a00120.html#ga5e3123c3c9d3587f470abdbe6c8c3ad3"></a><br/></td></tr>
304
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
305
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga69186bd13bda27e04b3e33683ff884c2">gap_set_value</a> (unsigned val, T *BMRESTRICT buf, unsigned pos, unsigned *BMRESTRICT is_set)</td></tr>
306
<tr><td class="mdescLeft"> </td><td class="mdescRight">Abstract distance(similarity) operation for GAP buffers. Receives functor F as a template argument. <a href="a00120.html#ga69186bd13bda27e04b3e33683ff884c2"></a><br/></td></tr>
307
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
308
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga54f4fa3323149076cc1f5a1fd53c1f8b">gap_add_value</a> (T *buf, unsigned pos)</td></tr>
309
<tr><td class="mdescLeft"> </td><td class="mdescRight">Add new value to the end of GAP buffer. <a href="a00120.html#ga54f4fa3323149076cc1f5a1fd53c1f8b"></a><br/></td></tr>
310
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
311
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga550394048c163d41a135fb9068f2251b">gap_set_array</a> (T *buf, const T *arr, unsigned len)</td></tr>
312
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert array to GAP buffer. <a href="a00120.html#ga550394048c163d41a135fb9068f2251b"></a><br/></td></tr>
313
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
314
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga68e53a96e93a31e8a323d10c7a2f21f5">bit_array_compute_gaps</a> (const T *arr, unsigned len)</td></tr>
315
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute number of GAPs in bit-array. <a href="a00120.html#ga68e53a96e93a31e8a323d10c7a2f21f5"></a><br/></td></tr>
316
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
317
<tr><td class="memTemplItemLeft" align="right" valign="top">int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#gaa7df7193094353ea24b8519debf745be">gap_find_in_block</a> (const T *buf, unsigned nbit, <a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> *prev)</td></tr>
318
<tr><td class="mdescLeft"> </td><td class="mdescRight">Searches for the next 1 bit in the GAP block. <a href="a00120.html#gaa7df7193094353ea24b8519debf745be"></a><br/></td></tr>
319
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga2becf9a16ec20ab124ca8938e34b4aa8">set_bit</a> (unsigned *dest, unsigned bitpos)</td></tr>
320
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set 1 bit in a block. <a href="a00121.html#ga2becf9a16ec20ab124ca8938e34b4aa8"></a><br/></td></tr>
321
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga9bccc586aa791f98f1bec284b799102c">test_bit</a> (const unsigned *block, unsigned bitpos)</td></tr>
322
<tr><td class="mdescLeft"> </td><td class="mdescRight">Test 1 bit in a block. <a href="a00121.html#ga9bccc586aa791f98f1bec284b799102c"></a><br/></td></tr>
323
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#gad698b5242f5b629aa28e7338b7150497">or_bit_block</a> (unsigned *dest, unsigned bitpos, unsigned bitcount)</td></tr>
324
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets bits to 1 in the bitblock. <a href="a00121.html#gad698b5242f5b629aa28e7338b7150497"></a><br/></td></tr>
325
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#gaceaa54aa59b16299f5a87b925715e5e8">sub_bit_block</a> (unsigned *dest, unsigned bitpos, unsigned bitcount)</td></tr>
326
<tr><td class="mdescLeft"> </td><td class="mdescRight">SUB (AND NOT) bit interval to 1 in the bitblock. <a href="a00121.html#gaceaa54aa59b16299f5a87b925715e5e8"></a><br/></td></tr>
327
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga6191abb017003b633fab24e0c6357521">xor_bit_block</a> (unsigned *dest, unsigned bitpos, unsigned bitcount)</td></tr>
328
<tr><td class="mdescLeft"> </td><td class="mdescRight">XOR bit interval to 1 in the bitblock. <a href="a00121.html#ga6191abb017003b633fab24e0c6357521"></a><br/></td></tr>
329
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
330
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga08e0ae8b2fd5869aa31cfad7d47177c4">gap_sub_to_bitset</a> (unsigned *dest, const T *buf)</td></tr>
331
<tr><td class="mdescLeft"> </td><td class="mdescRight">SUB (AND NOT) GAP block to bitblock. <a href="a00120.html#ga08e0ae8b2fd5869aa31cfad7d47177c4"></a><br/></td></tr>
332
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
333
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#gab939656d4ea54fd3868aa236cdb20b82">gap_xor_to_bitset</a> (unsigned *dest, const T *buf)</td></tr>
334
<tr><td class="mdescLeft"> </td><td class="mdescRight">XOR GAP block to bitblock. <a href="a00120.html#gab939656d4ea54fd3868aa236cdb20b82"></a><br/></td></tr>
335
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
336
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga12615cd62f2e5367e1bc688d00a2188f">gap_add_to_bitset</a> (unsigned *dest, const T *buf)</td></tr>
337
<tr><td class="mdescLeft"> </td><td class="mdescRight">Adds(OR) GAP block to bitblock. <a href="a00120.html#ga12615cd62f2e5367e1bc688d00a2188f"></a><br/></td></tr>
338
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
339
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#gafe6f72a009618290eeab3cddee869543">gap_and_to_bitset</a> (unsigned *dest, const T *buf)</td></tr>
340
<tr><td class="mdescLeft"> </td><td class="mdescRight">ANDs GAP block to bitblock. <a href="a00120.html#gafe6f72a009618290eeab3cddee869543"></a><br/></td></tr>
341
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
342
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#gab87384cbf46a04d86c008ab2463d02cc">gap_bitset_and_count</a> (const unsigned *block, const T *buf)</td></tr>
343
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute bitcount of bit block AND masked by GAP block. <a href="a00121.html#gab87384cbf46a04d86c008ab2463d02cc"></a><br/></td></tr>
344
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
345
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#gad6e40898b8836ae1923b06a3d028fcaa">gap_bitset_and_any</a> (const unsigned *block, const T *buf)</td></tr>
346
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bitcount test of bit block AND masked by GAP block. <a href="a00121.html#gad6e40898b8836ae1923b06a3d028fcaa"></a><br/></td></tr>
347
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
348
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#ga15a780da58d5aeb67ffc51c84fa6152e">gap_bitset_sub_count</a> (const unsigned *block, const T *buf)</td></tr>
349
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute bitcount of bit block SUB masked by GAP block. <a href="a00121.html#ga15a780da58d5aeb67ffc51c84fa6152e"></a><br/></td></tr>
350
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
351
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#gaab7c711122e8f189555dffd83a21111c">gap_bitset_sub_any</a> (const unsigned *block, const T *buf)</td></tr>
352
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute bitcount test of bit block SUB masked by GAP block. <a href="a00121.html#gaab7c711122e8f189555dffd83a21111c"></a><br/></td></tr>
353
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
354
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#ga803fbc7c790f07b14175303e524bd2d8">gap_bitset_xor_count</a> (const unsigned *block, const T *buf)</td></tr>
355
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute bitcount of bit block XOR masked by GAP block. <a href="a00121.html#ga803fbc7c790f07b14175303e524bd2d8"></a><br/></td></tr>
356
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
357
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#gad0f7ee00f84ea357d55e6a2f507c8918">gap_bitset_xor_any</a> (const unsigned *block, const T *buf)</td></tr>
358
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute bitcount test of bit block XOR masked by GAP block. <a href="a00121.html#gad0f7ee00f84ea357d55e6a2f507c8918"></a><br/></td></tr>
359
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
360
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#ga23733890861063a59f787e26763a734a">gap_bitset_or_count</a> (const unsigned *block, const T *buf)</td></tr>
361
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute bitcount of bit block OR masked by GAP block. <a href="a00121.html#ga23733890861063a59f787e26763a734a"></a><br/></td></tr>
362
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
363
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#gad15f1b92c70752cd3b97fa9e0c585f00">gap_bitset_or_any</a> (const unsigned *block, const T *buf)</td></tr>
364
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute bitcount test of bit block OR masked by GAP block. <a href="a00121.html#gad15f1b92c70752cd3b97fa9e0c585f00"></a><br/></td></tr>
365
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#gaada8b13c35acd8df90129b45edcfc5de">bit_block_set</a> (<a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT dst, <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> value)</td></tr>
366
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bitblock memset operation. <a href="a00121.html#gaada8b13c35acd8df90129b45edcfc5de"></a><br/></td></tr>
367
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
368
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga4862f4dcdcb7c0575e2e2db9e5f2a849">gap_convert_to_bitset</a> (unsigned *dest, const T *buf)</td></tr>
369
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP block to bitblock conversion. <a href="a00120.html#ga4862f4dcdcb7c0575e2e2db9e5f2a849"></a><br/></td></tr>
370
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
371
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga9bb80c42ee0ecf8f2af8250d7f5d327b">gap_convert_to_bitset</a> (unsigned *dest, const T *buf, unsigned dest_len)</td></tr>
372
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP block to bitblock conversion. <a href="a00120.html#ga9bb80c42ee0ecf8f2af8250d7f5d327b"></a><br/></td></tr>
373
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
374
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned * </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga3f01bb7c1ae7983aa8c4ba82e1e3f54c">gap_convert_to_bitset_smart</a> (unsigned *dest, const T *buf, <a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">id_t</a> set_max)</td></tr>
375
<tr><td class="mdescLeft"> </td><td class="mdescRight">Smart GAP block to bitblock conversion. <a href="a00120.html#ga3f01bb7c1ae7983aa8c4ba82e1e3f54c"></a><br/></td></tr>
376
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
377
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga14d29338ffd1387758810b3f9e3a72c6">gap_control_sum</a> (const T *buf)</td></tr>
378
<tr><td class="mdescLeft"> </td><td class="mdescRight">Calculates sum of all words in GAP block. (For debugging purposes). <a href="a00120.html#ga14d29338ffd1387758810b3f9e3a72c6"></a><br/></td></tr>
379
<tr><td class="memTemplParams" colspan="2">template<class T > </td></tr>
380
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#gaef53b2877ff369badd7bb25b26bb9029">gap_set_all</a> (T *buf, unsigned set_max, unsigned value)</td></tr>
381
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets all bits to 0 or 1 (GAP). <a href="a00120.html#gaef53b2877ff369badd7bb25b26bb9029"></a><br/></td></tr>
382
<tr><td class="memTemplParams" colspan="2">template<class T > </td></tr>
383
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga5d49355eb9dd7947699e20f3a2a75ef5">gap_init_range_block</a> (T *buf, unsigned from, unsigned to, unsigned value, unsigned set_max)</td></tr>
384
<tr><td class="mdescLeft"> </td><td class="mdescRight">Init gap block so it has block in it (can be whole block). <a href="a00120.html#ga5d49355eb9dd7947699e20f3a2a75ef5"></a><br/></td></tr>
385
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
386
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga3f22bfde5dfe06d6d77dc2598b8c0845">gap_invert</a> (T *buf)</td></tr>
387
<tr><td class="mdescLeft"> </td><td class="mdescRight">Inverts all bits in the GAP buffer. <a href="a00120.html#ga3f22bfde5dfe06d6d77dc2598b8c0845"></a><br/></td></tr>
388
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
389
<tr><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga690ff7c8b16e1821a77663b7194267e7">gap_is_all_zero</a> (const T *buf, unsigned set_max)</td></tr>
390
<tr><td class="mdescLeft"> </td><td class="mdescRight">Temporary inverts all bits in the GAP buffer. <a href="a00120.html#ga690ff7c8b16e1821a77663b7194267e7"></a><br/></td></tr>
391
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
392
<tr><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga1427d43e91872f981c6311fa76ab5633">gap_is_all_one</a> (const T *buf, unsigned set_max)</td></tr>
393
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks if GAP block is all-one. <a href="a00120.html#ga1427d43e91872f981c6311fa76ab5633"></a><br/></td></tr>
394
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
395
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#gad6bfb9da9950b0df8983a9faf9db5042">gap_length</a> (const T *buf)</td></tr>
396
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returs GAP block length. <a href="a00120.html#gad6bfb9da9950b0df8983a9faf9db5042"></a><br/></td></tr>
397
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
398
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga0419ed06e2f0b7891e7d721546f5fb45">gap_capacity</a> (const T *buf, const T *glevel_len)</td></tr>
399
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returs GAP block capacity. <a href="a00120.html#ga0419ed06e2f0b7891e7d721546f5fb45"></a><br/></td></tr>
400
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
401
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga94a5371b5dc6a1560d95d7c2dde88815">gap_limit</a> (const T *buf, const T *glevel_len)</td></tr>
402
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returs GAP block capacity limit. <a href="a00120.html#ga94a5371b5dc6a1560d95d7c2dde88815"></a><br/></td></tr>
403
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
404
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga1defe73aa4227a0e7204363ac6bb1ac1">gap_level</a> (const T *buf)</td></tr>
405
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returs GAP blocks capacity level. <a href="a00120.html#ga1defe73aa4227a0e7204363ac6bb1ac1"></a><br/></td></tr>
406
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
407
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga501aa9bf029e7f9ea9518e7003fe5549">set_gap_level</a> (T *buf, unsigned level)</td></tr>
408
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets GAP block capacity level. <a href="a00120.html#ga501aa9bf029e7f9ea9518e7003fe5549"></a><br/></td></tr>
409
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
410
<tr><td class="memTemplItemLeft" align="right" valign="top">int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga3bfaebeeb4b2d479c5a9ac9d57607165">gap_calc_level</a> (int len, const T *glevel_len)</td></tr>
411
<tr><td class="mdescLeft"> </td><td class="mdescRight">Calculates GAP block capacity level. <a href="a00120.html#ga3bfaebeeb4b2d479c5a9ac9d57607165"></a><br/></td></tr>
412
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
413
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#gafd76869eb44fac688da5e26e0e74f41f">gap_free_elements</a> (const T *buf, const T *glevel_len)</td></tr>
414
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns number of free elements in GAP block array. Difference between GAP block capacity on this level and actual GAP length. <a href="a00120.html#gafd76869eb44fac688da5e26e0e74f41f"></a><br/></td></tr>
415
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
416
<tr><td class="memTemplItemLeft" align="right" valign="top">int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#ga91fe9566575d9d66e1bb9d030b3d29a0">bitcmp</a> (const T *buf1, const T *buf2, unsigned len)</td></tr>
417
<tr><td class="mdescLeft"> </td><td class="mdescRight">Lexicographical comparison of BIT buffers. <a href="a00121.html#ga91fe9566575d9d66e1bb9d030b3d29a0"></a><br/></td></tr>
418
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
419
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga80d09bb6ab244e68ab0c1fdccc17b95b">bit_convert_to_gap</a> (T *BMRESTRICT dest, const unsigned *BMRESTRICT src, <a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bits, unsigned dest_len)</td></tr>
420
<tr><td class="mdescLeft"> </td><td class="mdescRight">Converts bit block to GAP. <a href="a00120.html#ga80d09bb6ab244e68ab0c1fdccc17b95b"></a><br/></td></tr>
421
<tr><td class="memTemplParams" colspan="2">template<class T , class F > </td></tr>
422
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga11bc26da8533752bb23756632fd30a00">for_each_gap_dbit</a> (const T *buf, F &func)</td></tr>
423
<tr><td class="mdescLeft"> </td><td class="mdescRight">Iterate gap block as delta-bits with a functor. <a href="a00120.html#ga11bc26da8533752bb23756632fd30a00"></a><br/></td></tr>
424
<tr><td class="memTemplParams" colspan="2">template<typename D , typename T > </td></tr>
425
<tr><td class="memTemplItemLeft" align="right" valign="top">D </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga5cd7e0cfee401da1b8f702151c083b27">gap_convert_to_arr</a> (D *BMRESTRICT dest, const T *BMRESTRICT buf, unsigned dest_len, bool invert=false)</td></tr>
426
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert gap block into array of ints corresponding to 1 bits. <a href="a00120.html#ga5cd7e0cfee401da1b8f702151c083b27"></a><br/></td></tr>
427
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#gab30df14a61f036d690c091878feaff1c">bit_block_calc_count</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *block, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *block_end)</td></tr>
428
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bitcount for bit string. <a href="a00121.html#gab30df14a61f036d690c091878feaff1c"></a><br/></td></tr>
429
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#gaafc87c4764bb30d95ba4088064a404e3">bit_count_change</a> (<a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> w)</td></tr>
430
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ae2222be6fd45b4bab5100ce70e3b4f88">bit_count_change32</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *block, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *block_end, unsigned *bit_count, unsigned *gap_count)</td></tr>
431
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#gaca91016aeb08ae1b610d6d407aae0e4c">bit_block_calc_count_change</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *block, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *block_end, unsigned *bit_count)</td></tr>
432
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga2485f707b2629c5ce7681cf9fe385b91">bit_block_calc_count_range</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *block, <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> left, <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> right)</td></tr>
433
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga503e0f3e79f819d9b58e4b0e905be116">bit_block_any_range</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *block, <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> left, <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> right)</td></tr>
434
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
435
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#ga95854f9969985254a0f58b928da0eec6">bit_invert</a> (T *start, T *end)</td></tr>
436
<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga97b1075250d4bf10f596ff2fbc334ceb">is_bits_one</a> (const <a class="el" href="a00116.html#a7176bf7817550ca24cb6612bd8d7957d">bm::wordop_t</a> *start, const <a class="el" href="a00116.html#a7176bf7817550ca24cb6612bd8d7957d">bm::wordop_t</a> *end)</td></tr>
437
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns "true" if all bits in the block are 1. <a href="a00121.html#ga97b1075250d4bf10f596ff2fbc334ceb"></a><br/></td></tr>
438
<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#gac6cfb9f92e4df6bb4c76f6efb2382860">bit_is_all_zero</a> (const <a class="el" href="a00116.html#a7176bf7817550ca24cb6612bd8d7957d">bm::wordop_t</a> *start, const <a class="el" href="a00116.html#a7176bf7817550ca24cb6612bd8d7957d">bm::wordop_t</a> *end)</td></tr>
439
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns "true" if all bits in the block are 0. <a href="a00121.html#gac6cfb9f92e4df6bb4c76f6efb2382860"></a><br/></td></tr>
440
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a8d943cf66c4592e2baddf5bc0667adbd">and_op</a> (unsigned v1, unsigned v2)</td></tr>
441
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP and functor. <a href="#a8d943cf66c4592e2baddf5bc0667adbd"></a><br/></td></tr>
442
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a6e7085de3103a42f81c0d3d82903cd5f">xor_op</a> (unsigned v1, unsigned v2)</td></tr>
443
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP xor functor. <a href="#a6e7085de3103a42f81c0d3d82903cd5f"></a><br/></td></tr>
444
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga1666464d22f7fd473db9aafcf2f77a63">gap_operation_and</a> (const <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT vect1, const <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT vect2, <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT tmp_buf, unsigned &dsize)</td></tr>
445
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP AND operation. <a href="a00120.html#ga1666464d22f7fd473db9aafcf2f77a63"></a><br/></td></tr>
446
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gafb24a1e2588c5670df6facc537594d9d">gap_operation_any_and</a> (const <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT vect1, const <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT vect2)</td></tr>
447
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP AND operation test. <a href="a00120.html#gafb24a1e2588c5670df6facc537594d9d"></a><br/></td></tr>
448
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gaa5e07ad0256bf784ad3397acbbd23bb2">gap_operation_xor</a> (const <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT vect1, const <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT vect2, <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT tmp_buf, unsigned &dsize)</td></tr>
449
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP XOR operation. <a href="a00120.html#gaa5e07ad0256bf784ad3397acbbd23bb2"></a><br/></td></tr>
450
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gab46833bf0d7813f868a1608f70db12de">gap_operation_any_xor</a> (const <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT vect1, const <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT vect2)</td></tr>
451
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP XOR operation test. <a href="a00120.html#gab46833bf0d7813f868a1608f70db12de"></a><br/></td></tr>
452
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gacda280af8910ae5fde37731a3a7a1226">gap_operation_or</a> (const <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT vect1, const <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT vect2, <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT tmp_buf, unsigned &dsize)</td></tr>
453
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP OR operation. <a href="a00120.html#gacda280af8910ae5fde37731a3a7a1226"></a><br/></td></tr>
454
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gabe4c83e5e162c38e297116dd1cd05ac4">gap_operation_sub</a> (const <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT vect1, const <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT vect2, <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT tmp_buf, unsigned &dsize)</td></tr>
455
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP SUB (AND NOT) operation. <a href="a00120.html#gabe4c83e5e162c38e297116dd1cd05ac4"></a><br/></td></tr>
456
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gae0b1d4aca0ddfa58d83e4b089a4f35d9">gap_operation_any_sub</a> (const <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT vect1, const <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT vect2)</td></tr>
457
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP SUB operation test. <a href="a00120.html#gae0b1d4aca0ddfa58d83e4b089a4f35d9"></a><br/></td></tr>
458
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga9090de87d53e7f25eff96c8259b3485c">bit_block_copy</a> (<a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src)</td></tr>
459
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bitblock copy operation. <a href="a00121.html#ga9090de87d53e7f25eff96c8259b3485c"></a><br/></td></tr>
460
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga882f79df0a0175ad4ddf483c5f1eeb0e">bit_block_and</a> (<a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src)</td></tr>
461
<tr><td class="mdescLeft"> </td><td class="mdescRight">Plain bitblock AND operation. Function does not analyse availability of source and destination blocks. <a href="a00121.html#ga882f79df0a0175ad4ddf483c5f1eeb0e"></a><br/></td></tr>
462
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga0070984bb1d332610150a9106ab8eb0a">bit_block_and_count</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *src1, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *src1_end, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *src2)</td></tr>
463
<tr><td class="mdescLeft"> </td><td class="mdescRight">Function ANDs two bitblocks and computes the bitcount. Function does not analyse availability of source blocks. <a href="a00121.html#ga0070984bb1d332610150a9106ab8eb0a"></a><br/></td></tr>
464
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga9fe2d12ddac5293fe53038c687c732f3">bit_block_and_any</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *src1, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *src1_end, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *src2)</td></tr>
465
<tr><td class="mdescLeft"> </td><td class="mdescRight">Function ANDs two bitblocks and tests for any bit. Function does not analyse availability of source blocks. <a href="a00121.html#ga9fe2d12ddac5293fe53038c687c732f3"></a><br/></td></tr>
466
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#gaf8af8cfe8b49407be1af7398da28c939">bit_block_xor_count</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
467
<tr><td class="mdescLeft"> </td><td class="mdescRight">Function XORs two bitblocks and computes the bitcount. Function does not analyse availability of source blocks. <a href="a00121.html#gaf8af8cfe8b49407be1af7398da28c939"></a><br/></td></tr>
468
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#gafbc3ffafc859a503fdd2fc96e7fb60ce">bit_block_xor_any</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
469
<tr><td class="mdescLeft"> </td><td class="mdescRight">Function XORs two bitblocks and and tests for any bit. Function does not analyse availability of source blocks. <a href="a00121.html#gafbc3ffafc859a503fdd2fc96e7fb60ce"></a><br/></td></tr>
470
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#gad34175255e9860a572fcf2e664a6de8e">bit_block_sub_count</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
471
<tr><td class="mdescLeft"> </td><td class="mdescRight">Function SUBs two bitblocks and computes the bitcount. Function does not analyse availability of source blocks. <a href="a00121.html#gad34175255e9860a572fcf2e664a6de8e"></a><br/></td></tr>
472
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga3f51735d2ca08e5a9fae2c9c49138c5c">bit_block_sub_any</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
473
<tr><td class="mdescLeft"> </td><td class="mdescRight">Function SUBs two bitblocks and and tests for any bit. Function does not analyse availability of source blocks. <a href="a00121.html#ga3f51735d2ca08e5a9fae2c9c49138c5c"></a><br/></td></tr>
474
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#gacf4f8ab164277278448a541863c07517">bit_block_or_count</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *src1, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *src1_end, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *src2)</td></tr>
475
<tr><td class="mdescLeft"> </td><td class="mdescRight">Function ORs two bitblocks and computes the bitcount. Function does not analyse availability of source blocks. <a href="a00121.html#gacf4f8ab164277278448a541863c07517"></a><br/></td></tr>
476
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#gab2047495f7844d3014ff697503669d24">bit_block_or_any</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
477
<tr><td class="mdescLeft"> </td><td class="mdescRight">Function ORs two bitblocks and and tests for any bit. Function does not analyse availability of source blocks. <a href="a00121.html#gab2047495f7844d3014ff697503669d24"></a><br/></td></tr>
478
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga869fce5348076d4c7b92adcc2f1a49ab">bit_operation_and</a> (<a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src)</td></tr>
479
<tr><td class="mdescLeft"> </td><td class="mdescRight">bitblock AND operation. <a href="a00121.html#ga869fce5348076d4c7b92adcc2f1a49ab"></a><br/></td></tr>
480
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga9765914087df2fc22ec18db8128f2a12">bit_operation_and_count</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
481
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs bitblock AND operation and calculates bitcount of the result. <a href="a00121.html#ga9765914087df2fc22ec18db8128f2a12"></a><br/></td></tr>
482
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga0e7995f7d6c791f6ff27a8dd21d324e5">bit_operation_and_any</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
483
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs bitblock AND operation test. <a href="a00121.html#ga0e7995f7d6c791f6ff27a8dd21d324e5"></a><br/></td></tr>
484
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#gaabb39bf01bf973cb7bf3648873921ab7">bit_operation_sub_count</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
485
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs bitblock SUB operation and calculates bitcount of the result. <a href="a00121.html#gaabb39bf01bf973cb7bf3648873921ab7"></a><br/></td></tr>
486
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga53867faf377db72324b858a37063c0b8">bit_operation_sub_count_inv</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
487
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs inverted bitblock SUB operation and calculates bitcount of the result. <a href="a00121.html#ga53867faf377db72324b858a37063c0b8"></a><br/></td></tr>
488
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga847d5a84673b284be984f0db583e2723">bit_operation_sub_any</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
489
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs bitblock test of SUB operation. <a href="a00121.html#ga847d5a84673b284be984f0db583e2723"></a><br/></td></tr>
490
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga5a267aff3b56cc6dadf5a3a338e00a1d">bit_operation_or_count</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
491
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs bitblock OR operation and calculates bitcount of the result. <a href="a00121.html#ga5a267aff3b56cc6dadf5a3a338e00a1d"></a><br/></td></tr>
492
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga6d26742bdc373074474a6932eab4f388">bit_operation_or_any</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
493
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs bitblock OR operation test. <a href="a00121.html#ga6d26742bdc373074474a6932eab4f388"></a><br/></td></tr>
494
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga3515d8eb5da7f9d41d63dc90ad9523a4">bit_block_or</a> (<a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src)</td></tr>
495
<tr><td class="mdescLeft"> </td><td class="mdescRight">Plain bitblock OR operation. Function does not analyse availability of source and destination blocks. <a href="a00121.html#ga3515d8eb5da7f9d41d63dc90ad9523a4"></a><br/></td></tr>
496
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga0e945a9eaae699ad40f63b3f0632e6f9">bit_operation_or</a> (<a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src)</td></tr>
497
<tr><td class="mdescLeft"> </td><td class="mdescRight">Block OR operation. Makes analysis if block is 0 or FULL. <a href="a00121.html#ga0e945a9eaae699ad40f63b3f0632e6f9"></a><br/></td></tr>
498
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#gafed81435f74c0542857842d4461686e4">bit_block_sub</a> (<a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src)</td></tr>
499
<tr><td class="mdescLeft"> </td><td class="mdescRight">Plain bitblock SUB (AND NOT) operation. Function does not analyse availability of source and destination blocks. <a href="a00121.html#gafed81435f74c0542857842d4461686e4"></a><br/></td></tr>
500
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#gad7afa9bce28a376360ca4826960d669f">bit_operation_sub</a> (<a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src)</td></tr>
501
<tr><td class="mdescLeft"> </td><td class="mdescRight">bitblock SUB operation. <a href="a00121.html#gad7afa9bce28a376360ca4826960d669f"></a><br/></td></tr>
502
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#gae6a46c5e671ea1c9312219ceb41025ef">bit_block_xor</a> (<a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src)</td></tr>
503
<tr><td class="mdescLeft"> </td><td class="mdescRight">Plain bitblock XOR operation. Function does not analyse availability of source and destination blocks. <a href="a00121.html#gae6a46c5e671ea1c9312219ceb41025ef"></a><br/></td></tr>
504
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga179de722e87ccf8189d975ca6beed025">bit_operation_xor</a> (<a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src)</td></tr>
505
<tr><td class="mdescLeft"> </td><td class="mdescRight">bitblock XOR operation. <a href="a00121.html#ga179de722e87ccf8189d975ca6beed025"></a><br/></td></tr>
506
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#gace08ab77feefb638daee164ee83118bc">bit_operation_xor_count</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
507
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs bitblock XOR operation and calculates bitcount of the result. <a href="a00121.html#gace08ab77feefb638daee164ee83118bc"></a><br/></td></tr>
508
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#gaa86561b6d11c3f01dd772563c692f732">bit_operation_xor_any</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
509
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs bitblock XOR operation test. <a href="a00121.html#gaa86561b6d11c3f01dd772563c692f732"></a><br/></td></tr>
510
<tr><td class="memTemplParams" colspan="2">template<class T > </td></tr>
511
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#ga0ff158706f2e194be67fb8267641c30a">bit_count_nonzero_size</a> (const T *blk, unsigned data_size)</td></tr>
512
<tr><td class="mdescLeft"> </td><td class="mdescRight">Inspects block for full zero words. <a href="a00121.html#ga0ff158706f2e194be67fb8267641c30a"></a><br/></td></tr>
513
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#gad6a7c549a625df7aa7d68d43a57238c7">bit_find_in_block</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *data, unsigned nbit, <a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> *prev)</td></tr>
514
<tr><td class="mdescLeft"> </td><td class="mdescRight">Searches for the next 1 bit in the BIT block. <a href="a00121.html#gad6a7c549a625df7aa7d68d43a57238c7"></a><br/></td></tr>
515
<tr><td class="memTemplParams" colspan="2">template<typename T , typename F > </td></tr>
516
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#gab9f80b3c898323ce77beb915e4c861f3">bit_for_each_4</a> (T w, F &func)</td></tr>
517
<tr><td class="mdescLeft"> </td><td class="mdescRight">Templated algorithm to unpacks octet based word into list of ON bit indexes. <a href="a00121.html#gab9f80b3c898323ce77beb915e4c861f3"></a><br/></td></tr>
518
<tr><td class="memTemplParams" colspan="2">template<typename T , typename F > </td></tr>
519
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#ga24be2ad5d8c2a8f18fdad142452aaae8">bit_for_each</a> (T w, F &func)</td></tr>
520
<tr><td class="mdescLeft"> </td><td class="mdescRight">Templated algorithm to unpacks word into list of ON bit indexes. <a href="a00121.html#ga24be2ad5d8c2a8f18fdad142452aaae8"></a><br/></td></tr>
521
<tr><td class="memTemplParams" colspan="2">template<typename T , typename B > </td></tr>
522
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#ga3c81f6bff8866ec3ed0a94903eee96b7">bit_list_4</a> (T w, B *bits)</td></tr>
523
<tr><td class="mdescLeft"> </td><td class="mdescRight">Unpacks word into list of ON bit indexes (quad-bit based). <a href="a00121.html#ga3c81f6bff8866ec3ed0a94903eee96b7"></a><br/></td></tr>
524
<tr><td class="memTemplParams" colspan="2">template<typename T , typename B > </td></tr>
525
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#gaae3ae537760044543f842363e4614e82">bit_list</a> (T w, B *bits)</td></tr>
526
<tr><td class="mdescLeft"> </td><td class="mdescRight">Unpacks word into list of ON bit indexes. <a href="a00121.html#gaae3ae537760044543f842363e4614e82"></a><br/></td></tr>
527
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#a593916a103395805070a3200720c6416">bm::set_representation</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga20610fae6b0de84957b74ed17429667f">best_representation</a> (unsigned bit_count, unsigned total_possible_bitcount, unsigned gap_count, unsigned block_size)</td></tr>
528
<tr><td class="mdescLeft"> </td><td class="mdescRight">Choose best representation for a bit-block. <a href="a00121.html#ga20610fae6b0de84957b74ed17429667f"></a><br/></td></tr>
529
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
530
<tr><td class="memTemplItemLeft" align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#gaf24d85761f60877c2260f8160593f732">bit_convert_to_arr</a> (T *BMRESTRICT dest, const unsigned *BMRESTRICT src, <a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bits, unsigned dest_len, unsigned mask=0)</td></tr>
531
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert bit block into an array of ints corresponding to 1 bits. <a href="a00121.html#gaf24d85761f60877c2260f8160593f732"></a><br/></td></tr>
532
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
533
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#gacc578010f3700940829c600c812d23b1">gap_overhead</a> (const T *length, const T *length_end, const T *glevel_len)</td></tr>
534
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert bit block into an array of ints corresponding to 1 bits. <a href="a00120.html#gacc578010f3700940829c600c812d23b1"></a><br/></td></tr>
535
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
536
<tr><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga2daff3a0ceda6fef87d3b0e892da5813">improve_gap_levels</a> (const T *length, const T *length_end, T *glevel_len)</td></tr>
537
<tr><td class="mdescLeft"> </td><td class="mdescRight">Finds optimal gap blocks lengths. <a href="a00120.html#ga2daff3a0ceda6fef87d3b0e892da5813"></a><br/></td></tr>
538
<tr><td class="memTemplParams" colspan="2">template<class It1 , class It2 , class BinaryOp , class Encoder > </td></tr>
539
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a503fecc0ee281059897412d68f489e1e">bit_recomb</a> (It1 &it1, It2 &it2, BinaryOp &op, Encoder &enc, unsigned block_size=<a class="el" href="a00116.html#a91319dbc0d0e1bf3a3efc4d92bac7972">bm::set_block_size</a>)</td></tr>
540
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00123.html#ga75c6ddeb0d8a279caa92341878309b50">sse2_xor_arr_2_mask</a> (__m128i *BMRESTRICT dst, const __m128i *BMRESTRICT src, const __m128i *BMRESTRICT src_end, <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> mask)</td></tr>
541
<tr><td class="mdescLeft"> </td><td class="mdescRight">XOR array elements to specified mask dst = *src ^ mask. <a href="a00123.html#ga75c6ddeb0d8a279caa92341878309b50"></a><br/></td></tr>
542
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00123.html#gab7b21f448684c4d84927792661e67ed5">sse2_andnot_arr_2_mask</a> (__m128i *BMRESTRICT dst, const __m128i *BMRESTRICT src, const __m128i *BMRESTRICT src_end, <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> mask)</td></tr>
543
<tr><td class="mdescLeft"> </td><td class="mdescRight">Inverts array elements and NOT them to specified mask dst = ~*src & mask. <a href="a00123.html#gab7b21f448684c4d84927792661e67ed5"></a><br/></td></tr>
544
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00123.html#ga795b544f311409a55da4ee61a3cd939a">sse2_and_arr</a> (__m128i *BMRESTRICT dst, const __m128i *BMRESTRICT src, const __m128i *BMRESTRICT src_end)</td></tr>
545
<tr><td class="mdescLeft"> </td><td class="mdescRight">AND array elements against another array dst &= *src. <a href="a00123.html#ga795b544f311409a55da4ee61a3cd939a"></a><br/></td></tr>
546
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00123.html#ga3a7d61e4e8ad8791ab38fd1c3436aa67">sse2_or_arr</a> (__m128i *BMRESTRICT dst, const __m128i *BMRESTRICT src, const __m128i *BMRESTRICT src_end)</td></tr>
547
<tr><td class="mdescLeft"> </td><td class="mdescRight">OR array elements against another array dst |= *src. <a href="a00123.html#ga3a7d61e4e8ad8791ab38fd1c3436aa67"></a><br/></td></tr>
548
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00123.html#gaf1a5ad26557cc4d71d7421c35a8445fe">sse2_xor_arr</a> (__m128i *BMRESTRICT dst, const __m128i *BMRESTRICT src, const __m128i *BMRESTRICT src_end)</td></tr>
549
<tr><td class="mdescLeft"> </td><td class="mdescRight">OR array elements against another array dst ^= *src. <a href="a00123.html#gaf1a5ad26557cc4d71d7421c35a8445fe"></a><br/></td></tr>
550
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00123.html#gac99f3b138f8a5e8ffb1296b129f618f0">sse2_sub_arr</a> (__m128i *BMRESTRICT dst, const __m128i *BMRESTRICT src, const __m128i *BMRESTRICT src_end)</td></tr>
551
<tr><td class="mdescLeft"> </td><td class="mdescRight">AND-NOT (SUB) array elements against another array dst &= ~*src. <a href="a00123.html#gac99f3b138f8a5e8ffb1296b129f618f0"></a><br/></td></tr>
552
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00123.html#ga302f4fcd0abf355957b305d16d04f452">sse2_set_block</a> (__m128i *BMRESTRICT dst, __m128i *BMRESTRICT dst_end, <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> value)</td></tr>
553
<tr><td class="mdescLeft"> </td><td class="mdescRight">SSE2 block memset dst = value. <a href="a00123.html#ga302f4fcd0abf355957b305d16d04f452"></a><br/></td></tr>
554
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00123.html#ga571dd54af5c555cad9dfa6bef4561777">sse2_copy_block</a> (__m128i *BMRESTRICT dst, const __m128i *BMRESTRICT src, const __m128i *BMRESTRICT src_end)</td></tr>
555
<tr><td class="mdescLeft"> </td><td class="mdescRight">SSE2 block copy dst = *src. <a href="a00123.html#ga571dd54af5c555cad9dfa6bef4561777"></a><br/></td></tr>
556
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00123.html#ga8d506147673d88005f92caee7f5dd23a">sse2_invert_arr</a> (<a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *first, <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *last)</td></tr>
557
<tr><td class="mdescLeft"> </td><td class="mdescRight">Invert array elements dst = ~*dst or dst ^= *dst. <a href="a00123.html#ga8d506147673d88005f92caee7f5dd23a"></a><br/></td></tr>
558
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE __m128i </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ac0c75fb7b3dc61602843ac4e1b9b7ef5">sse2_and</a> (__m128i a, __m128i b)</td></tr>
559
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE __m128i </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#adea798a9a95a04845c33876087a2f46b">sse2_or</a> (__m128i a, __m128i b)</td></tr>
560
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE __m128i </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a6f5de19ee3e1be05037908b4777c4da8">sse2_xor</a> (__m128i a, __m128i b)</td></tr>
561
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE __m128i </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ab3e6d46fcba1bc2a1a5390c10f571382">sse2_sub</a> (__m128i a, __m128i b)</td></tr>
562
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00124.html#ga266ed6594dc786e46c1f353443dc41fe">sse4_bit_count</a> (const __m128i *block, const __m128i *block_end)</td></tr>
563
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a6d8f327a7d19c11125ac77383a34e986">op_xor</a> (unsigned a, unsigned b)</td></tr>
564
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a0ed9a1bcd143f7763b4b59ef442f6994">op_or</a> (unsigned a, unsigned b)</td></tr>
565
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a515b2862b33efd4e36d72e4ba7729199">op_and</a> (unsigned a, unsigned b)</td></tr>
566
<tr><td class="memTemplParams" colspan="2">template<class Func > </td></tr>
567
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a295c6323a972a90e28c36e6012427a26">sse4_bit_count_op</a> (const __m128i *BMRESTRICT block, const __m128i *BMRESTRICT block_end, const __m128i *BMRESTRICT mask_block, Func sse2_func)</td></tr>
568
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00124.html#gad686391db4cdc6382ae6785f62981474">sse4_bit_block_calc_count_change</a> (const __m128i *BMRESTRICT block, const __m128i *BMRESTRICT block_end, unsigned *BMRESTRICT bit_count)</td></tr>
569
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00123.html#ga0f7e0b2eb9ac7b2c6a8cd3b8f15b071f">sse2_bit_count</a> (const __m128i *block, const __m128i *block_end)</td></tr>
570
<tr><td class="memTemplParams" colspan="2">template<class Func > </td></tr>
571
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a8831a88ef538b3997d04d2ebf513160d">sse2_bit_count_op</a> (const __m128i *BMRESTRICT block, const __m128i *BMRESTRICT block_end, const __m128i *BMRESTRICT mask_block, Func sse2_func)</td></tr>
572
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a0479b7b6704c6ab64396e2365b8b5fa7">sse2_bit_block_calc_count_change</a> (const __m128i *BMRESTRICT block, const __m128i *BMRESTRICT block_end, unsigned *BMRESTRICT bit_count)</td></tr>
573
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00126.html#gac38d64c8b27b652413a664cddd4d40ab">distance_metric</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00126.html#ga158946ea41ca66c3e1bca62c92684788">operation2metric</a> (<a class="el" href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109">set_operation</a> op)</td></tr>
574
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert set operation into compatible distance metric. <a href="a00126.html#ga158946ea41ca66c3e1bca62c92684788"></a><br/></td></tr>
575
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#abecd5b24d5e394fd46a9db514cfa659a">combine_count_operation_with_block</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *blk, unsigned gap, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *arg_blk, int arg_gap, <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *temp_blk, <a class="el" href="a00061.html">distance_metric_descriptor</a> *dmit, <a class="el" href="a00061.html">distance_metric_descriptor</a> *dmit_end)</td></tr>
576
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internal function computes different distance metrics. <a href="#abecd5b24d5e394fd46a9db514cfa659a"></a><br/></td></tr>
577
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a24069ced9ea689034ff51246ae707ecc">combine_any_operation_with_block</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *blk, unsigned gap, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *arg_blk, int arg_gap, <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *temp_blk, <a class="el" href="a00061.html">distance_metric_descriptor</a> *dmit, <a class="el" href="a00061.html">distance_metric_descriptor</a> *dmit_end)</td></tr>
578
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internal function computes different existense of distance metric. <a href="#a24069ced9ea689034ff51246ae707ecc"></a><br/></td></tr>
579
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a2f81b8ce3d389973b4f867b0fcc98e7a">combine_count_operation_with_block</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *blk, unsigned gap, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *arg_blk, int arg_gap, <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *temp_blk, <a class="el" href="a00126.html#gac38d64c8b27b652413a664cddd4d40ab">distance_metric</a> metric)</td></tr>
580
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a093f2dadce40f42a184928c9d1456592">combine_any_operation_with_block</a> (const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *blk, unsigned gap, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *arg_blk, int arg_gap, <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *temp_blk, <a class="el" href="a00126.html#gac38d64c8b27b652413a664cddd4d40ab">distance_metric</a> metric)</td></tr>
581
<tr><td class="memTemplParams" colspan="2">template<class BV > </td></tr>
582
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#ad47cf2dce876dcbc25aef4c7a222c66f">distance_stage</a> (const BV &bv1, const <a class="el" href="a00061.html">distance_metric_descriptor</a> *dmit, const <a class="el" href="a00061.html">distance_metric_descriptor</a> *dmit_end, bool *is_all_and)</td></tr>
583
<tr><td class="mdescLeft"> </td><td class="mdescRight">Staging function for distance operation. <a href="#ad47cf2dce876dcbc25aef4c7a222c66f"></a><br/></td></tr>
584
<tr><td class="memTemplParams" colspan="2">template<class BV > </td></tr>
585
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#ga815fef76f02576ab9ab58de0a45d8a4b">distance_operation</a> (const BV &bv1, const BV &bv2, <a class="el" href="a00061.html">distance_metric_descriptor</a> *dmit, <a class="el" href="a00061.html">distance_metric_descriptor</a> *dmit_end)</td></tr>
586
<tr><td class="mdescLeft"> </td><td class="mdescRight">Distance computing template function. <a href="a00126.html#ga815fef76f02576ab9ab58de0a45d8a4b"></a><br/></td></tr>
587
<tr><td class="memTemplParams" colspan="2">template<class BV > </td></tr>
588
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#gaa66525fd7a3f823d73678252a235982e">distance_operation_any</a> (const BV &bv1, const BV &bv2, <a class="el" href="a00061.html">distance_metric_descriptor</a> *dmit, <a class="el" href="a00061.html">distance_metric_descriptor</a> *dmit_end)</td></tr>
589
<tr><td class="mdescLeft"> </td><td class="mdescRight">Distance screening template function. <a href="a00126.html#gaa66525fd7a3f823d73678252a235982e"></a><br/></td></tr>
590
<tr><td class="memTemplParams" colspan="2">template<class BV > </td></tr>
591
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#gae451cb4b87e8c0859b0614d2ffb99737">count_and</a> (const BV &bv1, const BV &bv2)</td></tr>
592
<tr><td class="mdescLeft"> </td><td class="mdescRight">Computes bitcount of AND operation of two bitsets. <a href="a00126.html#gae451cb4b87e8c0859b0614d2ffb99737"></a><br/></td></tr>
593
<tr><td class="memTemplParams" colspan="2">template<class BV > </td></tr>
594
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#ga2d5393e05bcfc540840a4cee67fb771f">any_and</a> (const BV &bv1, const BV &bv2)</td></tr>
595
<tr><td class="mdescLeft"> </td><td class="mdescRight">Computes if there is any bit in AND operation of two bitsets. <a href="a00126.html#ga2d5393e05bcfc540840a4cee67fb771f"></a><br/></td></tr>
596
<tr><td class="memTemplParams" colspan="2">template<class BV > </td></tr>
597
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#gafc64a082dcaee07f70f7faf3e24f844e">count_xor</a> (const BV &bv1, const BV &bv2)</td></tr>
598
<tr><td class="mdescLeft"> </td><td class="mdescRight">Computes bitcount of XOR operation of two bitsets. <a href="a00126.html#gafc64a082dcaee07f70f7faf3e24f844e"></a><br/></td></tr>
599
<tr><td class="memTemplParams" colspan="2">template<class BV > </td></tr>
600
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#ga2d63f41244b82d233acb53d88b326b82">any_xor</a> (const BV &bv1, const BV &bv2)</td></tr>
601
<tr><td class="mdescLeft"> </td><td class="mdescRight">Computes if there is any bit in XOR operation of two bitsets. <a href="a00126.html#ga2d63f41244b82d233acb53d88b326b82"></a><br/></td></tr>
602
<tr><td class="memTemplParams" colspan="2">template<class BV > </td></tr>
603
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#ga902d8c1cd1f8a2538cd47d47f5d8d605">count_sub</a> (const BV &bv1, const BV &bv2)</td></tr>
604
<tr><td class="mdescLeft"> </td><td class="mdescRight">Computes bitcount of SUB operation of two bitsets. <a href="a00126.html#ga902d8c1cd1f8a2538cd47d47f5d8d605"></a><br/></td></tr>
605
<tr><td class="memTemplParams" colspan="2">template<class BV > </td></tr>
606
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#gabde2e210b9b1edd190e1f5a9ff22344c">any_sub</a> (const BV &bv1, const BV &bv2)</td></tr>
607
<tr><td class="mdescLeft"> </td><td class="mdescRight">Computes if there is any bit in SUB operation of two bitsets. <a href="a00126.html#gabde2e210b9b1edd190e1f5a9ff22344c"></a><br/></td></tr>
608
<tr><td class="memTemplParams" colspan="2">template<class BV > </td></tr>
609
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#ga803c564668703fc3bf80067570c2c905">count_or</a> (const BV &bv1, const BV &bv2)</td></tr>
610
<tr><td class="mdescLeft"> </td><td class="mdescRight">Computes bitcount of OR operation of two bitsets. <a href="a00126.html#ga803c564668703fc3bf80067570c2c905"></a><br/></td></tr>
611
<tr><td class="memTemplParams" colspan="2">template<class BV > </td></tr>
612
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00126.html#gaeda4f0cf54aa464cec09e740100caa79">any_or</a> (const BV &bv1, const BV &bv2)</td></tr>
613
<tr><td class="mdescLeft"> </td><td class="mdescRight">Computes if there is any bit in OR operation of two bitsets. <a href="a00126.html#gaeda4f0cf54aa464cec09e740100caa79"></a><br/></td></tr>
614
<tr><td class="memTemplParams" colspan="2">template<class It > </td></tr>
615
<tr><td class="memTemplItemLeft" align="right" valign="top">It </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a86d5d5ccdb79d2b2ad552bd1caf34b2f">block_range_scan</a> (It first, It last, unsigned nblock, unsigned *max_id)</td></tr>
616
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internal algorithms scans the input for the block range limit. <a href="#a86d5d5ccdb79d2b2ad552bd1caf34b2f"></a><br/></td></tr>
617
<tr><td class="memTemplParams" colspan="2">template<class BV , class It > </td></tr>
618
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga54ff78528c99ae3ca443eb99ba44785b">combine_or</a> (BV &bv, It first, It last)</td></tr>
619
<tr><td class="mdescLeft"> </td><td class="mdescRight">OR Combine bitvector and the iterable sequence. <a href="a00125.html#ga54ff78528c99ae3ca443eb99ba44785b"></a><br/></td></tr>
620
<tr><td class="memTemplParams" colspan="2">template<class BV , class It > </td></tr>
621
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga3cb362aee03de6a321495100ae5c8375">combine_xor</a> (BV &bv, It first, It last)</td></tr>
622
<tr><td class="mdescLeft"> </td><td class="mdescRight">XOR Combine bitvector and the iterable sequence. <a href="a00125.html#ga3cb362aee03de6a321495100ae5c8375"></a><br/></td></tr>
623
<tr><td class="memTemplParams" colspan="2">template<class BV , class It > </td></tr>
624
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#gab88c5bf51484323e0139aa789d7f0b98">combine_sub</a> (BV &bv, It first, It last)</td></tr>
625
<tr><td class="mdescLeft"> </td><td class="mdescRight">SUB Combine bitvector and the iterable sequence. <a href="a00125.html#gab88c5bf51484323e0139aa789d7f0b98"></a><br/></td></tr>
626
<tr><td class="memTemplParams" colspan="2">template<class BV , class It > </td></tr>
627
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga22922f71bd1eec8a5b663dc77b90cf6c">combine_and_sorted</a> (BV &bv, It first, It last)</td></tr>
628
<tr><td class="mdescLeft"> </td><td class="mdescRight">AND Combine bitvector and the iterable sequence. <a href="a00125.html#ga22922f71bd1eec8a5b663dc77b90cf6c"></a><br/></td></tr>
629
<tr><td class="memTemplParams" colspan="2">template<class BV , class It > </td></tr>
630
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#ga819bdab57a624a08456ea79161b9c5d2">combine_and</a> (BV &bv, It first, It last)</td></tr>
631
<tr><td class="mdescLeft"> </td><td class="mdescRight">AND Combine bitvector and the iterable sequence. <a href="a00125.html#ga819bdab57a624a08456ea79161b9c5d2"></a><br/></td></tr>
632
<tr><td class="memTemplParams" colspan="2">template<class BV > </td></tr>
633
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#gac7a59d3bc266310ec127cb3efadb0d33">count_intervals</a> (const BV &bv)</td></tr>
634
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute number of bit intervals (GAPs) in the bitvector. <a href="a00125.html#gac7a59d3bc266310ec127cb3efadb0d33"></a><br/></td></tr>
635
<tr><td class="memTemplParams" colspan="2">template<class BV , class It > </td></tr>
636
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00125.html#gacd88ed9539553dd93419b7029e8a4584">export_array</a> (BV &bv, It first, It last)</td></tr>
637
<tr><td class="mdescLeft"> </td><td class="mdescRight">Export bitset from an array of binary data representing the bit vector. <a href="a00125.html#gacd88ed9539553dd93419b7029e8a4584"></a><br/></td></tr>
638
<tr><td class="memTemplParams" colspan="2">template<typename T , unsigned BPC, unsigned BPS> </td></tr>
639
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a2e3af9c9f2eb481130d240ba4cd6fd68">vect_bit_transpose</a> (const T *arr, unsigned arr_size, T <a class="el" href="a00087.html">tmatrix</a>[BPC][BPS])</td></tr>
640
<tr><td class="mdescLeft"> </td><td class="mdescRight">Generic bit-array transposition function T - array type (any int) BPC - bit plain count BPS - bit plain size. <a href="#a2e3af9c9f2eb481130d240ba4cd6fd68"></a><br/></td></tr>
641
<tr><td class="memTemplParams" colspan="2">template<typename T , unsigned BPC, unsigned BPS> </td></tr>
642
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a089ac7cd17ddca4bf3c661c96f749f3f">vect_bit_trestore</a> (const T <a class="el" href="a00087.html">tmatrix</a>[BPC][BPS], T *arr)</td></tr>
643
<tr><td class="mdescLeft"> </td><td class="mdescRight">Restore bit array from the transposition matrix T - array type (any int) BPC - bit plain count BPS - bit plain size. <a href="#a089ac7cd17ddca4bf3c661c96f749f3f"></a><br/></td></tr>
644
<tr><td class="memTemplParams" colspan="2">template<typename T , unsigned BPC, unsigned BPS> </td></tr>
645
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#ga3fe02492f64cd8a9dfbb1a00ec71c0ae">tmatrix_distance</a> (const T <a class="el" href="a00087.html">tmatrix</a>[BPC][BPS], unsigned distance[BPC][BPC])</td></tr>
646
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute pairwise Row x Row Humming distances on plains(rows) of the transposed bit block. <a href="a00121.html#ga3fe02492f64cd8a9dfbb1a00ec71c0ae"></a><br/></td></tr>
647
<tr><td class="memTemplParams" colspan="2">template<typename T , unsigned BPC, unsigned BPS> </td></tr>
648
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00121.html#gabdc11d48fda6a69873eefd219c4b7e75">bit_iblock_make_pcv</a> (const unsigned distance[BPC][BPC], unsigned char *pc_vector)</td></tr>
649
<tr><td class="mdescLeft"> </td><td class="mdescRight">!< ibpc limiter <a href="a00121.html#gabdc11d48fda6a69873eefd219c4b7e75"></a><br/></td></tr>
650
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#adfae226f696ef821c7d351216c00fe0d">bit_iblock_pcv_stat</a> (const unsigned char *BMRESTRICT pc_vector, const unsigned char *BMRESTRICT pc_vector_end, unsigned *BMRESTRICT pc_vector_stat)</td></tr>
651
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute number of ibpc codes in pc_vector. <a href="#adfae226f696ef821c7d351216c00fe0d"></a><br/></td></tr>
652
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a62808b64adfcf2a7e610a4f713f470c0">bit_iblock_reduce</a> (const unsigned <a class="el" href="a00087.html">tmatrix</a>[<a class="el" href="a00116.html#a3428cf384446982017ba9ee68152d238">bm::set_block_plain_cnt</a>][<a class="el" href="a00116.html#a35780565f6d8f2831ebff8877d3ba662">bm::set_block_plain_size</a>], const unsigned char *BMRESTRICT pc_vector, const unsigned char *BMRESTRICT pc_vector_end, unsigned tmatrix_out[<a class="el" href="a00116.html#a3428cf384446982017ba9ee68152d238">bm::set_block_plain_cnt</a>][<a class="el" href="a00116.html#a35780565f6d8f2831ebff8877d3ba662">bm::set_block_plain_size</a>])</td></tr>
653
<tr><td class="mdescLeft"> </td><td class="mdescRight">Matrix reduction based on transformation pc vector. <a href="#a62808b64adfcf2a7e610a4f713f470c0"></a><br/></td></tr>
654
<tr><td class="memTemplParams" colspan="2">template<class TMatrix > </td></tr>
655
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a336ed7eb10da60438793f0ecff0fb7b1">tmatrix_reduce</a> (TMatrix &<a class="el" href="a00087.html">tmatrix</a>, const unsigned char *pc_vector, const unsigned effective_cols)</td></tr>
656
<tr><td class="mdescLeft"> </td><td class="mdescRight">Transposed Matrix reduction based on transformation pc vector. <a href="#a336ed7eb10da60438793f0ecff0fb7b1"></a><br/></td></tr>
657
<tr><td class="memTemplParams" colspan="2">template<class TMatrix > </td></tr>
658
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#ab7544e494744b2c0b265ab7d81f766b8">tmatrix_restore</a> (TMatrix &<a class="el" href="a00087.html">tmatrix</a>, const unsigned char *pc_vector, const unsigned effective_cols)</td></tr>
659
<tr><td class="mdescLeft"> </td><td class="mdescRight">Transposed Matrix restore based on transformation pc vector. <a href="#ab7544e494744b2c0b265ab7d81f766b8"></a><br/></td></tr>
660
<tr><td class="memTemplParams" colspan="2">template<typename GT , typename BT > </td></tr>
661
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a76724fb233f93c15146641482311ce28">gap_2_bitblock</a> (const GT *BMRESTRICT gap_buf, BT *BMRESTRICT block, unsigned block_size)</td></tr>
662
<tr><td class="mdescLeft"> </td><td class="mdescRight">Copy GAP block body to bit block with DGap transformation. <a href="#a76724fb233f93c15146641482311ce28"></a><br/></td></tr>
663
<tr><td class="memTemplParams" colspan="2">template<class TMatrix > </td></tr>
664
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a3788dd32c39556f0aef90b50e5a5e62c">compute_tmatrix_rstat</a> (const TMatrix &<a class="el" href="a00087.html">tmatrix</a>, const unsigned char *pc_vector, typename TMatrix::rstat *rstat, unsigned effective_cols)</td></tr>
665
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute t-matrix rows statistics used for compression. <a href="#a3788dd32c39556f0aef90b50e5a5e62c"></a><br/></td></tr>
666
<tr><td class="memTemplParams" colspan="2">template<typename TM > </td></tr>
667
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#af92597461aff2926f9adcbf51bac98f9">find_effective_columns</a> (const TM &<a class="el" href="a00087.html">tmatrix</a>)</td></tr>
668
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute effective right column border of the t-matrix. <a href="#af92597461aff2926f9adcbf51bac98f9"></a><br/></td></tr>
669
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
670
<tr><td class="memTemplItemLeft" align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a7267df2bcc9c575c50dd1c68589c6ac1">bit_scan_fwd</a> (T v)</td></tr>
671
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
672
<tr><td class="memTemplItemLeft" align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a46f258f92ab40e2a0c76aa775338faaa">ilog2</a> (T x)</td></tr>
673
<tr><td class="mdescLeft"> </td><td class="mdescRight">Fast loop-less function to find LOG2. <a href="#a46f258f92ab40e2a0c76aa775338faaa"></a><br/></td></tr>
674
<tr><td class="memTemplParams" colspan="2">template<> </td></tr>
675
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">bm::gap_word_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a5f818ac575622da8a9a75511e649ea90">ilog2</a> (<a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> x)</td></tr>
676
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
677
<tr><td class="memTemplItemLeft" align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a3ab126a6fd7ffd872a4001638819a330">ilog2_LUT</a> (T x)</td></tr>
678
<tr><td class="mdescLeft"> </td><td class="mdescRight">Lookup table based integer LOG2. <a href="#a3ab126a6fd7ffd872a4001638819a330"></a><br/></td></tr>
679
<tr><td class="memTemplParams" colspan="2">template<> </td></tr>
680
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">bm::gap_word_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00116.html#a7074ee06dc4ee023170c2f85c78b50fe">ilog2_LUT< bm::gap_word_t ></a> (<a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">bm::gap_word_t</a> x)</td></tr>
681
<tr><td class="mdescLeft"> </td><td class="mdescRight">Lookup table based short integer LOG2. <a href="#a7074ee06dc4ee023170c2f85c78b50fe"></a><br/></td></tr>
682
<tr><td class="memTemplParams" colspan="2">template<class BV > </td></tr>
683
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00127.html#ga5210c3bda57254ef2e8c71e23306cc88">serialize</a> (const BV &bv, unsigned char *buf, <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *temp_block, unsigned <a class="el" href="a00127.html#ga537dfe6318f1f1fe18d86dac312be978">serialization_flags</a>=0)</td></tr>
684
<tr><td class="mdescLeft"> </td><td class="mdescRight">Saves bitvector into memory. <a href="a00127.html#ga5210c3bda57254ef2e8c71e23306cc88"></a><br/></td></tr>
685
<tr><td class="memTemplParams" colspan="2">template<class BV > </td></tr>
686
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00127.html#ga213033b5cc6add74aa4bd1d614b56192">serialize</a> (BV &bv, unsigned char *buf, unsigned <a class="el" href="a00127.html#ga537dfe6318f1f1fe18d86dac312be978">serialization_flags</a>=0)</td></tr>
687
<tr><td class="mdescLeft"> </td><td class="mdescRight">Saves bitvector into memory. Allocates temporary memory block for <a class="el" href="a00044.html" title="bitvector with runtime compression of bits.">bvector</a>. <a href="a00127.html#ga213033b5cc6add74aa4bd1d614b56192"></a><br/></td></tr>
688
<tr><td class="memTemplParams" colspan="2">template<class BV > </td></tr>
689
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00127.html#gafbe633db8da3d867f098468269fd8d3d">deserialize</a> (BV &bv, const unsigned char *buf, <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *temp_block=0)</td></tr>
690
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bitvector deserialization from memory. <a href="a00127.html#gafbe633db8da3d867f098468269fd8d3d"></a><br/></td></tr>
691
<tr><td colspan="2"><h2>Variables</h2></td></tr>
692
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a104b924a1df81542db2a6296fbf26a65">id_max</a> = 0xFFFFFFFF</td></tr>
693
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a91319dbc0d0e1bf3a3efc4d92bac7972">set_block_size</a> = 2048u</td></tr>
694
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ad8723fbeea6290d3daa8917ea7ce9bb2">set_block_shift</a> = 16u</td></tr>
695
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a201fb8b1f81b7487f1c1c129fc3d6557">set_block_mask</a> = 0xFFFFu</td></tr>
696
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a2d1bf97ae342a7759943e62090fcf5d3">set_blkblk_mask</a> = 0xFFFFFFu</td></tr>
697
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a35780565f6d8f2831ebff8877d3ba662">set_block_plain_size</a> = <a class="el" href="a00116.html#a91319dbc0d0e1bf3a3efc4d92bac7972">set_block_size</a> / 32u</td></tr>
698
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a3428cf384446982017ba9ee68152d238">set_block_plain_cnt</a> = sizeof(<a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a>) * 8u</td></tr>
699
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a83d76bccf6fe3770f32d5ba11d2a37ad">set_word_shift</a> = 5u</td></tr>
700
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#addbf345be3733d5e4575d71733ed1da8">set_word_mask</a> = 0x1Fu</td></tr>
701
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#aa5e01dfb650d168f9be0525e042af647">gap_max_buff_len</a> = 1280</td></tr>
702
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ad0b8714080144ac70197840ff96752b7">gap_max_bits</a> = 65536</td></tr>
703
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a9b1715d6d9164d56172e75bbbd0e3000">gap_equiv_len</a></td></tr>
704
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a773e9f5341919d58000bd54d50038733">gap_levels</a> = 4</td></tr>
705
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a13793ad631e2b2fcbaaae9000ea1a924">gap_max_level</a> = <a class="el" href="a00116.html#a773e9f5341919d58000bd54d50038733">bm::gap_levels</a> - 1</td></tr>
706
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a40ad34d6c46a2fb20ba2baa7f95d80b4">set_array_size</a> = 256u</td></tr>
707
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ac1ff8647a089c751ec330cecee01907e">set_array_shift</a> = 8u</td></tr>
708
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a00ffa7b38d7fcc7e522d864991a6de68">set_array_mask</a> = 0xFFu</td></tr>
709
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a505011007f54598794e0b9477c0b0b11">set_total_blocks</a> = (<a class="el" href="a00116.html#a40ad34d6c46a2fb20ba2baa7f95d80b4">bm::set_array_size</a> * <a class="el" href="a00116.html#a40ad34d6c46a2fb20ba2baa7f95d80b4">bm::set_array_size</a>)</td></tr>
710
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ae9916f69ced0347d94472d7944ea0e45">bits_in_block</a> = <a class="el" href="a00116.html#a91319dbc0d0e1bf3a3efc4d92bac7972">bm::set_block_size</a> * sizeof(<a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a>) * 8</td></tr>
711
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a4dedd13a7b8a27c5067b20118002f025">bits_in_array</a> = <a class="el" href="a00116.html#ae9916f69ced0347d94472d7944ea0e45">bm::bits_in_block</a> * <a class="el" href="a00116.html#a40ad34d6c46a2fb20ba2baa7f95d80b4">bm::set_array_size</a></td></tr>
712
<tr><td class="memItemLeft" align="right" valign="top">const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">word_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ad81dea46a256b93b2af3568ce409d40b">all_bits_mask</a> = 0xffffffff</td></tr>
713
<tr><td class="memItemLeft" align="right" valign="top">const unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a7049fd70220fc3a3072e9f82abf4ad66">set_block_size_op</a> = <a class="el" href="a00116.html#a91319dbc0d0e1bf3a3efc4d92bac7972">bm::set_block_size</a></td></tr>
714
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ae34de9206be7a8aa05db9d5dc38bfc90">ibpc_uncompr</a> = 0</td></tr>
715
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#aaca6d3c887b5b7b66a78e95471f9a326">ibpc_all_zero</a> = 1</td></tr>
716
<tr><td class="mdescLeft"> </td><td class="mdescRight">!< plain uncompressed <a href="#aaca6d3c887b5b7b66a78e95471f9a326"></a><br/></td></tr>
717
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#aa6f59be0b838db693e0f081bcaf750f0">ibpc_all_one</a> = 2</td></tr>
718
<tr><td class="mdescLeft"> </td><td class="mdescRight">!< plain ALL ZERO <a href="#aa6f59be0b838db693e0f081bcaf750f0"></a><br/></td></tr>
719
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a748d4095c39c9372a590b431e0ec17fe">ibpc_equiv</a> = 3</td></tr>
720
<tr><td class="mdescLeft"> </td><td class="mdescRight">!< plain ALL ONE <a href="#a748d4095c39c9372a590b431e0ec17fe"></a><br/></td></tr>
721
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#aa61bf7691d32a9bc7c65c05bb62657e5">ibpc_close</a> = 4</td></tr>
722
<tr><td class="mdescLeft"> </td><td class="mdescRight">!< plain is equal to plain M <a href="#aa61bf7691d32a9bc7c65c05bb62657e5"></a><br/></td></tr>
723
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ae4f14f0c2c5a9ee277808d36fd94693f">ibpc_end</a> = 8</td></tr>
724
<tr><td class="mdescLeft"> </td><td class="mdescRight">!< plain is close to plain M <a href="#ae4f14f0c2c5a9ee277808d36fd94693f"></a><br/></td></tr>
725
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#aa24e7c08930cf959d383c6b930fb0508">set_block_end</a> = 0</td></tr>
726
<tr><td class="mdescLeft"> </td><td class="mdescRight">End of serialization. <a href="#aa24e7c08930cf959d383c6b930fb0508"></a><br/></td></tr>
727
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a9e9cf918ca2ebec84eaf844d0e4c8bdb">set_block_1zero</a> = 1</td></tr>
728
<tr><td class="mdescLeft"> </td><td class="mdescRight">One all-zero block. <a href="#a9e9cf918ca2ebec84eaf844d0e4c8bdb"></a><br/></td></tr>
729
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a715131318a361bcccf59fc0b1e41d444">set_block_1one</a> = 2</td></tr>
730
<tr><td class="mdescLeft"> </td><td class="mdescRight">One block all-set (1111...). <a href="#a715131318a361bcccf59fc0b1e41d444"></a><br/></td></tr>
731
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ac9b85b261ab49b37d5e15b84ed2d8b99">set_block_8zero</a> = 3</td></tr>
732
<tr><td class="mdescLeft"> </td><td class="mdescRight">Up to 256 zero blocks. <a href="#ac9b85b261ab49b37d5e15b84ed2d8b99"></a><br/></td></tr>
733
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a57ad1090d6f380cf5de5f98c699b5a75">set_block_8one</a> = 4</td></tr>
734
<tr><td class="mdescLeft"> </td><td class="mdescRight">Up to 256 all-set blocks. <a href="#a57ad1090d6f380cf5de5f98c699b5a75"></a><br/></td></tr>
735
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#aef47eda6538ebf2624c1612d35694c01">set_block_16zero</a> = 5</td></tr>
736
<tr><td class="mdescLeft"> </td><td class="mdescRight">Up to 65536 zero blocks. <a href="#aef47eda6538ebf2624c1612d35694c01"></a><br/></td></tr>
737
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a3fad4a939708df59b1201910c7d37e30">set_block_16one</a> = 6</td></tr>
738
<tr><td class="mdescLeft"> </td><td class="mdescRight">UP to 65536 all-set blocks. <a href="#a3fad4a939708df59b1201910c7d37e30"></a><br/></td></tr>
739
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ac7dfbd94a0534df88849bbce9e6c419a">set_block_32zero</a> = 7</td></tr>
740
<tr><td class="mdescLeft"> </td><td class="mdescRight">Up to 4G zero blocks. <a href="#ac7dfbd94a0534df88849bbce9e6c419a"></a><br/></td></tr>
741
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a5b87c58ae617ad1f104b4c6bc3ed6447">set_block_32one</a> = 8</td></tr>
742
<tr><td class="mdescLeft"> </td><td class="mdescRight">UP to 4G all-set blocks. <a href="#a5b87c58ae617ad1f104b4c6bc3ed6447"></a><br/></td></tr>
743
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ae87b5c61d7ba6e2e592a279db0b21cc0">set_block_azero</a> = 9</td></tr>
744
<tr><td class="mdescLeft"> </td><td class="mdescRight">All other blocks zero. <a href="#ae87b5c61d7ba6e2e592a279db0b21cc0"></a><br/></td></tr>
745
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ad506b63262c52870758432a95e71907e">set_block_aone</a> = 10</td></tr>
746
<tr><td class="mdescLeft"> </td><td class="mdescRight">All other blocks one. <a href="#ad506b63262c52870758432a95e71907e"></a><br/></td></tr>
747
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#aef86ab2eb42c198272eea7cdfe42951b">set_block_bit</a> = 11</td></tr>
748
<tr><td class="mdescLeft"> </td><td class="mdescRight">Plain bit block. <a href="#aef86ab2eb42c198272eea7cdfe42951b"></a><br/></td></tr>
749
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#afe4b1011b09271c5f3882b926e250d39">set_block_sgapbit</a> = 12</td></tr>
750
<tr><td class="mdescLeft"> </td><td class="mdescRight">SGAP compressed bitblock. <a href="#afe4b1011b09271c5f3882b926e250d39"></a><br/></td></tr>
751
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ab3a8d57c0b898c3c5a23cd27a8f856ad">set_block_sgapgap</a> = 13</td></tr>
752
<tr><td class="mdescLeft"> </td><td class="mdescRight">SGAP compressed GAP block. <a href="#ab3a8d57c0b898c3c5a23cd27a8f856ad"></a><br/></td></tr>
753
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a09b8c4b17b7d6f613c237c46d04a9cd6">set_block_gap</a> = 14</td></tr>
754
<tr><td class="mdescLeft"> </td><td class="mdescRight">Plain GAP block. <a href="#a09b8c4b17b7d6f613c237c46d04a9cd6"></a><br/></td></tr>
755
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a77dc965397e31a1d39c3d8e628792779">set_block_gapbit</a> = 15</td></tr>
756
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP compressed bitblock. <a href="#a77dc965397e31a1d39c3d8e628792779"></a><br/></td></tr>
757
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a6ec6acb175ce77a229003f088ecd3923">set_block_arrbit</a> = 16</td></tr>
758
<tr><td class="mdescLeft"> </td><td class="mdescRight">List of bits ON. <a href="#a6ec6acb175ce77a229003f088ecd3923"></a><br/></td></tr>
759
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a0f2d3289a95dc3bd224a6a73c3d3afce">set_block_bit_interval</a> = 17</td></tr>
760
<tr><td class="mdescLeft"> </td><td class="mdescRight">Interval block. <a href="#a0f2d3289a95dc3bd224a6a73c3d3afce"></a><br/></td></tr>
761
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#aae33ceefae804cdd94412beee8c52720">set_block_arrgap</a> = 18</td></tr>
762
<tr><td class="mdescLeft"> </td><td class="mdescRight">List of bits ON (GAP block). <a href="#aae33ceefae804cdd94412beee8c52720"></a><br/></td></tr>
763
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ad0e6607a9771fa49a658c3078208c2dc">set_block_bit_1bit</a> = 19</td></tr>
764
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit block with 1 bit ON. <a href="#ad0e6607a9771fa49a658c3078208c2dc"></a><br/></td></tr>
765
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#ac47dea3917e15264ed3ba0cf4055adbe">set_block_gap_egamma</a> = 20</td></tr>
766
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gamma compressed GAP block. <a href="#ac47dea3917e15264ed3ba0cf4055adbe"></a><br/></td></tr>
767
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a9674ddb1b9ee66948465249688708188">set_block_arrgap_egamma</a> = 21</td></tr>
768
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gamma compressed delta GAP array. <a href="#a9674ddb1b9ee66948465249688708188"></a><br/></td></tr>
769
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a5e21adca3bc6902f33e43e5cfd824f0e">set_block_bit_0runs</a> = 22</td></tr>
770
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit block with encoded zero intervals. <a href="#a5e21adca3bc6902f33e43e5cfd824f0e"></a><br/></td></tr>
771
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a1caddb62b332a568ba590794800610f6">set_block_arrgap_egamma_inv</a> = 23</td></tr>
772
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gamma compressed inverted delta GAP array. <a href="#a1caddb62b332a568ba590794800610f6"></a><br/></td></tr>
773
<tr><td class="memItemLeft" align="right" valign="top">const unsigned char </td><td class="memItemRight" valign="bottom"><a class="el" href="a00116.html#a746a03f6f5563cc8c75db93bba40095d">set_block_arrgap_inv</a> = 24</td></tr>
774
<tr><td class="mdescLeft"> </td><td class="mdescRight">List of bits OFF (GAP block). <a href="#a746a03f6f5563cc8c75db93bba40095d"></a><br/></td></tr>
776
<hr/><h2>Typedef Documentation</h2>
777
<a class="anchor" id="ad93f96a77f223240b8c6b8f81c5db840"></a><!-- doxytag: member="bm::bit_operation_count_func_type" ref="ad93f96a77f223240b8c6b8f81c5db840" args=")(const bm::word_t *BMRESTRICT, const bm::word_t *BMRESTRICT, const bm::word_t *BMRESTRICT)" -->
778
<div class="memitem">
779
<div class="memproto">
780
<table class="memname">
782
<td class="memname">typedef <a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a>(* <a class="el" href="a00116.html#ad93f96a77f223240b8c6b8f81c5db840">bm::bit_operation_count_func_type</a>)(const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT, const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT)</td>
788
<p>Definition at line <a class="el" href="a00094_source.html#l05071">5071</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
792
<a class="anchor" id="ac36d9b78ebf78baf0b92dc61487d9847"></a><!-- doxytag: member="bm::decoder_big_endian" ref="ac36d9b78ebf78baf0b92dc61487d9847" args="" -->
793
<div class="memitem">
794
<div class="memproto">
795
<table class="memname">
797
<td class="memname">typedef <a class="el" href="a00054.html">decoder</a> <a class="el" href="a00054.html">bm::decoder_big_endian</a></td>
803
<p>Class for decoding data from memory buffer. </p>
804
<p>Properly handles aligment issues with integer data types. Converts data to big endian architecture (presumed it was encoded as little endian) </p>
806
<p>Definition at line <a class="el" href="a00105_source.html#l00114">114</a> of file <a class="el" href="a00105_source.html">encoding.h</a>.</p>
810
<a class="anchor" id="a8402de852093e5b23b5825f1974b9c12"></a><!-- doxytag: member="bm::gap_operation_func_type" ref="a8402de852093e5b23b5825f1974b9c12" args=")(const gap_word_t *BMRESTRICT, const gap_word_t *BMRESTRICT, gap_word_t *BMRESTRICT, unsigned &)" -->
811
<div class="memitem">
812
<div class="memproto">
813
<table class="memname">
815
<td class="memname">typedef <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a>*(* <a class="el" href="a00116.html#a8402de852093e5b23b5825f1974b9c12">bm::gap_operation_func_type</a>)(const <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT, const <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT, <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *BMRESTRICT, unsigned &)</td>
821
<p>Definition at line <a class="el" href="a00094_source.html#l05065">5065</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
825
<a class="anchor" id="a18a8f03b151ca3a6d5e39e7709fb6c7c"></a><!-- doxytag: member="bm::gap_operation_to_bitset_func_type" ref="a18a8f03b151ca3a6d5e39e7709fb6c7c" args=")(unsigned *, const gap_word_t *)" -->
826
<div class="memitem">
827
<div class="memproto">
828
<table class="memname">
830
<td class="memname">typedef void(* <a class="el" href="a00116.html#a18a8f03b151ca3a6d5e39e7709fb6c7c">bm::gap_operation_to_bitset_func_type</a>)(unsigned *, const <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a> *)</td>
836
<p>Definition at line <a class="el" href="a00094_source.html#l05061">5061</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
840
<a class="anchor" id="ac654d6319039a86546d235a236fc7cf6"></a><!-- doxytag: member="bm::gap_word_t" ref="ac654d6319039a86546d235a236fc7cf6" args="" -->
841
<div class="memitem">
842
<div class="memproto">
843
<table class="memname">
845
<td class="memname">typedef unsigned short <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">bm::gap_word_t</a></td>
851
<p>Definition at line <a class="el" href="a00092_source.html#l00068">68</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
855
<a class="anchor" id="a1f6a6dd108cd9e9f4fb284043ef518fe"></a><!-- doxytag: member="bm::id64_t" ref="a1f6a6dd108cd9e9f4fb284043ef518fe" args="" -->
856
<div class="memitem">
857
<div class="memproto">
858
<table class="memname">
860
<td class="memname">typedef unsigned long long <a class="el" href="a00116.html#a1f6a6dd108cd9e9f4fb284043ef518fe">bm::id64_t</a></td>
866
<p>Definition at line <a class="el" href="a00092_source.html#l00038">38</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
870
<a class="anchor" id="aa3824d882a037396370b16f2f0a8bf37"></a><!-- doxytag: member="bm::id_t" ref="aa3824d882a037396370b16f2f0a8bf37" args="" -->
871
<div class="memitem">
872
<div class="memproto">
873
<table class="memname">
875
<td class="memname">typedef unsigned int <a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a></td>
881
<p>Definition at line <a class="el" href="a00092_source.html#l00042">42</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
885
<a class="anchor" id="ac77813f2c2dfe40575830ba6a8373bcc"></a><!-- doxytag: member="bm::mem_save_set" ref="ac77813f2c2dfe40575830ba6a8373bcc" args="" -->
886
<div class="memitem">
887
<div class="memproto">
888
<table class="memname">
890
<td class="memname">typedef <a class="el" href="a00075.html">bm::miniset</a><<a class="el" href="a00039.html">bm::block_allocator</a>, <a class="el" href="a00116.html#a505011007f54598794e0b9477c0b0b11">bm::set_total_blocks</a>> <a class="el" href="a00075.html">bm::mem_save_set</a></td>
896
<p>Definition at line <a class="el" href="a00088_source.html#l00097">97</a> of file <a class="el" href="a00088_source.html">bm.h</a>.</p>
900
<a class="anchor" id="ae64960202b691ae1b6efe5fec12cb5af"></a><!-- doxytag: member="bm::short_t" ref="ae64960202b691ae1b6efe5fec12cb5af" args="" -->
901
<div class="memitem">
902
<div class="memproto">
903
<table class="memname">
905
<td class="memname">typedef unsigned short <a class="el" href="a00116.html#ae64960202b691ae1b6efe5fec12cb5af">bm::short_t</a></td>
911
<p>Definition at line <a class="el" href="a00092_source.html#l00044">44</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
915
<a class="anchor" id="a17fd5ba52db3ddda05e6f8dd5000a1a4"></a><!-- doxytag: member="bm::word_t" ref="a17fd5ba52db3ddda05e6f8dd5000a1a4" args="" -->
916
<div class="memitem">
917
<div class="memproto">
918
<table class="memname">
920
<td class="memname">typedef unsigned int <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a></td>
925
<dl><dt><b>Examples: </b></dt><dd><a class="el" href="a00006.html#a3">sample6.cpp</a>.</dd>
927
<p>Definition at line <a class="el" href="a00092_source.html#l00043">43</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
931
<a class="anchor" id="a7176bf7817550ca24cb6612bd8d7957d"></a><!-- doxytag: member="bm::wordop_t" ref="a7176bf7817550ca24cb6612bd8d7957d" args="" -->
932
<div class="memitem">
933
<div class="memproto">
934
<table class="memname">
936
<td class="memname">typedef <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">word_t</a> <a class="el" href="a00116.html#a7176bf7817550ca24cb6612bd8d7957d">bm::wordop_t</a></td>
942
<p>Definition at line <a class="el" href="a00092_source.html#l00100">100</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
946
<hr/><h2>Enumeration Type Documentation</h2>
947
<a class="anchor" id="a577905b348676c2bc556b51793350dbb"></a><!-- doxytag: member="bm::ByteOrder" ref="a577905b348676c2bc556b51793350dbb" args="" -->
948
<div class="memitem">
949
<div class="memproto">
950
<table class="memname">
952
<td class="memname">enum <a class="el" href="a00116.html#a577905b348676c2bc556b51793350dbb">bm::ByteOrder</a></td>
958
<p>Byte orders recognized by the library. </p>
959
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
960
<tr><td valign="top"><em><a class="anchor" id="a577905b348676c2bc556b51793350dbbac959b97503c42581f3dd81fd3b93fff2"></a><!-- doxytag: member="BigEndian" ref="a577905b348676c2bc556b51793350dbbac959b97503c42581f3dd81fd3b93fff2" args="" -->BigEndian</em> </td><td>
962
<tr><td valign="top"><em><a class="anchor" id="a577905b348676c2bc556b51793350dbba5ebe266b6d18ee74483c2bbf624e2cc2"></a><!-- doxytag: member="LittleEndian" ref="a577905b348676c2bc556b51793350dbba5ebe266b6d18ee74483c2bbf624e2cc2" args="" -->LittleEndian</em> </td><td>
968
<p>Definition at line <a class="el" href="a00094_source.html#l00397">397</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
972
<a class="anchor" id="a42405343976ec931388381cea4092bf1"></a><!-- doxytag: member="bm::operation" ref="a42405343976ec931388381cea4092bf1" args="" -->
973
<div class="memitem">
974
<div class="memproto">
975
<table class="memname">
977
<td class="memname">enum <a class="el" href="a00116.html#a42405343976ec931388381cea4092bf1">bm::operation</a></td>
983
<p>Bit operations enumeration. </p>
984
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
985
<tr><td valign="top"><em><a class="anchor" id="a42405343976ec931388381cea4092bf1a546fdf33b301e5b9bee0591522ed9250"></a><!-- doxytag: member="BM_AND" ref="a42405343976ec931388381cea4092bf1a546fdf33b301e5b9bee0591522ed9250" args="" -->BM_AND</em> </td><td>
987
<tr><td valign="top"><em><a class="anchor" id="a42405343976ec931388381cea4092bf1a0c8cf0197857d0bd73a63037e2f2c5c5"></a><!-- doxytag: member="BM_OR" ref="a42405343976ec931388381cea4092bf1a0c8cf0197857d0bd73a63037e2f2c5c5" args="" -->BM_OR</em> </td><td>
989
<tr><td valign="top"><em><a class="anchor" id="a42405343976ec931388381cea4092bf1a1df0f4de7126bb2f7ce69d7a005affb5"></a><!-- doxytag: member="BM_SUB" ref="a42405343976ec931388381cea4092bf1a1df0f4de7126bb2f7ce69d7a005affb5" args="" -->BM_SUB</em> </td><td>
991
<tr><td valign="top"><em><a class="anchor" id="a42405343976ec931388381cea4092bf1a45c2fe36efb72dc03f03a842d253f64c"></a><!-- doxytag: member="BM_XOR" ref="a42405343976ec931388381cea4092bf1a45c2fe36efb72dc03f03a842d253f64c" args="" -->BM_XOR</em> </td><td>
997
<p>Definition at line <a class="el" href="a00094_source.html#l00274">274</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
1001
<a class="anchor" id="ab69f66b71d349b0757370f54318bb2c0"></a><!-- doxytag: member="bm::serialization_header_mask" ref="ab69f66b71d349b0757370f54318bb2c0" args="" -->
1002
<div class="memitem">
1003
<div class="memproto">
1004
<table class="memname">
1006
<td class="memname">enum <a class="el" href="a00116.html#ab69f66b71d349b0757370f54318bb2c0">bm::serialization_header_mask</a></td>
1010
<div class="memdoc">
1011
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
1012
<tr><td valign="top"><em><a class="anchor" id="ab69f66b71d349b0757370f54318bb2c0a97434d6617bb5f0d6f3bf44491f712ca"></a><!-- doxytag: member="BM_HM_DEFAULT" ref="ab69f66b71d349b0757370f54318bb2c0a97434d6617bb5f0d6f3bf44491f712ca" args="" -->BM_HM_DEFAULT</em> </td><td>
1014
<tr><td valign="top"><em><a class="anchor" id="ab69f66b71d349b0757370f54318bb2c0af4fbefa0ed0a8ff42dd664f120782c27"></a><!-- doxytag: member="BM_HM_RESIZE" ref="ab69f66b71d349b0757370f54318bb2c0af4fbefa0ed0a8ff42dd664f120782c27" args="" -->BM_HM_RESIZE</em> </td><td>
1015
<p>resized vector </p>
1017
<tr><td valign="top"><em><a class="anchor" id="ab69f66b71d349b0757370f54318bb2c0a64c44c57a6f8b8e89f0916db9e120d47"></a><!-- doxytag: member="BM_HM_ID_LIST" ref="ab69f66b71d349b0757370f54318bb2c0a64c44c57a6f8b8e89f0916db9e120d47" args="" -->BM_HM_ID_LIST</em> </td><td>
1018
<p>id list stored </p>
1020
<tr><td valign="top"><em><a class="anchor" id="ab69f66b71d349b0757370f54318bb2c0a6b127bde401907318702dd4827c8f74e"></a><!-- doxytag: member="BM_HM_NO_BO" ref="ab69f66b71d349b0757370f54318bb2c0a6b127bde401907318702dd4827c8f74e" args="" -->BM_HM_NO_BO</em> </td><td>
1021
<p>no byte-order </p>
1023
<tr><td valign="top"><em><a class="anchor" id="ab69f66b71d349b0757370f54318bb2c0a04c714af376c203bc8b082856ad622a3"></a><!-- doxytag: member="BM_HM_NO_GAPL" ref="ab69f66b71d349b0757370f54318bb2c0a04c714af376c203bc8b082856ad622a3" args="" -->BM_HM_NO_GAPL</em> </td><td>
1024
<p>no GAP levels </p>
1030
<p>Definition at line <a class="el" href="a00097_source.html#l00095">95</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
1034
<a class="anchor" id="a76b70d2b9182a6dcac151d1bd9ec6109"></a><!-- doxytag: member="bm::set_operation" ref="a76b70d2b9182a6dcac151d1bd9ec6109" args="" -->
1035
<div class="memitem">
1036
<div class="memproto">
1037
<table class="memname">
1039
<td class="memname">enum <a class="el" href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109">bm::set_operation</a></td>
1043
<div class="memdoc">
1045
<p>Nomenclature of set operations. </p>
1046
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
1047
<tr><td valign="top"><em><a class="anchor" id="a76b70d2b9182a6dcac151d1bd9ec6109a949fba4d9b152e1cbba9a450e05e21a3"></a><!-- doxytag: member="set_AND" ref="a76b70d2b9182a6dcac151d1bd9ec6109a949fba4d9b152e1cbba9a450e05e21a3" args="" -->set_AND</em> </td><td>
1049
<tr><td valign="top"><em><a class="anchor" id="a76b70d2b9182a6dcac151d1bd9ec6109a05d88a2639cbd3d2ac63436df3ed6780"></a><!-- doxytag: member="set_OR" ref="a76b70d2b9182a6dcac151d1bd9ec6109a05d88a2639cbd3d2ac63436df3ed6780" args="" -->set_OR</em> </td><td>
1051
<tr><td valign="top"><em><a class="anchor" id="a76b70d2b9182a6dcac151d1bd9ec6109a348f23af148237ac49194815b222b769"></a><!-- doxytag: member="set_SUB" ref="a76b70d2b9182a6dcac151d1bd9ec6109a348f23af148237ac49194815b222b769" args="" -->set_SUB</em> </td><td>
1053
<tr><td valign="top"><em><a class="anchor" id="a76b70d2b9182a6dcac151d1bd9ec6109ab823123a0d630167532a96be004e6304"></a><!-- doxytag: member="set_XOR" ref="a76b70d2b9182a6dcac151d1bd9ec6109ab823123a0d630167532a96be004e6304" args="" -->set_XOR</em> </td><td>
1055
<tr><td valign="top"><em><a class="anchor" id="a76b70d2b9182a6dcac151d1bd9ec6109a34150dd6a8ac2e70b887565bd1c3f788"></a><!-- doxytag: member="set_ASSIGN" ref="a76b70d2b9182a6dcac151d1bd9ec6109a34150dd6a8ac2e70b887565bd1c3f788" args="" -->set_ASSIGN</em> </td><td>
1057
<tr><td valign="top"><em><a class="anchor" id="a76b70d2b9182a6dcac151d1bd9ec6109a3f165b7944e33214e8721aaf2eb8378e"></a><!-- doxytag: member="set_COUNT" ref="a76b70d2b9182a6dcac151d1bd9ec6109a3f165b7944e33214e8721aaf2eb8378e" args="" -->set_COUNT</em> </td><td>
1059
<tr><td valign="top"><em><a class="anchor" id="a76b70d2b9182a6dcac151d1bd9ec6109a378be4b14cee6a341e859fd3157ab959"></a><!-- doxytag: member="set_COUNT_AND" ref="a76b70d2b9182a6dcac151d1bd9ec6109a378be4b14cee6a341e859fd3157ab959" args="" -->set_COUNT_AND</em> </td><td>
1061
<tr><td valign="top"><em><a class="anchor" id="a76b70d2b9182a6dcac151d1bd9ec6109a1373054e4f243dffb762a55b8a8bfe4c"></a><!-- doxytag: member="set_COUNT_XOR" ref="a76b70d2b9182a6dcac151d1bd9ec6109a1373054e4f243dffb762a55b8a8bfe4c" args="" -->set_COUNT_XOR</em> </td><td>
1063
<tr><td valign="top"><em><a class="anchor" id="a76b70d2b9182a6dcac151d1bd9ec6109a27e34c148d06e3d8a405482d820cd7fb"></a><!-- doxytag: member="set_COUNT_OR" ref="a76b70d2b9182a6dcac151d1bd9ec6109a27e34c148d06e3d8a405482d820cd7fb" args="" -->set_COUNT_OR</em> </td><td>
1065
<tr><td valign="top"><em><a class="anchor" id="a76b70d2b9182a6dcac151d1bd9ec6109a0028cc7084b37fe66ce5ae459b93b7f1"></a><!-- doxytag: member="set_COUNT_SUB_AB" ref="a76b70d2b9182a6dcac151d1bd9ec6109a0028cc7084b37fe66ce5ae459b93b7f1" args="" -->set_COUNT_SUB_AB</em> </td><td>
1067
<tr><td valign="top"><em><a class="anchor" id="a76b70d2b9182a6dcac151d1bd9ec6109a2f7b894c11c058598d02722a7eeef03b"></a><!-- doxytag: member="set_COUNT_SUB_BA" ref="a76b70d2b9182a6dcac151d1bd9ec6109a2f7b894c11c058598d02722a7eeef03b" args="" -->set_COUNT_SUB_BA</em> </td><td>
1069
<tr><td valign="top"><em><a class="anchor" id="a76b70d2b9182a6dcac151d1bd9ec6109abafe8a971864164aeec7f43d1205ed29"></a><!-- doxytag: member="set_COUNT_A" ref="a76b70d2b9182a6dcac151d1bd9ec6109abafe8a971864164aeec7f43d1205ed29" args="" -->set_COUNT_A</em> </td><td>
1071
<tr><td valign="top"><em><a class="anchor" id="a76b70d2b9182a6dcac151d1bd9ec6109a2ac4eb7f41d00f8387d5dd3ffb9d0617"></a><!-- doxytag: member="set_COUNT_B" ref="a76b70d2b9182a6dcac151d1bd9ec6109a2ac4eb7f41d00f8387d5dd3ffb9d0617" args="" -->set_COUNT_B</em> </td><td>
1073
<tr><td valign="top"><em><a class="anchor" id="a76b70d2b9182a6dcac151d1bd9ec6109ad894d257a23664720dbf4155153a1e5c"></a><!-- doxytag: member="set_END" ref="a76b70d2b9182a6dcac151d1bd9ec6109ad894d257a23664720dbf4155153a1e5c" args="" -->set_END</em> </td><td>
1079
<p>Definition at line <a class="el" href="a00094_source.html#l00245">245</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
1083
<a class="anchor" id="a593916a103395805070a3200720c6416"></a><!-- doxytag: member="bm::set_representation" ref="a593916a103395805070a3200720c6416" args="" -->
1084
<div class="memitem">
1085
<div class="memproto">
1086
<table class="memname">
1088
<td class="memname">enum <a class="el" href="a00116.html#a593916a103395805070a3200720c6416">bm::set_representation</a></td>
1092
<div class="memdoc">
1094
<p>set representation variants </p>
1095
<dl><dt><b>Enumerator: </b></dt><dd><table border="0" cellspacing="2" cellpadding="0">
1096
<tr><td valign="top"><em><a class="anchor" id="a593916a103395805070a3200720c6416a11f970b705c57a0572043e5cc5e2e333"></a><!-- doxytag: member="set_bitset" ref="a593916a103395805070a3200720c6416a11f970b705c57a0572043e5cc5e2e333" args="" -->set_bitset</em> </td><td>
1097
<p>Simple bitset. </p>
1099
<tr><td valign="top"><em><a class="anchor" id="a593916a103395805070a3200720c6416a4809f1871df2ba431e5b70d175f050ec"></a><!-- doxytag: member="set_gap" ref="a593916a103395805070a3200720c6416a4809f1871df2ba431e5b70d175f050ec" args="" -->set_gap</em> </td><td>
1100
<p>GAP-RLE compression. </p>
1102
<tr><td valign="top"><em><a class="anchor" id="a593916a103395805070a3200720c6416a4bd710c312645ed34e4db359a7e59c42"></a><!-- doxytag: member="set_array1" ref="a593916a103395805070a3200720c6416a4bd710c312645ed34e4db359a7e59c42" args="" -->set_array1</em> </td><td>
1103
<p>array of set 1 values </p>
1105
<tr><td valign="top"><em><a class="anchor" id="a593916a103395805070a3200720c6416a8d71ac8a4f70b88d2a425d0c1e872fa2"></a><!-- doxytag: member="set_array0" ref="a593916a103395805070a3200720c6416a8d71ac8a4f70b88d2a425d0c1e872fa2" args="" -->set_array0</em> </td><td>
1106
<p>array of 0 values </p>
1112
<p>Definition at line <a class="el" href="a00092_source.html#l00125">125</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
1116
<hr/><h2>Function Documentation</h2>
1117
<a class="anchor" id="a8d943cf66c4592e2baddf5bc0667adbd"></a><!-- doxytag: member="bm::and_op" ref="a8d943cf66c4592e2baddf5bc0667adbd" args="(unsigned v1, unsigned v2)" -->
1118
<div class="memitem">
1119
<div class="memproto">
1120
<table class="memname">
1122
<td class="memname">BMFORCEINLINE unsigned bm::and_op </td>
1124
<td class="paramtype">unsigned </td>
1125
<td class="paramname"> <em>v1</em>, </td>
1128
<td class="paramkey"></td>
1130
<td class="paramtype">unsigned </td>
1131
<td class="paramname"> <em>v2</em></td><td> </td>
1136
<td></td><td></td><td></td>
1140
<div class="memdoc">
1142
<p>GAP and functor. </p>
1144
<p>Definition at line <a class="el" href="a00094_source.html#l03101">3101</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
1146
<p>Referenced by <a class="el" href="a00094_source.html#l03130">gap_operation_and()</a>, <a class="el" href="a00094_source.html#l03153">gap_operation_any_and()</a>, <a class="el" href="a00094_source.html#l03280">gap_operation_any_sub()</a>, <a class="el" href="a00094_source.html#l03226">gap_operation_or()</a>, and <a class="el" href="a00094_source.html#l03256">gap_operation_sub()</a>.</p>
1150
<a class="anchor" id="ae2222be6fd45b4bab5100ce70e3b4f88"></a><!-- doxytag: member="bm::bit_count_change32" ref="ae2222be6fd45b4bab5100ce70e3b4f88" args="(const bm::word_t *block, const bm::word_t *block_end, unsigned *bit_count, unsigned *gap_count)" -->
1151
<div class="memitem">
1152
<div class="memproto">
1153
<table class="memname">
1155
<td class="memname">void bm::bit_count_change32 </td>
1157
<td class="paramtype">const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td>
1158
<td class="paramname"> <em>block</em>, </td>
1161
<td class="paramkey"></td>
1163
<td class="paramtype">const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td>
1164
<td class="paramname"> <em>block_end</em>, </td>
1167
<td class="paramkey"></td>
1169
<td class="paramtype">unsigned * </td>
1170
<td class="paramname"> <em>bit_count</em>, </td>
1173
<td class="paramkey"></td>
1175
<td class="paramtype">unsigned * </td>
1176
<td class="paramname"> <em>gap_count</em></td><td> </td>
1181
<td></td><td></td><td><code> [inline]</code></td>
1185
<div class="memdoc">
1186
<p>Function calculates number of times when bit value changed </p>
1188
<p>Definition at line <a class="el" href="a00094_source.html#l02757">2757</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
1190
<p>References <a class="el" href="a00093_source.html#l00050">BM_ASSERT</a>, and <a class="el" href="a00093_source.html#l00168">BM_INCWORD_BITCOUNT</a>.</p>
1192
<p>Referenced by <a class="el" href="a00094_source.html#l02819">bit_block_calc_count_change()</a>, and <a class="el" href="a00101_source.html#l00683">compute_tmatrix_rstat()</a>.</p>
1196
<a class="anchor" id="adfae226f696ef821c7d351216c00fe0d"></a><!-- doxytag: member="bm::bit_iblock_pcv_stat" ref="adfae226f696ef821c7d351216c00fe0d" args="(const unsigned char *BMRESTRICT pc_vector, const unsigned char *BMRESTRICT pc_vector_end, unsigned *BMRESTRICT pc_vector_stat)" -->
1197
<div class="memitem">
1198
<div class="memproto">
1199
<table class="memname">
1201
<td class="memname">void bm::bit_iblock_pcv_stat </td>
1203
<td class="paramtype">const unsigned char *BMRESTRICT </td>
1204
<td class="paramname"> <em>pc_vector</em>, </td>
1207
<td class="paramkey"></td>
1209
<td class="paramtype">const unsigned char *BMRESTRICT </td>
1210
<td class="paramname"> <em>pc_vector_end</em>, </td>
1213
<td class="paramkey"></td>
1215
<td class="paramtype">unsigned *BMRESTRICT </td>
1216
<td class="paramname"> <em>pc_vector_stat</em></td><td> </td>
1221
<td></td><td></td><td><code> [inline]</code></td>
1225
<div class="memdoc">
1227
<p>Compute number of ibpc codes in pc_vector. </p>
1229
<p>Definition at line <a class="el" href="a00101_source.html#l00474">474</a> of file <a class="el" href="a00101_source.html">bmtrans.h</a>.</p>
1231
<p>References <a class="el" href="a00093_source.html#l00050">BM_ASSERT</a>.</p>
1233
<p>Referenced by <a class="el" href="a00101_source.html#l00829">bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::compute_distance_matrix()</a>.</p>
1237
<a class="anchor" id="a62808b64adfcf2a7e610a4f713f470c0"></a><!-- doxytag: member="bm::bit_iblock_reduce" ref="a62808b64adfcf2a7e610a4f713f470c0" args="(const unsigned tmatrix[bm::set_block_plain_cnt][bm::set_block_plain_size], const unsigned char *BMRESTRICT pc_vector, const unsigned char *BMRESTRICT pc_vector_end, unsigned tmatrix_out[bm::set_block_plain_cnt][bm::set_block_plain_size])" -->
1238
<div class="memitem">
1239
<div class="memproto">
1240
<table class="memname">
1242
<td class="memname">void bm::bit_iblock_reduce </td>
1244
<td class="paramtype">const unsigned </td>
1245
<td class="paramname"> <em>tmatrix</em>[bm::set_block_plain_cnt][bm::set_block_plain_size], </td>
1248
<td class="paramkey"></td>
1250
<td class="paramtype">const unsigned char *BMRESTRICT </td>
1251
<td class="paramname"> <em>pc_vector</em>, </td>
1254
<td class="paramkey"></td>
1256
<td class="paramtype">const unsigned char *BMRESTRICT </td>
1257
<td class="paramname"> <em>pc_vector_end</em>, </td>
1260
<td class="paramkey"></td>
1262
<td class="paramtype">unsigned </td>
1263
<td class="paramname"> <em>tmatrix_out</em>[bm::set_block_plain_cnt][bm::set_block_plain_size]</td><td> </td>
1268
<td></td><td></td><td><code> [inline]</code></td>
1272
<div class="memdoc">
1274
<p>Matrix reduction based on transformation pc vector. </p>
1276
<p>Definition at line <a class="el" href="a00101_source.html#l00494">494</a> of file <a class="el" href="a00101_source.html">bmtrans.h</a>.</p>
1278
<p>References <a class="el" href="a00093_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00101_source.html#l00386">ibpc_all_one</a>, <a class="el" href="a00101_source.html#l00385">ibpc_all_zero</a>, <a class="el" href="a00101_source.html#l00388">ibpc_close</a>, <a class="el" href="a00101_source.html#l00387">ibpc_equiv</a>, and <a class="el" href="a00101_source.html#l00384">ibpc_uncompr</a>.</p>
1282
<a class="anchor" id="a503fecc0ee281059897412d68f489e1e"></a><!-- doxytag: member="bm::bit_recomb" ref="a503fecc0ee281059897412d68f489e1e" args="(It1 &it1, It2 &it2, BinaryOp &op, Encoder &enc, unsigned block_size=bm::set_block_size)" -->
1283
<div class="memitem">
1284
<div class="memproto">
1285
<div class="memtemplate">
1286
template<class It1 , class It2 , class BinaryOp , class Encoder > </div>
1287
<table class="memname">
1289
<td class="memname">void bm::bit_recomb </td>
1291
<td class="paramtype">It1 & </td>
1292
<td class="paramname"> <em>it1</em>, </td>
1295
<td class="paramkey"></td>
1297
<td class="paramtype">It2 & </td>
1298
<td class="paramname"> <em>it2</em>, </td>
1301
<td class="paramkey"></td>
1303
<td class="paramtype">BinaryOp & </td>
1304
<td class="paramname"> <em>op</em>, </td>
1307
<td class="paramkey"></td>
1309
<td class="paramtype">Encoder & </td>
1310
<td class="paramname"> <em>enc</em>, </td>
1313
<td class="paramkey"></td>
1315
<td class="paramtype">unsigned </td>
1316
<td class="paramname"> <em>block_size</em> = <code><a class="el" href="a00116.html#a91319dbc0d0e1bf3a3efc4d92bac7972">bm::set_block_size</a></code></td><td> </td>
1321
<td></td><td></td><td><code> [inline]</code></td>
1325
<div class="memdoc">
1326
<p>Abstract recombination algorithm for two bit-blocks Bit blocks can come as dserialization decoders or bit-streams </p>
1328
<p>Definition at line <a class="el" href="a00094_source.html#l04927">4927</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
1330
<p>Referenced by <a class="el" href="a00097_source.html#l02382">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_OR()</a>, <a class="el" href="a00097_source.html#l02538">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_AB()</a>, <a class="el" href="a00097_source.html#l02617">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_BA()</a>, <a class="el" href="a00097_source.html#l02460">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_XOR()</a>, and <a class="el" href="a00097_source.html#l01951">bm::serial_stream_iterator< DEC >::get_bit_block_OR()</a>.</p>
1334
<a class="anchor" id="a7267df2bcc9c575c50dd1c68589c6ac1"></a><!-- doxytag: member="bm::bit_scan_fwd" ref="a7267df2bcc9c575c50dd1c68589c6ac1" args="(T v)" -->
1335
<div class="memitem">
1336
<div class="memproto">
1337
<div class="memtemplate">
1338
template<typename T > </div>
1339
<table class="memname">
1341
<td class="memname">T bm::bit_scan_fwd </td>
1343
<td class="paramtype">T </td>
1344
<td class="paramname"> <em>v</em></td>
1345
<td> ) </td>
1346
<td><code> [inline]</code></td>
1350
<div class="memdoc">
1352
<p>Definition at line <a class="el" href="a00103_source.html#l00058">58</a> of file <a class="el" href="a00103_source.html">bmutil.h</a>.</p>
1354
<p>Referenced by <a class="el" href="a00105_source.html#l00343">bm::bit_in< TDecoder >::gamma()</a>.</p>
1358
<a class="anchor" id="a86d5d5ccdb79d2b2ad552bd1caf34b2f"></a><!-- doxytag: member="bm::block_range_scan" ref="a86d5d5ccdb79d2b2ad552bd1caf34b2f" args="(It first, It last, unsigned nblock, unsigned *max_id)" -->
1359
<div class="memitem">
1360
<div class="memproto">
1361
<div class="memtemplate">
1362
template<class It > </div>
1363
<table class="memname">
1365
<td class="memname">It bm::block_range_scan </td>
1367
<td class="paramtype">It </td>
1368
<td class="paramname"> <em>first</em>, </td>
1371
<td class="paramkey"></td>
1373
<td class="paramtype">It </td>
1374
<td class="paramname"> <em>last</em>, </td>
1377
<td class="paramkey"></td>
1379
<td class="paramtype">unsigned </td>
1380
<td class="paramname"> <em>nblock</em>, </td>
1383
<td class="paramkey"></td>
1385
<td class="paramtype">unsigned * </td>
1386
<td class="paramname"> <em>max_id</em></td><td> </td>
1391
<td></td><td></td><td><code> [inline]</code></td>
1395
<div class="memdoc">
1397
<p>Internal algorithms scans the input for the block range limit. </p>
1399
<p>Definition at line <a class="el" href="a00090_source.html#l01075">1075</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
1401
<p>References <a class="el" href="a00093_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00092_source.html#l00048">id_max</a>, and <a class="el" href="a00092_source.html#l00053">set_block_shift</a>.</p>
1403
<p>Referenced by <a class="el" href="a00090_source.html#l01105">combine_or()</a>, <a class="el" href="a00090_source.html#l01268">combine_sub()</a>, and <a class="el" href="a00090_source.html#l01184">combine_xor()</a>.</p>
1407
<a class="anchor" id="abf587377ca70f11b8eb75f95494830b5"></a><!-- doxytag: member="bm::bmfor_each" ref="abf587377ca70f11b8eb75f95494830b5" args="(T first, T last, F f)" -->
1408
<div class="memitem">
1409
<div class="memproto">
1410
<div class="memtemplate">
1411
template<class T , class F > </div>
1412
<table class="memname">
1414
<td class="memname">F bm::bmfor_each </td>
1416
<td class="paramtype">T </td>
1417
<td class="paramname"> <em>first</em>, </td>
1420
<td class="paramkey"></td>
1422
<td class="paramtype">T </td>
1423
<td class="paramname"> <em>last</em>, </td>
1426
<td class="paramkey"></td>
1428
<td class="paramtype">F </td>
1429
<td class="paramname"> <em>f</em></td><td> </td>
1434
<td></td><td></td><td><code> [inline]</code></td>
1438
<div class="memdoc">
1439
<p>Special BM optimized analog of STL for_each </p>
1441
<p>Definition at line <a class="el" href="a00094_source.html#l00621">621</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
1445
<a class="anchor" id="a093f2dadce40f42a184928c9d1456592"></a><!-- doxytag: member="bm::combine_any_operation_with_block" ref="a093f2dadce40f42a184928c9d1456592" args="(const bm::word_t *blk, unsigned gap, const bm::word_t *arg_blk, int arg_gap, bm::word_t *temp_blk, distance_metric metric)" -->
1446
<div class="memitem">
1447
<div class="memproto">
1448
<table class="memname">
1450
<td class="memname">unsigned bm::combine_any_operation_with_block </td>
1452
<td class="paramtype">const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td>
1453
<td class="paramname"> <em>blk</em>, </td>
1456
<td class="paramkey"></td>
1458
<td class="paramtype">unsigned </td>
1459
<td class="paramname"> <em>gap</em>, </td>
1462
<td class="paramkey"></td>
1464
<td class="paramtype">const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td>
1465
<td class="paramname"> <em>arg_blk</em>, </td>
1468
<td class="paramkey"></td>
1470
<td class="paramtype">int </td>
1471
<td class="paramname"> <em>arg_gap</em>, </td>
1474
<td class="paramkey"></td>
1476
<td class="paramtype"><a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td>
1477
<td class="paramname"> <em>temp_blk</em>, </td>
1480
<td class="paramkey"></td>
1482
<td class="paramtype">distance_metric </td>
1483
<td class="paramname"> <em>metric</em></td><td> </td>
1488
<td></td><td></td><td><code> [inline]</code></td>
1492
<div class="memdoc">
1493
<p>Convenience internal function to compute combine any for one metric </p>
1495
<p>Definition at line <a class="el" href="a00090_source.html#l00619">619</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
1497
<p>References <a class="el" href="a00090_source.html#l00343">combine_any_operation_with_block()</a>, and <a class="el" href="a00090_source.html#l00086">bm::distance_metric_descriptor::result</a>.</p>
1501
<a class="anchor" id="a24069ced9ea689034ff51246ae707ecc"></a><!-- doxytag: member="bm::combine_any_operation_with_block" ref="a24069ced9ea689034ff51246ae707ecc" args="(const bm::word_t *blk, unsigned gap, const bm::word_t *arg_blk, int arg_gap, bm::word_t *temp_blk, distance_metric_descriptor *dmit, distance_metric_descriptor *dmit_end)" -->
1502
<div class="memitem">
1503
<div class="memproto">
1504
<table class="memname">
1506
<td class="memname">void bm::combine_any_operation_with_block </td>
1508
<td class="paramtype">const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td>
1509
<td class="paramname"> <em>blk</em>, </td>
1512
<td class="paramkey"></td>
1514
<td class="paramtype">unsigned </td>
1515
<td class="paramname"> <em>gap</em>, </td>
1518
<td class="paramkey"></td>
1520
<td class="paramtype">const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td>
1521
<td class="paramname"> <em>arg_blk</em>, </td>
1524
<td class="paramkey"></td>
1526
<td class="paramtype">int </td>
1527
<td class="paramname"> <em>arg_gap</em>, </td>
1530
<td class="paramkey"></td>
1532
<td class="paramtype"><a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td>
1533
<td class="paramname"> <em>temp_blk</em>, </td>
1536
<td class="paramkey"></td>
1538
<td class="paramtype">distance_metric_descriptor * </td>
1539
<td class="paramname"> <em>dmit</em>, </td>
1542
<td class="paramkey"></td>
1544
<td class="paramtype">distance_metric_descriptor * </td>
1545
<td class="paramname"> <em>dmit_end</em></td><td> </td>
1550
<td></td><td></td><td><code> [inline]</code></td>
1554
<div class="memdoc">
1556
<p>Internal function computes different existense of distance metric. </p>
1558
<p>Definition at line <a class="el" href="a00090_source.html#l00343">343</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
1560
<p>References <a class="el" href="a00094_source.html#l03081">bit_is_all_zero()</a>, <a class="el" href="a00094_source.html#l03765">bit_operation_and_any()</a>, <a class="el" href="a00094_source.html#l03903">bit_operation_or_any()</a>, <a class="el" href="a00094_source.html#l03841">bit_operation_sub_any()</a>, <a class="el" href="a00094_source.html#l04230">bit_operation_xor_any()</a>, <a class="el" href="a00093_source.html#l00095">BMGAP_PTR</a>, <a class="el" href="a00090_source.html#l00060">COUNT_A</a>, <a class="el" href="a00090_source.html#l00055">COUNT_AND</a>, <a class="el" href="a00090_source.html#l00061">COUNT_B</a>, <a class="el" href="a00090_source.html#l00057">COUNT_OR</a>, <a class="el" href="a00090_source.html#l00058">COUNT_SUB_AB</a>, <a class="el" href="a00090_source.html#l00059">COUNT_SUB_BA</a>, <a class="el" href="a00090_source.html#l00056">COUNT_XOR</a>, <a class="el" href="a00094_source.html#l01807">gap_bitset_and_any()</a>, <a class="el" href="a00094_source.html#l02045">gap_bitset_or_any()</a>, <a class="el" href="a00094_source.html#l01879">gap_bitset_sub_any()</a>, <a class="el" href="a00094_source.html#l01955">gap_bitset_xor_any()</a>, <a class="el" href="a00094_source.html#l02114">gap_convert_to_bitset()</a>, <a class="el" href="a00094_source.html#l02307">gap_is_all_zero()</a>, <a class="el" href="a00092_source.html#l00071">gap_max_bits</a>, <a class="el" href="a00092_source.html#l00070">gap_max_buff_len</a>, <a class="el" href="a00094_source.html#l03153">gap_operation_any_and()</a>, <a class="el" href="a00094_source.html#l03280">gap_operation_any_sub()</a>, <a class="el" href="a00094_source.html#l03201">gap_operation_any_xor()</a>, <a class="el" href="a00094_source.html#l03226">gap_operation_or()</a>, <a class="el" href="a00090_source.html#l00085">bm::distance_metric_descriptor::metric</a>, <a class="el" href="a00090_source.html#l00086">bm::distance_metric_descriptor::result</a>, and <a class="el" href="a00092_source.html#l00052">set_block_size</a>.</p>
1562
<p>Referenced by <a class="el" href="a00090_source.html#l00619">combine_any_operation_with_block()</a>, and <a class="el" href="a00090_source.html#l00807">distance_operation_any()</a>.</p>
1566
<a class="anchor" id="a2f81b8ce3d389973b4f867b0fcc98e7a"></a><!-- doxytag: member="bm::combine_count_operation_with_block" ref="a2f81b8ce3d389973b4f867b0fcc98e7a" args="(const bm::word_t *blk, unsigned gap, const bm::word_t *arg_blk, int arg_gap, bm::word_t *temp_blk, distance_metric metric)" -->
1567
<div class="memitem">
1568
<div class="memproto">
1569
<table class="memname">
1571
<td class="memname">unsigned bm::combine_count_operation_with_block </td>
1573
<td class="paramtype">const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td>
1574
<td class="paramname"> <em>blk</em>, </td>
1577
<td class="paramkey"></td>
1579
<td class="paramtype">unsigned </td>
1580
<td class="paramname"> <em>gap</em>, </td>
1583
<td class="paramkey"></td>
1585
<td class="paramtype">const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td>
1586
<td class="paramname"> <em>arg_blk</em>, </td>
1589
<td class="paramkey"></td>
1591
<td class="paramtype">int </td>
1592
<td class="paramname"> <em>arg_gap</em>, </td>
1595
<td class="paramkey"></td>
1597
<td class="paramtype"><a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td>
1598
<td class="paramname"> <em>temp_blk</em>, </td>
1601
<td class="paramkey"></td>
1603
<td class="paramtype">distance_metric </td>
1604
<td class="paramname"> <em>metric</em></td><td> </td>
1609
<td></td><td></td><td><code> [inline]</code></td>
1613
<div class="memdoc">
1614
<p>Convenience internal function to compute combine count for one metric </p>
1616
<p>Definition at line <a class="el" href="a00090_source.html#l00597">597</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
1618
<p>References <a class="el" href="a00090_source.html#l00114">combine_count_operation_with_block()</a>, and <a class="el" href="a00090_source.html#l00086">bm::distance_metric_descriptor::result</a>.</p>
1622
<a class="anchor" id="abecd5b24d5e394fd46a9db514cfa659a"></a><!-- doxytag: member="bm::combine_count_operation_with_block" ref="abecd5b24d5e394fd46a9db514cfa659a" args="(const bm::word_t *blk, unsigned gap, const bm::word_t *arg_blk, int arg_gap, bm::word_t *temp_blk, distance_metric_descriptor *dmit, distance_metric_descriptor *dmit_end)" -->
1623
<div class="memitem">
1624
<div class="memproto">
1625
<table class="memname">
1627
<td class="memname">void bm::combine_count_operation_with_block </td>
1629
<td class="paramtype">const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td>
1630
<td class="paramname"> <em>blk</em>, </td>
1633
<td class="paramkey"></td>
1635
<td class="paramtype">unsigned </td>
1636
<td class="paramname"> <em>gap</em>, </td>
1639
<td class="paramkey"></td>
1641
<td class="paramtype">const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td>
1642
<td class="paramname"> <em>arg_blk</em>, </td>
1645
<td class="paramkey"></td>
1647
<td class="paramtype">int </td>
1648
<td class="paramname"> <em>arg_gap</em>, </td>
1651
<td class="paramkey"></td>
1653
<td class="paramtype"><a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td>
1654
<td class="paramname"> <em>temp_blk</em>, </td>
1657
<td class="paramkey"></td>
1659
<td class="paramtype">distance_metric_descriptor * </td>
1660
<td class="paramname"> <em>dmit</em>, </td>
1663
<td class="paramkey"></td>
1665
<td class="paramtype">distance_metric_descriptor * </td>
1666
<td class="paramname"> <em>dmit_end</em></td><td> </td>
1671
<td></td><td></td><td><code> [inline]</code></td>
1675
<div class="memdoc">
1677
<p>Internal function computes different distance metrics. </p>
1679
<p>Definition at line <a class="el" href="a00090_source.html#l00114">114</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
1681
<p>References <a class="el" href="a00094_source.html#l02681">bit_block_calc_count()</a>, <a class="el" href="a00094_source.html#l05099">bm::operation_functions< T >::bit_operation_count()</a>, <a class="el" href="a00094_source.html#l03790">bit_operation_sub_count()</a>, <a class="el" href="a00093_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00093_source.html#l00095">BMGAP_PTR</a>, <a class="el" href="a00090_source.html#l00060">COUNT_A</a>, <a class="el" href="a00090_source.html#l00055">COUNT_AND</a>, <a class="el" href="a00090_source.html#l00061">COUNT_B</a>, <a class="el" href="a00090_source.html#l00057">COUNT_OR</a>, <a class="el" href="a00090_source.html#l00058">COUNT_SUB_AB</a>, <a class="el" href="a00090_source.html#l00059">COUNT_SUB_BA</a>, <a class="el" href="a00090_source.html#l00056">COUNT_XOR</a>, <a class="el" href="a00094_source.html#l00653">gap_bit_count()</a>, <a class="el" href="a00094_source.html#l01771">gap_bitset_and_count()</a>, <a class="el" href="a00094_source.html#l01998">gap_bitset_or_count()</a>, <a class="el" href="a00094_source.html#l01846">gap_bitset_sub_count()</a>, <a class="el" href="a00094_source.html#l01917">gap_bitset_xor_count()</a>, <a class="el" href="a00094_source.html#l02114">gap_convert_to_bitset()</a>, <a class="el" href="a00092_source.html#l00072">gap_equiv_len</a>, <a class="el" href="a00094_source.html#l03130">gap_operation_and()</a>, <a class="el" href="a00094_source.html#l03226">gap_operation_or()</a>, <a class="el" href="a00094_source.html#l03256">gap_operation_sub()</a>, <a class="el" href="a00094_source.html#l03177">gap_operation_xor()</a>, <a class="el" href="a00090_source.html#l00085">bm::distance_metric_descriptor::metric</a>, <a class="el" href="a00090_source.html#l00086">bm::distance_metric_descriptor::result</a>, and <a class="el" href="a00092_source.html#l00052">set_block_size</a>.</p>
1683
<p>Referenced by <a class="el" href="a00090_source.html#l00597">combine_count_operation_with_block()</a>, <a class="el" href="a00097_source.html#l03298">bm::iterator_deserializer< BV, SerialIterator >::deserialize()</a>, and <a class="el" href="a00090_source.html#l00688">distance_operation()</a>.</p>
1687
<a class="anchor" id="a3788dd32c39556f0aef90b50e5a5e62c"></a><!-- doxytag: member="bm::compute_tmatrix_rstat" ref="a3788dd32c39556f0aef90b50e5a5e62c" args="(const TMatrix &tmatrix, const unsigned char *pc_vector, typename TMatrix::rstat *rstat, unsigned effective_cols)" -->
1688
<div class="memitem">
1689
<div class="memproto">
1690
<div class="memtemplate">
1691
template<class TMatrix > </div>
1692
<table class="memname">
1694
<td class="memname">void bm::compute_tmatrix_rstat </td>
1696
<td class="paramtype">const TMatrix & </td>
1697
<td class="paramname"> <em>tmatrix</em>, </td>
1700
<td class="paramkey"></td>
1702
<td class="paramtype">const unsigned char * </td>
1703
<td class="paramname"> <em>pc_vector</em>, </td>
1706
<td class="paramkey"></td>
1708
<td class="paramtype">typename TMatrix::rstat * </td>
1709
<td class="paramname"> <em>rstat</em>, </td>
1712
<td class="paramkey"></td>
1714
<td class="paramtype">unsigned </td>
1715
<td class="paramname"> <em>effective_cols</em></td><td> </td>
1720
<td></td><td></td><td><code> [inline]</code></td>
1724
<div class="memdoc">
1726
<p>Compute t-matrix rows statistics used for compression. </p>
1727
<dl><dt><b>Parameters:</b></dt><dd>
1728
<table border="0" cellspacing="2" cellpadding="0">
1729
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="a00087.html" title="Mini-matrix for bit transposition purposes.">tmatrix</a></em> </td><td>- transposed matrix </td></tr>
1730
<tr><td valign="top"></td><td valign="top"><em>pc_vector</em> </td><td>- row content vector </td></tr>
1731
<tr><td valign="top"></td><td valign="top"><em>rstat</em> </td><td>- output row vector </td></tr>
1736
<p>Definition at line <a class="el" href="a00101_source.html#l00683">683</a> of file <a class="el" href="a00101_source.html">bmtrans.h</a>.</p>
1738
<p>References <a class="el" href="a00094_source.html#l04588">best_representation()</a>, <a class="el" href="a00094_source.html#l02757">bit_count_change32()</a>, <a class="el" href="a00093_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00101_source.html#l00386">ibpc_all_one</a>, <a class="el" href="a00101_source.html#l00385">ibpc_all_zero</a>, <a class="el" href="a00101_source.html#l00388">ibpc_close</a>, <a class="el" href="a00101_source.html#l00387">ibpc_equiv</a>, <a class="el" href="a00101_source.html#l00384">ibpc_uncompr</a>, and <a class="el" href="a00092_source.html#l00127">set_bitset</a>.</p>
1740
<p>Referenced by <a class="el" href="a00101_source.html#l00845">bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::reduce()</a>.</p>
1744
<a class="anchor" id="a528894002dcd8edda28c8fb2b0aa8c64"></a><!-- doxytag: member="bm::dgap_2_gap" ref="a528894002dcd8edda28c8fb2b0aa8c64" args="(const T *dgap_buf, T *gap_buf, T gap_header=0)" -->
1745
<div class="memitem">
1746
<div class="memproto">
1747
<div class="memtemplate">
1748
template<typename T > </div>
1749
<table class="memname">
1751
<td class="memname">void bm::dgap_2_gap </td>
1753
<td class="paramtype">const T * </td>
1754
<td class="paramname"> <em>dgap_buf</em>, </td>
1757
<td class="paramkey"></td>
1759
<td class="paramtype">T * </td>
1760
<td class="paramname"> <em>gap_buf</em>, </td>
1763
<td class="paramkey"></td>
1765
<td class="paramtype">T </td>
1766
<td class="paramname"> <em>gap_header</em> = <code>0</code></td><td> </td>
1771
<td></td><td></td><td><code> [inline]</code></td>
1775
<div class="memdoc">
1777
<p>Convert D-GAP buffer into GAP buffer. </p>
1778
<p>GAP representation is GAP[N] = DGAP[N] + DGAP[N-1]</p>
1779
<dl><dt><b>Parameters:</b></dt><dd>
1780
<table border="0" cellspacing="2" cellpadding="0">
1781
<tr><td valign="top"></td><td valign="top"><em>dgap_buf</em> </td><td>- Delta-GAP buffer </td></tr>
1782
<tr><td valign="top"></td><td valign="top"><em>gap_buf</em> </td><td>- GAP buffer </td></tr>
1787
<p>Definition at line <a class="el" href="a00094_source.html#l00801">801</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
1791
<a class="anchor" id="ad47cf2dce876dcbc25aef4c7a222c66f"></a><!-- doxytag: member="bm::distance_stage" ref="ad47cf2dce876dcbc25aef4c7a222c66f" args="(const BV &bv1, const distance_metric_descriptor *dmit, const distance_metric_descriptor *dmit_end, bool *is_all_and)" -->
1792
<div class="memitem">
1793
<div class="memproto">
1794
<div class="memtemplate">
1795
template<class BV > </div>
1796
<table class="memname">
1798
<td class="memname"><a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a>* bm::distance_stage </td>
1800
<td class="paramtype">const BV & </td>
1801
<td class="paramname"> <em>bv1</em>, </td>
1804
<td class="paramkey"></td>
1806
<td class="paramtype">const distance_metric_descriptor * </td>
1807
<td class="paramname"> <em>dmit</em>, </td>
1810
<td class="paramkey"></td>
1812
<td class="paramtype">const distance_metric_descriptor * </td>
1813
<td class="paramname"> <em>dmit_end</em>, </td>
1816
<td class="paramkey"></td>
1818
<td class="paramtype">bool * </td>
1819
<td class="paramname"> <em>is_all_and</em></td><td> </td>
1824
<td></td><td></td><td><code> [inline]</code></td>
1828
<div class="memdoc">
1830
<p>Staging function for distance operation. </p>
1831
<dl class="return"><dt><b>Returns:</b></dt><dd>temp block allocated (or NULL) </dd></dl>
1833
<p>Definition at line <a class="el" href="a00090_source.html#l00642">642</a> of file <a class="el" href="a00090_source.html">bmalgo_impl.h</a>.</p>
1835
<p>References <a class="el" href="a00090_source.html#l00055">COUNT_AND</a>, <a class="el" href="a00090_source.html#l00058">COUNT_SUB_AB</a>, and <a class="el" href="a00090_source.html#l00059">COUNT_SUB_BA</a>.</p>
1837
<p>Referenced by <a class="el" href="a00090_source.html#l00688">distance_operation()</a>, and <a class="el" href="a00090_source.html#l00807">distance_operation_any()</a>.</p>
1841
<a class="anchor" id="af92597461aff2926f9adcbf51bac98f9"></a><!-- doxytag: member="bm::find_effective_columns" ref="af92597461aff2926f9adcbf51bac98f9" args="(const TM &tmatrix)" -->
1842
<div class="memitem">
1843
<div class="memproto">
1844
<div class="memtemplate">
1845
template<typename TM > </div>
1846
<table class="memname">
1848
<td class="memname">unsigned bm::find_effective_columns </td>
1850
<td class="paramtype">const TM & </td>
1851
<td class="paramname"> <em>tmatrix</em></td>
1852
<td> ) </td>
1853
<td><code> [inline]</code></td>
1857
<div class="memdoc">
1859
<p>Compute effective right column border of the t-matrix. </p>
1861
<p>Definition at line <a class="el" href="a00101_source.html#l00741">741</a> of file <a class="el" href="a00101_source.html">bmtrans.h</a>.</p>
1863
<p>Referenced by <a class="el" href="a00101_source.html#l00787">bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::transpose()</a>.</p>
1867
<a class="anchor" id="a86742a3e17527be5a9743f26b36a7691"></a><!-- doxytag: member="bm::for_each_block" ref="a86742a3e17527be5a9743f26b36a7691" args="(T ***root, unsigned size1, unsigned size2, F &f)" -->
1868
<div class="memitem">
1869
<div class="memproto">
1870
<div class="memtemplate">
1871
template<class T , class F > </div>
1872
<table class="memname">
1874
<td class="memname">void bm::for_each_block </td>
1876
<td class="paramtype">T *** </td>
1877
<td class="paramname"> <em>root</em>, </td>
1880
<td class="paramkey"></td>
1882
<td class="paramtype">unsigned </td>
1883
<td class="paramname"> <em>size1</em>, </td>
1886
<td class="paramkey"></td>
1888
<td class="paramtype">unsigned </td>
1889
<td class="paramname"> <em>size2</em>, </td>
1892
<td class="paramkey"></td>
1894
<td class="paramtype">F & </td>
1895
<td class="paramname"> <em>f</em></td><td> </td>
1900
<td></td><td></td><td><code> [inline]</code></td>
1904
<div class="memdoc">
1905
<p>For each block executes supplied function. </p>
1907
<p>Definition at line <a class="el" href="a00094_source.html#l00592">592</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
1909
<p>Referenced by <a class="el" href="a00090_source.html#l01405">count_intervals()</a>, and <a class="el" href="a00088_source.html#l01784">bm::bvector< Alloc, MS >::invert()</a>.</p>
1913
<a class="anchor" id="a6a7bfe8af49ed785f0e96c7ca37a2155"></a><!-- doxytag: member="bm::for_each_dgap" ref="a6a7bfe8af49ed785f0e96c7ca37a2155" args="(const T *gap_buf, Func &func)" -->
1914
<div class="memitem">
1915
<div class="memproto">
1916
<div class="memtemplate">
1917
template<class T , class Func > </div>
1918
<table class="memname">
1920
<td class="memname">void bm::for_each_dgap </td>
1922
<td class="paramtype">const T * </td>
1923
<td class="paramname"> <em>gap_buf</em>, </td>
1926
<td class="paramkey"></td>
1928
<td class="paramtype">Func & </td>
1929
<td class="paramname"> <em>func</em></td><td> </td>
1934
<td></td><td></td><td><code> [inline]</code></td>
1938
<div class="memdoc">
1939
<p>D-GAP block for_each algorithm</p>
1940
<p>D-Gap Functor is called for each element but last one.</p>
1941
<dl><dt><b>Parameters:</b></dt><dd>
1942
<table border="0" cellspacing="2" cellpadding="0">
1943
<tr><td valign="top"></td><td valign="top"><em>gap_buf</em> </td><td>- GAP buffer </td></tr>
1948
<p>Definition at line <a class="el" href="a00094_source.html#l00736">736</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
1950
<p>Referenced by <a class="el" href="a00097_source.html#l00621">bm::serializer< BV >::gamma_gap_block()</a>.</p>
1954
<a class="anchor" id="ae8b342c25dc22d6cd26cb96d7ae796db"></a><!-- doxytag: member="bm::for_each_nzblock" ref="ae8b342c25dc22d6cd26cb96d7ae796db" args="(T ***root, unsigned size1, unsigned size2, F &f)" -->
1955
<div class="memitem">
1956
<div class="memproto">
1957
<div class="memtemplate">
1958
template<class T , class F > </div>
1959
<table class="memname">
1961
<td class="memname">void bm::for_each_nzblock </td>
1963
<td class="paramtype">T *** </td>
1964
<td class="paramname"> <em>root</em>, </td>
1967
<td class="paramkey"></td>
1969
<td class="paramtype">unsigned </td>
1970
<td class="paramname"> <em>size1</em>, </td>
1973
<td class="paramkey"></td>
1975
<td class="paramtype">unsigned </td>
1976
<td class="paramname"> <em>size2</em>, </td>
1979
<td class="paramkey"></td>
1981
<td class="paramtype">F & </td>
1982
<td class="paramname"> <em>f</em></td><td> </td>
1987
<td></td><td></td><td><code> [inline]</code></td>
1991
<div class="memdoc">
1992
<p>For each non-zero block executes supplied function. </p>
1994
<p>Definition at line <a class="el" href="a00094_source.html#l00527">527</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
1996
<p>Referenced by <a class="el" href="a00088_source.html#l01650">bm::bvector< Alloc, MS >::count()</a>, <a class="el" href="a00088_source.html#l01108">bm::bvector< Alloc, MS >::count_blocks()</a>, <a class="el" href="a00088_source.html#l01842">bm::bvector< Alloc, MS >::optimize()</a>, and <a class="el" href="a00088_source.html#l01905">bm::bvector< Alloc, MS >::set_gap_levels()</a>.</p>
2000
<a class="anchor" id="a6f5cb8cbb105eae84d4b0f8a3bc1230f"></a><!-- doxytag: member="bm::for_each_nzblock_if" ref="a6f5cb8cbb105eae84d4b0f8a3bc1230f" args="(T ***root, unsigned size1, unsigned size2, F &f)" -->
2001
<div class="memitem">
2002
<div class="memproto">
2003
<div class="memtemplate">
2004
template<class T , class F > </div>
2005
<table class="memname">
2007
<td class="memname">bool bm::for_each_nzblock_if </td>
2009
<td class="paramtype">T *** </td>
2010
<td class="paramname"> <em>root</em>, </td>
2013
<td class="paramkey"></td>
2015
<td class="paramtype">unsigned </td>
2016
<td class="paramname"> <em>size1</em>, </td>
2019
<td class="paramkey"></td>
2021
<td class="paramtype">unsigned </td>
2022
<td class="paramname"> <em>size2</em>, </td>
2025
<td class="paramkey"></td>
2027
<td class="paramtype">F & </td>
2028
<td class="paramname"> <em>f</em></td><td> </td>
2033
<td></td><td></td><td><code> [inline]</code></td>
2037
<div class="memdoc">
2038
<p>For each non-zero block executes supplied function-predicate. Function returns if function-predicate returns true </p>
2040
<p>Definition at line <a class="el" href="a00094_source.html#l00567">567</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
2042
<p>References <a class="el" href="a00092_source.html#l00080">set_array_size</a>.</p>
2044
<p>Referenced by <a class="el" href="a00088_source.html#l01176">bm::bvector< Alloc, MS >::any()</a>.</p>
2048
<a class="anchor" id="a76724fb233f93c15146641482311ce28"></a><!-- doxytag: member="bm::gap_2_bitblock" ref="a76724fb233f93c15146641482311ce28" args="(const GT *BMRESTRICT gap_buf, BT *BMRESTRICT block, unsigned block_size)" -->
2049
<div class="memitem">
2050
<div class="memproto">
2051
<div class="memtemplate">
2052
template<typename GT , typename BT > </div>
2053
<table class="memname">
2055
<td class="memname">void bm::gap_2_bitblock </td>
2057
<td class="paramtype">const GT *BMRESTRICT </td>
2058
<td class="paramname"> <em>gap_buf</em>, </td>
2061
<td class="paramkey"></td>
2063
<td class="paramtype">BT *BMRESTRICT </td>
2064
<td class="paramname"> <em>block</em>, </td>
2067
<td class="paramkey"></td>
2069
<td class="paramtype">unsigned </td>
2070
<td class="paramname"> <em>block_size</em></td><td> </td>
2075
<td></td><td></td><td><code> [inline]</code></td>
2079
<div class="memdoc">
2081
<p>Copy GAP block body to bit block with DGap transformation. </p>
2083
<p>Definition at line <a class="el" href="a00101_source.html#l00656">656</a> of file <a class="el" href="a00101_source.html">bmtrans.h</a>.</p>
2085
<p>Referenced by <a class="el" href="a00101_source.html#l00787">bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::transpose()</a>.</p>
2089
<a class="anchor" id="afa6ea0cce0cdd88738a01fad393376b3"></a><!-- doxytag: member="bm::gap_2_dgap" ref="afa6ea0cce0cdd88738a01fad393376b3" args="(const T *gap_buf, T *dgap_buf, bool copy_head=true)" -->
2090
<div class="memitem">
2091
<div class="memproto">
2092
<div class="memtemplate">
2093
template<typename T > </div>
2094
<table class="memname">
2096
<td class="memname">T* bm::gap_2_dgap </td>
2098
<td class="paramtype">const T * </td>
2099
<td class="paramname"> <em>gap_buf</em>, </td>
2102
<td class="paramkey"></td>
2104
<td class="paramtype">T * </td>
2105
<td class="paramname"> <em>dgap_buf</em>, </td>
2108
<td class="paramkey"></td>
2110
<td class="paramtype">bool </td>
2111
<td class="paramname"> <em>copy_head</em> = <code>true</code></td><td> </td>
2116
<td></td><td></td><td><code> [inline]</code></td>
2120
<div class="memdoc">
2122
<p>Convert GAP buffer into D-GAP buffer. </p>
2123
<p>Delta GAP representation is DGAP[N] = GAP[N] - GAP[N-1]</p>
2124
<dl><dt><b>Parameters:</b></dt><dd>
2125
<table border="0" cellspacing="2" cellpadding="0">
2126
<tr><td valign="top"></td><td valign="top"><em>gap_buf</em> </td><td>- GAP buffer </td></tr>
2127
<tr><td valign="top"></td><td valign="top"><em>dgap_buf</em> </td><td>- Delta-GAP buffer </td></tr>
2128
<tr><td valign="top"></td><td valign="top"><em>copy_head</em> </td><td>- flag to copy GAP header </td></tr>
2133
<p>Definition at line <a class="el" href="a00094_source.html#l00777">777</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
2135
<p>References <a class="el" href="a00094_source.html#l00760">bm::d_copy_func< T >::dgap_buf_</a>.</p>
2139
<a class="anchor" id="acebed8b533c2c9e17167617501477693"></a><!-- doxytag: member="bm::gap_bfind" ref="acebed8b533c2c9e17167617501477693" args="(const T *buf, unsigned pos, unsigned *is_set)" -->
2140
<div class="memitem">
2141
<div class="memproto">
2142
<div class="memtemplate">
2143
template<typename T > </div>
2144
<table class="memname">
2146
<td class="memname">unsigned bm::gap_bfind </td>
2148
<td class="paramtype">const T * </td>
2149
<td class="paramname"> <em>buf</em>, </td>
2152
<td class="paramkey"></td>
2154
<td class="paramtype">unsigned </td>
2155
<td class="paramname"> <em>pos</em>, </td>
2158
<td class="paramkey"></td>
2160
<td class="paramtype">unsigned * </td>
2161
<td class="paramname"> <em>is_set</em></td><td> </td>
2166
<td></td><td></td><td><code> [inline]</code></td>
2170
<div class="memdoc">
2172
<p>Definition at line <a class="el" href="a00094_source.html#l00461">461</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
2174
<p>References <a class="el" href="a00093_source.html#l00050">BM_ASSERT</a>, and <a class="el" href="a00092_source.html#l00071">gap_max_bits</a>.</p>
2176
<p>Referenced by <a class="el" href="a00094_source.html#l00689">gap_bit_count_range()</a>, <a class="el" href="a00094_source.html#l01401">gap_find_in_block()</a>, and <a class="el" href="a00094_source.html#l01133">gap_set_value()</a>.</p>
2180
<a class="anchor" id="a7324ebded429e15361f62117a2ff18d1"></a><!-- doxytag: member="bm::gap_bit_count_range" ref="a7324ebded429e15361f62117a2ff18d1" args="(const T *buf, T left, T right)" -->
2181
<div class="memitem">
2182
<div class="memproto">
2183
<div class="memtemplate">
2184
template<typename T > </div>
2185
<table class="memname">
2187
<td class="memname">unsigned bm::gap_bit_count_range </td>
2189
<td class="paramtype">const T * </td>
2190
<td class="paramname"> <em>buf</em>, </td>
2193
<td class="paramkey"></td>
2195
<td class="paramtype">T </td>
2196
<td class="paramname"> <em>left</em>, </td>
2199
<td class="paramkey"></td>
2201
<td class="paramtype">T </td>
2202
<td class="paramname"> <em>right</em></td><td> </td>
2207
<td></td><td></td><td><code> [inline]</code></td>
2211
<div class="memdoc">
2213
<p>Counts 1 bits in GAP buffer in the closed [left, right] diapason. </p>
2214
<dl><dt><b>Parameters:</b></dt><dd>
2215
<table border="0" cellspacing="2" cellpadding="0">
2216
<tr><td valign="top"></td><td valign="top"><em>buf</em> </td><td>- GAP buffer pointer. </td></tr>
2217
<tr><td valign="top"></td><td valign="top"><em>left</em> </td><td>- leftmost bit index to start from </td></tr>
2218
<tr><td valign="top"></td><td valign="top"><em>right-</em> </td><td>rightmost bit index </td></tr>
2222
<dl class="return"><dt><b>Returns:</b></dt><dd>Number of non-zero bits. </dd></dl>
2224
<p>Definition at line <a class="el" href="a00094_source.html#l00689">689</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
2226
<p>References <a class="el" href="a00093_source.html#l00050">BM_ASSERT</a>, and <a class="el" href="a00094_source.html#l00461">gap_bfind()</a>.</p>
2228
<p>Referenced by <a class="el" href="a00088_source.html#l01690">bm::bvector< Alloc, MS >::count_range()</a>.</p>
2232
<a class="anchor" id="aac0daaac2b5a7c88e6be726c77f52c68"></a><!-- doxytag: member="bm::gap_buff_op" ref="aac0daaac2b5a7c88e6be726c77f52c68" args="(T *BMRESTRICT dest, const T *BMRESTRICT vect1, unsigned vect1_mask, const T *BMRESTRICT vect2, unsigned vect2_mask, F &f, unsigned &dlen)" -->
2233
<div class="memitem">
2234
<div class="memproto">
2235
<div class="memtemplate">
2236
template<typename T , class F > </div>
2237
<table class="memname">
2239
<td class="memname">void bm::gap_buff_op </td>
2241
<td class="paramtype">T *BMRESTRICT </td>
2242
<td class="paramname"> <em>dest</em>, </td>
2245
<td class="paramkey"></td>
2247
<td class="paramtype">const T *BMRESTRICT </td>
2248
<td class="paramname"> <em>vect1</em>, </td>
2251
<td class="paramkey"></td>
2253
<td class="paramtype">unsigned </td>
2254
<td class="paramname"> <em>vect1_mask</em>, </td>
2257
<td class="paramkey"></td>
2259
<td class="paramtype">const T *BMRESTRICT </td>
2260
<td class="paramname"> <em>vect2</em>, </td>
2263
<td class="paramkey"></td>
2265
<td class="paramtype">unsigned </td>
2266
<td class="paramname"> <em>vect2_mask</em>, </td>
2269
<td class="paramkey"></td>
2271
<td class="paramtype">F & </td>
2272
<td class="paramname"> <em>f</em>, </td>
2275
<td class="paramkey"></td>
2277
<td class="paramtype">unsigned & </td>
2278
<td class="paramname"> <em>dlen</em></td><td> </td>
2283
<td></td><td></td><td><code> [inline]</code></td>
2287
<div class="memdoc">
2289
<p>Abstract operation for GAP buffers. Receives functor F as a template argument. </p>
2290
<dl><dt><b>Parameters:</b></dt><dd>
2291
<table border="0" cellspacing="2" cellpadding="0">
2292
<tr><td valign="top"></td><td valign="top"><em>dest</em> </td><td>- destination memory buffer. </td></tr>
2293
<tr><td valign="top"></td><td valign="top"><em>vect1</em> </td><td>- operand 1 GAP encoded buffer. </td></tr>
2294
<tr><td valign="top"></td><td valign="top"><em>vect1_mask</em> </td><td>- XOR mask for starting bitflag for vector1 can be 0 or 1 (1 inverts the vector) </td></tr>
2295
<tr><td valign="top"></td><td valign="top"><em>vect2</em> </td><td>- operand 2 GAP encoded buffer. </td></tr>
2296
<tr><td valign="top"></td><td valign="top"><em>vect2_mask</em> </td><td>- same as vect1_mask </td></tr>
2297
<tr><td valign="top"></td><td valign="top"><em>f</em> </td><td>- operation functor. </td></tr>
2298
<tr><td valign="top"></td><td valign="top"><em>dlen</em> </td><td>- destination length after the operation</td></tr>
2302
<dl class="note"><dt><b>Note:</b></dt><dd>Internal function. </dd></dl>
2304
<p>Definition at line <a class="el" href="a00094_source.html#l00908">908</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
2306
<p>References <a class="el" href="a00092_source.html#l00071">gap_max_bits</a>.</p>
2308
<p>Referenced by <a class="el" href="a00094_source.html#l03130">gap_operation_and()</a>, <a class="el" href="a00094_source.html#l03226">gap_operation_or()</a>, <a class="el" href="a00094_source.html#l03256">gap_operation_sub()</a>, and <a class="el" href="a00094_source.html#l03177">gap_operation_xor()</a>.</p>
2312
<a class="anchor" id="a5f818ac575622da8a9a75511e649ea90"></a><!-- doxytag: member="bm::ilog2" ref="a5f818ac575622da8a9a75511e649ea90" args="(gap_word_t x)" -->
2313
<div class="memitem">
2314
<div class="memproto">
2315
<div class="memtemplate">
2316
template<> </div>
2317
<table class="memname">
2319
<td class="memname"><a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">bm::gap_word_t</a> bm::ilog2 </td>
2321
<td class="paramtype">gap_word_t </td>
2322
<td class="paramname"> <em>x</em></td>
2323
<td> ) </td>
2324
<td><code> [inline]</code></td>
2328
<div class="memdoc">
2330
<p>Definition at line <a class="el" href="a00103_source.html#l00081">81</a> of file <a class="el" href="a00103_source.html">bmutil.h</a>.</p>
2334
<a class="anchor" id="a46f258f92ab40e2a0c76aa775338faaa"></a><!-- doxytag: member="bm::ilog2" ref="a46f258f92ab40e2a0c76aa775338faaa" args="(T x)" -->
2335
<div class="memitem">
2336
<div class="memproto">
2337
<div class="memtemplate">
2338
template<typename T > </div>
2339
<table class="memname">
2341
<td class="memname">T bm::ilog2 </td>
2343
<td class="paramtype">T </td>
2344
<td class="paramname"> <em>x</em></td>
2345
<td> ) </td>
2346
<td><code> [inline]</code></td>
2350
<div class="memdoc">
2352
<p>Fast loop-less function to find LOG2. </p>
2354
<p>Definition at line <a class="el" href="a00103_source.html#l00069">69</a> of file <a class="el" href="a00103_source.html">bmutil.h</a>.</p>
2358
<a class="anchor" id="a3ab126a6fd7ffd872a4001638819a330"></a><!-- doxytag: member="bm::ilog2_LUT" ref="a3ab126a6fd7ffd872a4001638819a330" args="(T x)" -->
2359
<div class="memitem">
2360
<div class="memproto">
2361
<div class="memtemplate">
2362
template<typename T > </div>
2363
<table class="memname">
2365
<td class="memname">T bm::ilog2_LUT </td>
2367
<td class="paramtype">T </td>
2368
<td class="paramname"> <em>x</em></td>
2369
<td> ) </td>
2370
<td><code> [inline]</code></td>
2374
<div class="memdoc">
2376
<p>Lookup table based integer LOG2. </p>
2378
<p>Definition at line <a class="el" href="a00103_source.html#l00112">112</a> of file <a class="el" href="a00103_source.html">bmutil.h</a>.</p>
2380
<p>Referenced by <a class="el" href="a00105_source.html#l00229">bm::bit_out< TEncoder >::gamma()</a>.</p>
2384
<a class="anchor" id="a7074ee06dc4ee023170c2f85c78b50fe"></a><!-- doxytag: member="bm::ilog2_LUT< bm::gap_word_t >" ref="a7074ee06dc4ee023170c2f85c78b50fe" args="(bm::gap_word_t x)" -->
2385
<div class="memitem">
2386
<div class="memproto">
2387
<div class="memtemplate">
2388
template<> </div>
2389
<table class="memname">
2391
<td class="memname"><a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">bm::gap_word_t</a> bm::ilog2_LUT< <a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">bm::gap_word_t</a> > </td>
2393
<td class="paramtype"><a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">bm::gap_word_t</a> </td>
2394
<td class="paramname"> <em>x</em></td>
2395
<td> ) </td>
2396
<td><code> [inline]</code></td>
2400
<div class="memdoc">
2402
<p>Lookup table based short integer LOG2. </p>
2406
<a class="anchor" id="a3deb310cdf11bca948817f94adfec160"></a><!-- doxytag: member="bm::is_const_set_operation" ref="a3deb310cdf11bca948817f94adfec160" args="(set_operation op)" -->
2407
<div class="memitem">
2408
<div class="memproto">
2409
<table class="memname">
2411
<td class="memname">bool bm::is_const_set_operation </td>
2413
<td class="paramtype">set_operation </td>
2414
<td class="paramname"> <em>op</em></td>
2415
<td> ) </td>
2416
<td><code> [inline]</code></td>
2420
<div class="memdoc">
2422
<p>Returns true if set operation is constant (bitcount). </p>
2424
<p>Definition at line <a class="el" href="a00094_source.html#l00266">266</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
2426
<p>References <a class="el" href="a00094_source.html#l00252">set_COUNT</a>.</p>
2428
<p>Referenced by <a class="el" href="a00097_source.html#l03298">bm::iterator_deserializer< BV, SerialIterator >::deserialize()</a>, and <a class="el" href="a00090_source.html#l00069">operation2metric()</a>.</p>
2432
<a class="anchor" id="a515b2862b33efd4e36d72e4ba7729199"></a><!-- doxytag: member="bm::op_and" ref="a515b2862b33efd4e36d72e4ba7729199" args="(unsigned a, unsigned b)" -->
2433
<div class="memitem">
2434
<div class="memproto">
2435
<table class="memname">
2437
<td class="memname">BMFORCEINLINE unsigned bm::op_and </td>
2439
<td class="paramtype">unsigned </td>
2440
<td class="paramname"> <em>a</em>, </td>
2443
<td class="paramkey"></td>
2445
<td class="paramtype">unsigned </td>
2446
<td class="paramname"> <em>b</em></td><td> </td>
2451
<td></td><td></td><td></td>
2455
<div class="memdoc">
2457
<p>Definition at line <a class="el" href="a00099_source.html#l00102">102</a> of file <a class="el" href="a00099_source.html">bmsse4.h</a>.</p>
2461
<a class="anchor" id="a0ed9a1bcd143f7763b4b59ef442f6994"></a><!-- doxytag: member="bm::op_or" ref="a0ed9a1bcd143f7763b4b59ef442f6994" args="(unsigned a, unsigned b)" -->
2462
<div class="memitem">
2463
<div class="memproto">
2464
<table class="memname">
2466
<td class="memname">BMFORCEINLINE unsigned bm::op_or </td>
2468
<td class="paramtype">unsigned </td>
2469
<td class="paramname"> <em>a</em>, </td>
2472
<td class="paramkey"></td>
2474
<td class="paramtype">unsigned </td>
2475
<td class="paramname"> <em>b</em></td><td> </td>
2480
<td></td><td></td><td></td>
2484
<div class="memdoc">
2486
<p>Definition at line <a class="el" href="a00099_source.html#l00093">93</a> of file <a class="el" href="a00099_source.html">bmsse4.h</a>.</p>
2490
<a class="anchor" id="a6d8f327a7d19c11125ac77383a34e986"></a><!-- doxytag: member="bm::op_xor" ref="a6d8f327a7d19c11125ac77383a34e986" args="(unsigned a, unsigned b)" -->
2491
<div class="memitem">
2492
<div class="memproto">
2493
<table class="memname">
2495
<td class="memname">BMFORCEINLINE unsigned bm::op_xor </td>
2497
<td class="paramtype">unsigned </td>
2498
<td class="paramname"> <em>a</em>, </td>
2501
<td class="paramkey"></td>
2503
<td class="paramtype">unsigned </td>
2504
<td class="paramname"> <em>b</em></td><td> </td>
2509
<td></td><td></td><td></td>
2513
<div class="memdoc">
2515
<p>Definition at line <a class="el" href="a00099_source.html#l00083">83</a> of file <a class="el" href="a00099_source.html">bmsse4.h</a>.</p>
2519
<a class="anchor" id="ac766cc15ae8feca9e21a36c49bf3b557"></a><!-- doxytag: member="bm::operator&" ref="ac766cc15ae8feca9e21a36c49bf3b557" args="(const bvector< Alloc, MS > &v1, const bvector< Alloc, MS > &v2)" -->
2520
<div class="memitem">
2521
<div class="memproto">
2522
<div class="memtemplate">
2523
template<class Alloc , class MS > </div>
2524
<table class="memname">
2526
<td class="memname"><a class="el" href="a00044.html">bvector</a><Alloc, MS> bm::operator& </td>
2528
<td class="paramtype">const bvector< Alloc, MS > & </td>
2529
<td class="paramname"> <em>v1</em>, </td>
2532
<td class="paramkey"></td>
2534
<td class="paramtype">const bvector< Alloc, MS > & </td>
2535
<td class="paramname"> <em>v2</em></td><td> </td>
2540
<td></td><td></td><td><code> [inline]</code></td>
2544
<div class="memdoc">
2546
<p>Definition at line <a class="el" href="a00088_source.html#l01564">1564</a> of file <a class="el" href="a00088_source.html">bm.h</a>.</p>
2548
<p>References <a class="el" href="a00088_source.html#l01296">bm::bvector< Alloc, MS >::bit_and()</a>.</p>
2552
<a class="anchor" id="afe23d0ced66b48b9c4214e0b00dcc5ac"></a><!-- doxytag: member="bm::operator-" ref="afe23d0ced66b48b9c4214e0b00dcc5ac" args="(const bvector< Alloc, MS > &v1, const bvector< Alloc, MS > &v2)" -->
2553
<div class="memitem">
2554
<div class="memproto">
2555
<div class="memtemplate">
2556
template<class Alloc , class MS > </div>
2557
<table class="memname">
2559
<td class="memname"><a class="el" href="a00044.html">bvector</a><Alloc, MS> bm::operator- </td>
2561
<td class="paramtype">const bvector< Alloc, MS > & </td>
2562
<td class="paramname"> <em>v1</em>, </td>
2565
<td class="paramkey"></td>
2567
<td class="paramtype">const bvector< Alloc, MS > & </td>
2568
<td class="paramname"> <em>v2</em></td><td> </td>
2573
<td></td><td></td><td><code> [inline]</code></td>
2577
<div class="memdoc">
2579
<p>Definition at line <a class="el" href="a00088_source.html#l01609">1609</a> of file <a class="el" href="a00088_source.html">bm.h</a>.</p>
2581
<p>References <a class="el" href="a00088_source.html#l01318">bm::bvector< Alloc, MS >::bit_sub()</a>.</p>
2585
<a class="anchor" id="a7042429992aec5891a3df1b0bddea05f"></a><!-- doxytag: member="bm::operator^" ref="a7042429992aec5891a3df1b0bddea05f" args="(const bvector< Alloc, MS > &v1, const bvector< Alloc, MS > &v2)" -->
2586
<div class="memitem">
2587
<div class="memproto">
2588
<div class="memtemplate">
2589
template<class Alloc , class MS > </div>
2590
<table class="memname">
2592
<td class="memname"><a class="el" href="a00044.html">bvector</a><Alloc, MS> bm::operator^ </td>
2594
<td class="paramtype">const bvector< Alloc, MS > & </td>
2595
<td class="paramname"> <em>v1</em>, </td>
2598
<td class="paramkey"></td>
2600
<td class="paramtype">const bvector< Alloc, MS > & </td>
2601
<td class="paramname"> <em>v2</em></td><td> </td>
2606
<td></td><td></td><td><code> [inline]</code></td>
2610
<div class="memdoc">
2612
<p>Definition at line <a class="el" href="a00088_source.html#l01594">1594</a> of file <a class="el" href="a00088_source.html">bm.h</a>.</p>
2614
<p>References <a class="el" href="a00088_source.html#l01307">bm::bvector< Alloc, MS >::bit_xor()</a>.</p>
2618
<a class="anchor" id="a5cc9411c5170df52c1c4ea436ef32745"></a><!-- doxytag: member="bm::operator|" ref="a5cc9411c5170df52c1c4ea436ef32745" args="(const bvector< Alloc, MS > &v1, const bvector< Alloc > &v2)" -->
2619
<div class="memitem">
2620
<div class="memproto">
2621
<div class="memtemplate">
2622
template<class Alloc , class MS > </div>
2623
<table class="memname">
2625
<td class="memname"><a class="el" href="a00044.html">bvector</a><Alloc, MS> bm::operator| </td>
2627
<td class="paramtype">const bvector< Alloc, MS > & </td>
2628
<td class="paramname"> <em>v1</em>, </td>
2631
<td class="paramkey"></td>
2633
<td class="paramtype">const bvector< Alloc > & </td>
2634
<td class="paramname"> <em>v2</em></td><td> </td>
2639
<td></td><td></td><td><code> [inline]</code></td>
2643
<div class="memdoc">
2645
<p>Definition at line <a class="el" href="a00088_source.html#l01579">1579</a> of file <a class="el" href="a00088_source.html">bm.h</a>.</p>
2647
<p>References <a class="el" href="a00088_source.html#l01285">bm::bvector< Alloc, MS >::bit_or()</a>.</p>
2651
<a class="anchor" id="a30cec2c137813460f4b4c65c5879a4c3"></a><!-- doxytag: member="bm::parallel_popcnt_32" ref="a30cec2c137813460f4b4c65c5879a4c3" args="(unsigned int n)" -->
2652
<div class="memitem">
2653
<div class="memproto">
2654
<table class="memname">
2656
<td class="memname">int bm::parallel_popcnt_32 </td>
2658
<td class="paramtype">unsigned int </td>
2659
<td class="paramname"> <em>n</em></td>
2660
<td> ) </td>
2661
<td><code> [inline]</code></td>
2665
<div class="memdoc">
2667
<p>Definition at line <a class="el" href="a00094_source.html#l00179">179</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
2671
<a class="anchor" id="a7c192b64adb0590a09b5c2dad77c4b76"></a><!-- doxytag: member="bm::setop2op" ref="a7c192b64adb0590a09b5c2dad77c4b76" args="(bm::set_operation op)" -->
2672
<div class="memitem">
2673
<div class="memproto">
2674
<table class="memname">
2676
<td class="memname"><a class="el" href="a00116.html#a42405343976ec931388381cea4092bf1">bm::operation</a> bm::setop2op </td>
2678
<td class="paramtype"><a class="el" href="a00116.html#a76b70d2b9182a6dcac151d1bd9ec6109">bm::set_operation</a> </td>
2679
<td class="paramname"> <em>op</em></td>
2680
<td> ) </td>
2681
<td><code> [inline]</code></td>
2685
<div class="memdoc">
2687
<p>Convert set operation to operation. </p>
2689
<p>Definition at line <a class="el" href="a00094_source.html#l00286">286</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
2691
<p>References <a class="el" href="a00093_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00094_source.html#l00247">set_AND</a>, <a class="el" href="a00094_source.html#l00248">set_OR</a>, <a class="el" href="a00094_source.html#l00249">set_SUB</a>, and <a class="el" href="a00094_source.html#l00250">set_XOR</a>.</p>
2693
<p>Referenced by <a class="el" href="a00097_source.html#l03080">bm::iterator_deserializer< BV, SerialIterator >::deserialize()</a>.</p>
2697
<a class="anchor" id="ac0c75fb7b3dc61602843ac4e1b9b7ef5"></a><!-- doxytag: member="bm::sse2_and" ref="ac0c75fb7b3dc61602843ac4e1b9b7ef5" args="(__m128i a, __m128i b)" -->
2698
<div class="memitem">
2699
<div class="memproto">
2700
<table class="memname">
2702
<td class="memname">BMFORCEINLINE __m128i bm::sse2_and </td>
2704
<td class="paramtype">__m128i </td>
2705
<td class="paramname"> <em>a</em>, </td>
2708
<td class="paramkey"></td>
2710
<td class="paramtype">__m128i </td>
2711
<td class="paramname"> <em>b</em></td><td> </td>
2716
<td></td><td></td><td></td>
2720
<div class="memdoc">
2722
<p>Definition at line <a class="el" href="a00100_source.html#l00384">384</a> of file <a class="el" href="a00100_source.html">bmsse_util.h</a>.</p>
2726
<a class="anchor" id="a0479b7b6704c6ab64396e2365b8b5fa7"></a><!-- doxytag: member="bm::sse2_bit_block_calc_count_change" ref="a0479b7b6704c6ab64396e2365b8b5fa7" args="(const __m128i *BMRESTRICT block, const __m128i *BMRESTRICT block_end, unsigned *BMRESTRICT bit_count)" -->
2727
<div class="memitem">
2728
<div class="memproto">
2729
<table class="memname">
2731
<td class="memname"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::sse2_bit_block_calc_count_change </td>
2733
<td class="paramtype">const __m128i *BMRESTRICT </td>
2734
<td class="paramname"> <em>block</em>, </td>
2737
<td class="paramkey"></td>
2739
<td class="paramtype">const __m128i *BMRESTRICT </td>
2740
<td class="paramname"> <em>block_end</em>, </td>
2743
<td class="paramkey"></td>
2745
<td class="paramtype">unsigned *BMRESTRICT </td>
2746
<td class="paramname"> <em>bit_count</em></td><td> </td>
2751
<td></td><td></td><td><code> [inline]</code></td>
2755
<div class="memdoc">
2757
<p>Definition at line <a class="el" href="a00098_source.html#l00237">237</a> of file <a class="el" href="a00098_source.html">bmsse2.h</a>.</p>
2759
<p>References <a class="el" href="a00093_source.html#l00153">BM_ALIGN16ATTR</a>, and <a class="el" href="a00093_source.html#l00168">BM_INCWORD_BITCOUNT</a>.</p>
2761
<p>Referenced by <a class="el" href="a00094_source.html#l02819">bit_block_calc_count_change()</a>.</p>
2765
<a class="anchor" id="a8831a88ef538b3997d04d2ebf513160d"></a><!-- doxytag: member="bm::sse2_bit_count_op" ref="a8831a88ef538b3997d04d2ebf513160d" args="(const __m128i *BMRESTRICT block, const __m128i *BMRESTRICT block_end, const __m128i *BMRESTRICT mask_block, Func sse2_func)" -->
2766
<div class="memitem">
2767
<div class="memproto">
2768
<div class="memtemplate">
2769
template<class Func > </div>
2770
<table class="memname">
2772
<td class="memname"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::sse2_bit_count_op </td>
2774
<td class="paramtype">const __m128i *BMRESTRICT </td>
2775
<td class="paramname"> <em>block</em>, </td>
2778
<td class="paramkey"></td>
2780
<td class="paramtype">const __m128i *BMRESTRICT </td>
2781
<td class="paramname"> <em>block_end</em>, </td>
2784
<td class="paramkey"></td>
2786
<td class="paramtype">const __m128i *BMRESTRICT </td>
2787
<td class="paramname"> <em>mask_block</em>, </td>
2790
<td class="paramkey"></td>
2792
<td class="paramtype">Func </td>
2793
<td class="paramname"> <em>sse2_func</em></td><td> </td>
2798
<td></td><td></td><td><code> [inline]</code></td>
2802
<div class="memdoc">
2804
<p>Definition at line <a class="el" href="a00098_source.html#l00125">125</a> of file <a class="el" href="a00098_source.html">bmsse2.h</a>.</p>
2806
<p>References <a class="el" href="a00093_source.html#l00153">BM_ALIGN16ATTR</a>.</p>
2810
<a class="anchor" id="adea798a9a95a04845c33876087a2f46b"></a><!-- doxytag: member="bm::sse2_or" ref="adea798a9a95a04845c33876087a2f46b" args="(__m128i a, __m128i b)" -->
2811
<div class="memitem">
2812
<div class="memproto">
2813
<table class="memname">
2815
<td class="memname">BMFORCEINLINE __m128i bm::sse2_or </td>
2817
<td class="paramtype">__m128i </td>
2818
<td class="paramname"> <em>a</em>, </td>
2821
<td class="paramkey"></td>
2823
<td class="paramtype">__m128i </td>
2824
<td class="paramname"> <em>b</em></td><td> </td>
2829
<td></td><td></td><td></td>
2833
<div class="memdoc">
2835
<p>Definition at line <a class="el" href="a00100_source.html#l00390">390</a> of file <a class="el" href="a00100_source.html">bmsse_util.h</a>.</p>
2839
<a class="anchor" id="ab3e6d46fcba1bc2a1a5390c10f571382"></a><!-- doxytag: member="bm::sse2_sub" ref="ab3e6d46fcba1bc2a1a5390c10f571382" args="(__m128i a, __m128i b)" -->
2840
<div class="memitem">
2841
<div class="memproto">
2842
<table class="memname">
2844
<td class="memname">BMFORCEINLINE __m128i bm::sse2_sub </td>
2846
<td class="paramtype">__m128i </td>
2847
<td class="paramname"> <em>a</em>, </td>
2850
<td class="paramkey"></td>
2852
<td class="paramtype">__m128i </td>
2853
<td class="paramname"> <em>b</em></td><td> </td>
2858
<td></td><td></td><td></td>
2862
<div class="memdoc">
2864
<p>Definition at line <a class="el" href="a00100_source.html#l00403">403</a> of file <a class="el" href="a00100_source.html">bmsse_util.h</a>.</p>
2868
<a class="anchor" id="a6f5de19ee3e1be05037908b4777c4da8"></a><!-- doxytag: member="bm::sse2_xor" ref="a6f5de19ee3e1be05037908b4777c4da8" args="(__m128i a, __m128i b)" -->
2869
<div class="memitem">
2870
<div class="memproto">
2871
<table class="memname">
2873
<td class="memname">BMFORCEINLINE __m128i bm::sse2_xor </td>
2875
<td class="paramtype">__m128i </td>
2876
<td class="paramname"> <em>a</em>, </td>
2879
<td class="paramkey"></td>
2881
<td class="paramtype">__m128i </td>
2882
<td class="paramname"> <em>b</em></td><td> </td>
2887
<td></td><td></td><td></td>
2891
<div class="memdoc">
2893
<p>Definition at line <a class="el" href="a00100_source.html#l00397">397</a> of file <a class="el" href="a00100_source.html">bmsse_util.h</a>.</p>
2897
<a class="anchor" id="a295c6323a972a90e28c36e6012427a26"></a><!-- doxytag: member="bm::sse4_bit_count_op" ref="a295c6323a972a90e28c36e6012427a26" args="(const __m128i *BMRESTRICT block, const __m128i *BMRESTRICT block_end, const __m128i *BMRESTRICT mask_block, Func sse2_func)" -->
2898
<div class="memitem">
2899
<div class="memproto">
2900
<div class="memtemplate">
2901
template<class Func > </div>
2902
<table class="memname">
2904
<td class="memname"><a class="el" href="a00116.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bm::sse4_bit_count_op </td>
2906
<td class="paramtype">const __m128i *BMRESTRICT </td>
2907
<td class="paramname"> <em>block</em>, </td>
2910
<td class="paramkey"></td>
2912
<td class="paramtype">const __m128i *BMRESTRICT </td>
2913
<td class="paramname"> <em>block_end</em>, </td>
2916
<td class="paramkey"></td>
2918
<td class="paramtype">const __m128i *BMRESTRICT </td>
2919
<td class="paramname"> <em>mask_block</em>, </td>
2922
<td class="paramkey"></td>
2924
<td class="paramtype">Func </td>
2925
<td class="paramname"> <em>sse2_func</em></td><td> </td>
2930
<td></td><td></td><td><code> [inline]</code></td>
2934
<div class="memdoc">
2936
<p>Definition at line <a class="el" href="a00099_source.html#l00109">109</a> of file <a class="el" href="a00099_source.html">bmsse4.h</a>.</p>
2940
<a class="anchor" id="ac8f3443ba8fcd1b28face4b09dfd21bf"></a><!-- doxytag: member="bm::sum_arr" ref="ac8f3443ba8fcd1b28face4b09dfd21bf" args="(T *first, T *last)" -->
2941
<div class="memitem">
2942
<div class="memproto">
2943
<div class="memtemplate">
2944
template<class T > </div>
2945
<table class="memname">
2947
<td class="memname">T bm::sum_arr </td>
2949
<td class="paramtype">T * </td>
2950
<td class="paramname"> <em>first</em>, </td>
2953
<td class="paramkey"></td>
2955
<td class="paramtype">T * </td>
2956
<td class="paramname"> <em>last</em></td><td> </td>
2961
<td></td><td></td><td><code> [inline]</code></td>
2965
<div class="memdoc">
2966
<p>Computes SUM of all elements of the sequence </p>
2968
<p>Definition at line <a class="el" href="a00094_source.html#l00633">633</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
2972
<a class="anchor" id="a336ed7eb10da60438793f0ecff0fb7b1"></a><!-- doxytag: member="bm::tmatrix_reduce" ref="a336ed7eb10da60438793f0ecff0fb7b1" args="(TMatrix &tmatrix, const unsigned char *pc_vector, const unsigned effective_cols)" -->
2973
<div class="memitem">
2974
<div class="memproto">
2975
<div class="memtemplate">
2976
template<class TMatrix > </div>
2977
<table class="memname">
2979
<td class="memname">void bm::tmatrix_reduce </td>
2981
<td class="paramtype">TMatrix & </td>
2982
<td class="paramname"> <em>tmatrix</em>, </td>
2985
<td class="paramkey"></td>
2987
<td class="paramtype">const unsigned char * </td>
2988
<td class="paramname"> <em>pc_vector</em>, </td>
2991
<td class="paramkey"></td>
2993
<td class="paramtype">const unsigned </td>
2994
<td class="paramname"> <em>effective_cols</em></td><td> </td>
2999
<td></td><td></td><td><code> [inline]</code></td>
3003
<div class="memdoc">
3005
<p>Transposed Matrix reduction based on transformation pc vector. </p>
3007
<p>Definition at line <a class="el" href="a00101_source.html#l00550">550</a> of file <a class="el" href="a00101_source.html">bmtrans.h</a>.</p>
3009
<p>References <a class="el" href="a00093_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00101_source.html#l00386">ibpc_all_one</a>, <a class="el" href="a00101_source.html#l00385">ibpc_all_zero</a>, <a class="el" href="a00101_source.html#l00388">ibpc_close</a>, <a class="el" href="a00101_source.html#l00387">ibpc_equiv</a>, and <a class="el" href="a00101_source.html#l00384">ibpc_uncompr</a>.</p>
3011
<p>Referenced by <a class="el" href="a00101_source.html#l00845">bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::reduce()</a>.</p>
3015
<a class="anchor" id="ab7544e494744b2c0b265ab7d81f766b8"></a><!-- doxytag: member="bm::tmatrix_restore" ref="ab7544e494744b2c0b265ab7d81f766b8" args="(TMatrix &tmatrix, const unsigned char *pc_vector, const unsigned effective_cols)" -->
3016
<div class="memitem">
3017
<div class="memproto">
3018
<div class="memtemplate">
3019
template<class TMatrix > </div>
3020
<table class="memname">
3022
<td class="memname">void bm::tmatrix_restore </td>
3024
<td class="paramtype">TMatrix & </td>
3025
<td class="paramname"> <em>tmatrix</em>, </td>
3028
<td class="paramkey"></td>
3030
<td class="paramtype">const unsigned char * </td>
3031
<td class="paramname"> <em>pc_vector</em>, </td>
3034
<td class="paramkey"></td>
3036
<td class="paramtype">const unsigned </td>
3037
<td class="paramname"> <em>effective_cols</em></td><td> </td>
3042
<td></td><td></td><td><code> [inline]</code></td>
3046
<div class="memdoc">
3048
<p>Transposed Matrix restore based on transformation pc vector. </p>
3050
<p>Definition at line <a class="el" href="a00101_source.html#l00597">597</a> of file <a class="el" href="a00101_source.html">bmtrans.h</a>.</p>
3052
<p>References <a class="el" href="a00093_source.html#l00050">BM_ASSERT</a>, <a class="el" href="a00101_source.html#l00386">ibpc_all_one</a>, <a class="el" href="a00101_source.html#l00385">ibpc_all_zero</a>, <a class="el" href="a00101_source.html#l00388">ibpc_close</a>, <a class="el" href="a00101_source.html#l00387">ibpc_equiv</a>, and <a class="el" href="a00101_source.html#l00384">ibpc_uncompr</a>.</p>
3054
<p>Referenced by <a class="el" href="a00101_source.html#l00851">bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::restore()</a>.</p>
3058
<a class="anchor" id="a2e3af9c9f2eb481130d240ba4cd6fd68"></a><!-- doxytag: member="bm::vect_bit_transpose" ref="a2e3af9c9f2eb481130d240ba4cd6fd68" args="(const T *arr, unsigned arr_size, T tmatrix[BPC][BPS])" -->
3059
<div class="memitem">
3060
<div class="memproto">
3061
<div class="memtemplate">
3062
template<typename T , unsigned BPC, unsigned BPS> </div>
3063
<table class="memname">
3065
<td class="memname">void bm::vect_bit_transpose </td>
3067
<td class="paramtype">const T * </td>
3068
<td class="paramname"> <em>arr</em>, </td>
3071
<td class="paramkey"></td>
3073
<td class="paramtype">unsigned </td>
3074
<td class="paramname"> <em>arr_size</em>, </td>
3077
<td class="paramkey"></td>
3079
<td class="paramtype">T </td>
3080
<td class="paramname"> <em>tmatrix</em>[BPC][BPS]</td><td> </td>
3085
<td></td><td></td><td><code> [inline]</code></td>
3089
<div class="memdoc">
3091
<p>Generic bit-array transposition function T - array type (any int) BPC - bit plain count BPS - bit plain size. </p>
3092
<dl><dt><b>Parameters:</b></dt><dd>
3093
<table border="0" cellspacing="2" cellpadding="0">
3094
<tr><td valign="top"></td><td valign="top"><em>arr</em> </td><td>- source array start </td></tr>
3095
<tr><td valign="top"></td><td valign="top"><em>arr_size</em> </td><td>- source array size </td></tr>
3096
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="a00087.html" title="Mini-matrix for bit transposition purposes.">tmatrix</a></em> </td><td>- destination bit matrix </td></tr>
3101
<p>Definition at line <a class="el" href="a00101_source.html#l00290">290</a> of file <a class="el" href="a00101_source.html">bmtrans.h</a>.</p>
3103
<p>References <a class="el" href="a00093_source.html#l00050">BM_ASSERT</a>.</p>
3107
<a class="anchor" id="a089ac7cd17ddca4bf3c661c96f749f3f"></a><!-- doxytag: member="bm::vect_bit_trestore" ref="a089ac7cd17ddca4bf3c661c96f749f3f" args="(const T tmatrix[BPC][BPS], T *arr)" -->
3108
<div class="memitem">
3109
<div class="memproto">
3110
<div class="memtemplate">
3111
template<typename T , unsigned BPC, unsigned BPS> </div>
3112
<table class="memname">
3114
<td class="memname">void bm::vect_bit_trestore </td>
3116
<td class="paramtype">const T </td>
3117
<td class="paramname"> <em>tmatrix</em>[BPC][BPS], </td>
3120
<td class="paramkey"></td>
3122
<td class="paramtype">T * </td>
3123
<td class="paramname"> <em>arr</em></td><td> </td>
3128
<td></td><td></td><td><code> [inline]</code></td>
3132
<div class="memdoc">
3134
<p>Restore bit array from the transposition matrix T - array type (any int) BPC - bit plain count BPS - bit plain size. </p>
3135
<dl><dt><b>Parameters:</b></dt><dd>
3136
<table border="0" cellspacing="2" cellpadding="0">
3137
<tr><td valign="top"></td><td valign="top"><em>arr</em> </td><td>- dest array </td></tr>
3138
<tr><td valign="top"></td><td valign="top"><em><a class="el" href="a00087.html" title="Mini-matrix for bit transposition purposes.">tmatrix</a></em> </td><td>- source bit-slice matrix </td></tr>
3143
<p>Definition at line <a class="el" href="a00101_source.html#l00323">323</a> of file <a class="el" href="a00101_source.html">bmtrans.h</a>.</p>
3147
<a class="anchor" id="a6e7085de3103a42f81c0d3d82903cd5f"></a><!-- doxytag: member="bm::xor_op" ref="a6e7085de3103a42f81c0d3d82903cd5f" args="(unsigned v1, unsigned v2)" -->
3148
<div class="memitem">
3149
<div class="memproto">
3150
<table class="memname">
3152
<td class="memname">BMFORCEINLINE unsigned bm::xor_op </td>
3154
<td class="paramtype">unsigned </td>
3155
<td class="paramname"> <em>v1</em>, </td>
3158
<td class="paramkey"></td>
3160
<td class="paramtype">unsigned </td>
3161
<td class="paramname"> <em>v2</em></td><td> </td>
3166
<td></td><td></td><td></td>
3170
<div class="memdoc">
3172
<p>GAP xor functor. </p>
3174
<p>Definition at line <a class="el" href="a00094_source.html#l03108">3108</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
3176
<p>Referenced by <a class="el" href="a00094_source.html#l03201">gap_operation_any_xor()</a>, and <a class="el" href="a00094_source.html#l03177">gap_operation_xor()</a>.</p>
3180
<a class="anchor" id="afb2c1acc56270abb381741a709a2b17c"></a><!-- doxytag: member="bm::xor_swap" ref="afb2c1acc56270abb381741a709a2b17c" args="(W &x, W &y)" -->
3181
<div class="memitem">
3182
<div class="memproto">
3183
<div class="memtemplate">
3184
template<typename W > </div>
3185
<table class="memname">
3187
<td class="memname">void bm::xor_swap </td>
3189
<td class="paramtype">W & </td>
3190
<td class="paramname"> <em>x</em>, </td>
3193
<td class="paramkey"></td>
3195
<td class="paramtype">W & </td>
3196
<td class="paramname"> <em>y</em></td><td> </td>
3201
<td></td><td></td><td><code> [inline]</code></td>
3205
<div class="memdoc">
3207
<p>XOR swap two scalar variables. </p>
3209
<p>Definition at line <a class="el" href="a00094_source.html#l00321">321</a> of file <a class="el" href="a00094_source.html">bmfunc.h</a>.</p>
3211
<p>References <a class="el" href="a00093_source.html#l00050">BM_ASSERT</a>.</p>
3213
<p>Referenced by <a class="el" href="a00088_source.html#l01221">bm::bvector< Alloc, MS >::swap()</a>.</p>
3217
<hr/><h2>Variable Documentation</h2>
3218
<a class="anchor" id="ad81dea46a256b93b2af3568ce409d40b"></a><!-- doxytag: member="bm::all_bits_mask" ref="ad81dea46a256b93b2af3568ce409d40b" args="" -->
3219
<div class="memitem">
3220
<div class="memproto">
3221
<table class="memname">
3223
<td class="memname">const <a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">word_t</a> <a class="el" href="a00116.html#ad81dea46a256b93b2af3568ce409d40b">bm::all_bits_mask</a> = 0xffffffff</td>
3227
<div class="memdoc">
3229
<p>Definition at line <a class="el" href="a00092_source.html#l00101">101</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
3231
<p>Referenced by <a class="el" href="a00094_source.html#l03060">is_bits_one()</a>.</p>
3235
<a class="anchor" id="a4dedd13a7b8a27c5067b20118002f025"></a><!-- doxytag: member="bm::bits_in_array" ref="a4dedd13a7b8a27c5067b20118002f025" args="" -->
3236
<div class="memitem">
3237
<div class="memproto">
3238
<table class="memname">
3240
<td class="memname">const unsigned <a class="el" href="a00116.html#a4dedd13a7b8a27c5067b20118002f025">bm::bits_in_array</a> = <a class="el" href="a00116.html#ae9916f69ced0347d94472d7944ea0e45">bm::bits_in_block</a> * <a class="el" href="a00116.html#a40ad34d6c46a2fb20ba2baa7f95d80b4">bm::set_array_size</a></td>
3244
<div class="memdoc">
3246
<p>Definition at line <a class="el" href="a00092_source.html#l00086">86</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
3248
<p>Referenced by <a class="el" href="a00088_source.html#l00435">bm::bvector< Alloc, MS >::enumerator::go_first()</a>, and <a class="el" href="a00088_source.html#l00500">bm::bvector< Alloc, MS >::enumerator::go_up()</a>.</p>
3252
<a class="anchor" id="ae9916f69ced0347d94472d7944ea0e45"></a><!-- doxytag: member="bm::bits_in_block" ref="ae9916f69ced0347d94472d7944ea0e45" args="" -->
3253
<div class="memitem">
3254
<div class="memproto">
3255
<table class="memname">
3257
<td class="memname">const unsigned <a class="el" href="a00116.html#ae9916f69ced0347d94472d7944ea0e45">bm::bits_in_block</a> = <a class="el" href="a00116.html#a91319dbc0d0e1bf3a3efc4d92bac7972">bm::set_block_size</a> * sizeof(<a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a>) * 8</td>
3261
<div class="memdoc">
3263
<p>Definition at line <a class="el" href="a00092_source.html#l00085">85</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
3265
<p>Referenced by <a class="el" href="a00088_source.html#l01690">bm::bvector< Alloc, MS >::count_range()</a>, <a class="el" href="a00097_source.html#l03298">bm::iterator_deserializer< BV, SerialIterator >::deserialize()</a>, <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00088_source.html#l00435">bm::bvector< Alloc, MS >::enumerator::go_first()</a>, and <a class="el" href="a00088_source.html#l00500">bm::bvector< Alloc, MS >::enumerator::go_up()</a>.</p>
3269
<a class="anchor" id="a9b1715d6d9164d56172e75bbbd0e3000"></a><!-- doxytag: member="bm::gap_equiv_len" ref="a9b1715d6d9164d56172e75bbbd0e3000" args="" -->
3270
<div class="memitem">
3271
<div class="memproto">
3272
<table class="memname">
3274
<td class="memname">const unsigned <a class="el" href="a00116.html#a9b1715d6d9164d56172e75bbbd0e3000">bm::gap_equiv_len</a></td>
3278
<div class="memdoc">
3279
<b>Initial value:</b><div class="fragment"><pre class="fragment">
3280
(<span class="keyword">sizeof</span>(<a class="code" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a>) * <a class="code" href="a00116.html#a91319dbc0d0e1bf3a3efc4d92bac7972">bm::set_block_size</a>) / <span class="keyword">sizeof</span>(<a class="code" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">gap_word_t</a>)
3282
<p>Definition at line <a class="el" href="a00092_source.html#l00072">72</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
3284
<p>Referenced by <a class="el" href="a00090_source.html#l00114">combine_count_operation_with_block()</a>, <a class="el" href="a00097_source.html#l03080">bm::iterator_deserializer< BV, SerialIterator >::deserialize()</a>, <a class="el" href="a00097_source.html#l00705">bm::serializer< BV >::encode_gap_block()</a>, and <a class="el" href="a00097_source.html#l00810">bm::serializer< BV >::serialize()</a>.</p>
3288
<a class="anchor" id="a773e9f5341919d58000bd54d50038733"></a><!-- doxytag: member="bm::gap_levels" ref="a773e9f5341919d58000bd54d50038733" args="" -->
3289
<div class="memitem">
3290
<div class="memproto">
3291
<table class="memname">
3293
<td class="memname">const unsigned <a class="el" href="a00116.html#a773e9f5341919d58000bd54d50038733">bm::gap_levels</a> = 4</td>
3297
<div class="memdoc">
3299
<p>Definition at line <a class="el" href="a00092_source.html#l00074">74</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
3301
<p>Referenced by <a class="el" href="a00091_source.html#l00193">bm::mem_alloc< BA, PA >::alloc_gap_block()</a>, <a class="el" href="a00088_source.html#l02051">bm::bvector< Alloc, MS >::calc_stat()</a>, <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l00582">bm::serializer< BV >::encode_header()</a>, <a class="el" href="a00094_source.html#l02405">gap_calc_level()</a>, <a class="el" href="a00094_source.html#l04722">gap_overhead()</a>, <a class="el" href="a00094_source.html#l04749">improve_gap_levels()</a>, <a class="el" href="a00088_source.html#l01842">bm::bvector< Alloc, MS >::optimize()</a>, <a class="el" href="a00088_source.html#l01884">bm::bvector< Alloc, MS >::optimize_gap_size()</a>, <a class="el" href="a00097_source.html#l01660">bm::serial_stream_iterator< DEC >::serial_stream_iterator()</a>, and <a class="el" href="a00094_source.html#l02389">set_gap_level()</a>.</p>
3305
<a class="anchor" id="ad0b8714080144ac70197840ff96752b7"></a><!-- doxytag: member="bm::gap_max_bits" ref="ad0b8714080144ac70197840ff96752b7" args="" -->
3306
<div class="memitem">
3307
<div class="memproto">
3308
<table class="memname">
3310
<td class="memname">const unsigned <a class="el" href="a00116.html#ad0b8714080144ac70197840ff96752b7">bm::gap_max_bits</a> = 65536</td>
3314
<div class="memdoc">
3316
<p>Definition at line <a class="el" href="a00092_source.html#l00071">71</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
3318
<p>Referenced by <a class="el" href="a00090_source.html#l00343">combine_any_operation_with_block()</a>, <a class="el" href="a00088_source.html#l01921">bm::bvector< Alloc, MS >::compare()</a>, <a class="el" href="a00097_source.html#l01308">bm::deserializer< BV, DEC >::deserialize_gap()</a>, <a class="el" href="a00097_source.html#l00705">bm::serializer< BV >::encode_gap_block()</a>, <a class="el" href="a00094_source.html#l01226">gap_add_value()</a>, <a class="el" href="a00094_source.html#l00461">gap_bfind()</a>, <a class="el" href="a00094_source.html#l00990">gap_buff_any_op()</a>, <a class="el" href="a00094_source.html#l00908">gap_buff_op()</a>, <a class="el" href="a00094_source.html#l01401">gap_find_in_block()</a>, <a class="el" href="a00094_source.html#l01311">gap_set_array()</a>, <a class="el" href="a00094_source.html#l01133">gap_set_value()</a>, <a class="el" href="a00094_source.html#l00489">gap_test()</a>, <a class="el" href="a00088_source.html#l00500">bm::bvector< Alloc, MS >::enumerator::go_up()</a>, <a class="el" href="a00097_source.html#l01223">bm::deseriaizer_base< DEC >::read_gap_block()</a>, and <a class="el" href="a00097_source.html#l00810">bm::serializer< BV >::serialize()</a>.</p>
3322
<a class="anchor" id="aa5e01dfb650d168f9be0525e042af647"></a><!-- doxytag: member="bm::gap_max_buff_len" ref="aa5e01dfb650d168f9be0525e042af647" args="" -->
3323
<div class="memitem">
3324
<div class="memproto">
3325
<table class="memname">
3327
<td class="memname">const unsigned <a class="el" href="a00116.html#aa5e01dfb650d168f9be0525e042af647">bm::gap_max_buff_len</a> = 1280</td>
3331
<div class="memdoc">
3333
<p>Definition at line <a class="el" href="a00092_source.html#l00070">70</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
3335
<p>Referenced by <a class="el" href="a00090_source.html#l00343">combine_any_operation_with_block()</a>, and <a class="el" href="a00094_source.html#l04749">improve_gap_levels()</a>.</p>
3339
<a class="anchor" id="a13793ad631e2b2fcbaaae9000ea1a924"></a><!-- doxytag: member="bm::gap_max_level" ref="a13793ad631e2b2fcbaaae9000ea1a924" args="" -->
3340
<div class="memitem">
3341
<div class="memproto">
3342
<table class="memname">
3344
<td class="memname">const unsigned <a class="el" href="a00116.html#a13793ad631e2b2fcbaaae9000ea1a924">bm::gap_max_level</a> = <a class="el" href="a00116.html#a773e9f5341919d58000bd54d50038733">bm::gap_levels</a> - 1</td>
3348
<div class="memdoc">
3350
<p>Definition at line <a class="el" href="a00092_source.html#l00075">75</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
3354
<a class="anchor" id="aa6f59be0b838db693e0f081bcaf750f0"></a><!-- doxytag: member="bm::ibpc_all_one" ref="aa6f59be0b838db693e0f081bcaf750f0" args="" -->
3355
<div class="memitem">
3356
<div class="memproto">
3357
<table class="memname">
3359
<td class="memname">const unsigned char <a class="el" href="a00116.html#aa6f59be0b838db693e0f081bcaf750f0">bm::ibpc_all_one</a> = 2</td>
3363
<div class="memdoc">
3365
<p>!< plain ALL ZERO </p>
3367
<p>Definition at line <a class="el" href="a00101_source.html#l00386">386</a> of file <a class="el" href="a00101_source.html">bmtrans.h</a>.</p>
3369
<p>Referenced by <a class="el" href="a00101_source.html#l00414">bit_iblock_make_pcv()</a>, <a class="el" href="a00101_source.html#l00494">bit_iblock_reduce()</a>, <a class="el" href="a00101_source.html#l00683">compute_tmatrix_rstat()</a>, <a class="el" href="a00101_source.html#l00550">tmatrix_reduce()</a>, and <a class="el" href="a00101_source.html#l00597">tmatrix_restore()</a>.</p>
3373
<a class="anchor" id="aaca6d3c887b5b7b66a78e95471f9a326"></a><!-- doxytag: member="bm::ibpc_all_zero" ref="aaca6d3c887b5b7b66a78e95471f9a326" args="" -->
3374
<div class="memitem">
3375
<div class="memproto">
3376
<table class="memname">
3378
<td class="memname">const unsigned char <a class="el" href="a00116.html#aaca6d3c887b5b7b66a78e95471f9a326">bm::ibpc_all_zero</a> = 1</td>
3382
<div class="memdoc">
3384
<p>!< plain uncompressed </p>
3386
<p>Definition at line <a class="el" href="a00101_source.html#l00385">385</a> of file <a class="el" href="a00101_source.html">bmtrans.h</a>.</p>
3388
<p>Referenced by <a class="el" href="a00101_source.html#l00414">bit_iblock_make_pcv()</a>, <a class="el" href="a00101_source.html#l00494">bit_iblock_reduce()</a>, <a class="el" href="a00101_source.html#l00683">compute_tmatrix_rstat()</a>, <a class="el" href="a00101_source.html#l00550">tmatrix_reduce()</a>, and <a class="el" href="a00101_source.html#l00597">tmatrix_restore()</a>.</p>
3392
<a class="anchor" id="aa61bf7691d32a9bc7c65c05bb62657e5"></a><!-- doxytag: member="bm::ibpc_close" ref="aa61bf7691d32a9bc7c65c05bb62657e5" args="" -->
3393
<div class="memitem">
3394
<div class="memproto">
3395
<table class="memname">
3397
<td class="memname">const unsigned char <a class="el" href="a00116.html#aa61bf7691d32a9bc7c65c05bb62657e5">bm::ibpc_close</a> = 4</td>
3401
<div class="memdoc">
3403
<p>!< plain is equal to plain M </p>
3405
<p>Definition at line <a class="el" href="a00101_source.html#l00388">388</a> of file <a class="el" href="a00101_source.html">bmtrans.h</a>.</p>
3407
<p>Referenced by <a class="el" href="a00101_source.html#l00414">bit_iblock_make_pcv()</a>, <a class="el" href="a00101_source.html#l00494">bit_iblock_reduce()</a>, <a class="el" href="a00101_source.html#l00683">compute_tmatrix_rstat()</a>, <a class="el" href="a00101_source.html#l00550">tmatrix_reduce()</a>, and <a class="el" href="a00101_source.html#l00597">tmatrix_restore()</a>.</p>
3411
<a class="anchor" id="ae4f14f0c2c5a9ee277808d36fd94693f"></a><!-- doxytag: member="bm::ibpc_end" ref="ae4f14f0c2c5a9ee277808d36fd94693f" args="" -->
3412
<div class="memitem">
3413
<div class="memproto">
3414
<table class="memname">
3416
<td class="memname">const unsigned char <a class="el" href="a00116.html#ae4f14f0c2c5a9ee277808d36fd94693f">bm::ibpc_end</a> = 8</td>
3420
<div class="memdoc">
3422
<p>!< plain is close to plain M </p>
3424
<p>Definition at line <a class="el" href="a00101_source.html#l00390">390</a> of file <a class="el" href="a00101_source.html">bmtrans.h</a>.</p>
3428
<a class="anchor" id="a748d4095c39c9372a590b431e0ec17fe"></a><!-- doxytag: member="bm::ibpc_equiv" ref="a748d4095c39c9372a590b431e0ec17fe" args="" -->
3429
<div class="memitem">
3430
<div class="memproto">
3431
<table class="memname">
3433
<td class="memname">const unsigned char <a class="el" href="a00116.html#a748d4095c39c9372a590b431e0ec17fe">bm::ibpc_equiv</a> = 3</td>
3437
<div class="memdoc">
3439
<p>!< plain ALL ONE </p>
3441
<p>Definition at line <a class="el" href="a00101_source.html#l00387">387</a> of file <a class="el" href="a00101_source.html">bmtrans.h</a>.</p>
3443
<p>Referenced by <a class="el" href="a00101_source.html#l00414">bit_iblock_make_pcv()</a>, <a class="el" href="a00101_source.html#l00494">bit_iblock_reduce()</a>, <a class="el" href="a00101_source.html#l00683">compute_tmatrix_rstat()</a>, <a class="el" href="a00101_source.html#l00550">tmatrix_reduce()</a>, and <a class="el" href="a00101_source.html#l00597">tmatrix_restore()</a>.</p>
3447
<a class="anchor" id="ae34de9206be7a8aa05db9d5dc38bfc90"></a><!-- doxytag: member="bm::ibpc_uncompr" ref="ae34de9206be7a8aa05db9d5dc38bfc90" args="" -->
3448
<div class="memitem">
3449
<div class="memproto">
3450
<table class="memname">
3452
<td class="memname">const unsigned char <a class="el" href="a00116.html#ae34de9206be7a8aa05db9d5dc38bfc90">bm::ibpc_uncompr</a> = 0</td>
3456
<div class="memdoc">
3458
<p>Definition at line <a class="el" href="a00101_source.html#l00384">384</a> of file <a class="el" href="a00101_source.html">bmtrans.h</a>.</p>
3460
<p>Referenced by <a class="el" href="a00101_source.html#l00414">bit_iblock_make_pcv()</a>, <a class="el" href="a00101_source.html#l00494">bit_iblock_reduce()</a>, <a class="el" href="a00101_source.html#l00683">compute_tmatrix_rstat()</a>, <a class="el" href="a00101_source.html#l00550">tmatrix_reduce()</a>, and <a class="el" href="a00101_source.html#l00597">tmatrix_restore()</a>.</p>
3464
<a class="anchor" id="a104b924a1df81542db2a6296fbf26a65"></a><!-- doxytag: member="bm::id_max" ref="a104b924a1df81542db2a6296fbf26a65" args="" -->
3465
<div class="memitem">
3466
<div class="memproto">
3467
<table class="memname">
3469
<td class="memname">const unsigned <a class="el" href="a00116.html#a104b924a1df81542db2a6296fbf26a65">bm::id_max</a> = 0xFFFFFFFF</td>
3473
<div class="memdoc">
3475
<p>Definition at line <a class="el" href="a00092_source.html#l00048">48</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
3477
<p>Referenced by <a class="el" href="a00090_source.html#l01075">block_range_scan()</a>, <a class="el" href="a00090_source.html#l01105">combine_or()</a>, <a class="el" href="a00090_source.html#l01268">combine_sub()</a>, <a class="el" href="a00090_source.html#l01184">combine_xor()</a>, <a class="el" href="a00097_source.html#l00582">bm::serializer< BV >::encode_header()</a>, <a class="el" href="a00088_source.html#l01262">bm::bvector< Alloc, MS >::extract_next()</a>, <a class="el" href="a00088_source.html#l01250">bm::bvector< Alloc, MS >::get_next()</a>, <a class="el" href="a00088_source.html#l00281">bm::bvector< Alloc, MS >::iterator_base::invalidate()</a>, <a class="el" href="a00088_source.html#l01784">bm::bvector< Alloc, MS >::invert()</a>, <a class="el" href="a00088_source.html#l00352">bm::bvector< Alloc, MS >::insert_iterator::operator=()</a>, and <a class="el" href="a00088_source.html#l00272">bm::bvector< Alloc, MS >::iterator_base::valid()</a>.</p>
3481
<a class="anchor" id="a00ffa7b38d7fcc7e522d864991a6de68"></a><!-- doxytag: member="bm::set_array_mask" ref="a00ffa7b38d7fcc7e522d864991a6de68" args="" -->
3482
<div class="memitem">
3483
<div class="memproto">
3484
<table class="memname">
3486
<td class="memname">const unsigned <a class="el" href="a00116.html#a00ffa7b38d7fcc7e522d864991a6de68">bm::set_array_mask</a> = 0xFFu</td>
3490
<div class="memdoc">
3492
<p>Definition at line <a class="el" href="a00092_source.html#l00082">82</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
3494
<p>Referenced by <a class="el" href="a00088_source.html#l00500">bm::bvector< Alloc, MS >::enumerator::go_up()</a>.</p>
3498
<a class="anchor" id="ac1ff8647a089c751ec330cecee01907e"></a><!-- doxytag: member="bm::set_array_shift" ref="ac1ff8647a089c751ec330cecee01907e" args="" -->
3499
<div class="memitem">
3500
<div class="memproto">
3501
<table class="memname">
3503
<td class="memname">const unsigned <a class="el" href="a00116.html#ac1ff8647a089c751ec330cecee01907e">bm::set_array_shift</a> = 8u</td>
3507
<div class="memdoc">
3509
<p>Definition at line <a class="el" href="a00092_source.html#l00081">81</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
3511
<p>Referenced by <a class="el" href="a00097_source.html#l03080">bm::iterator_deserializer< BV, SerialIterator >::deserialize()</a>, and <a class="el" href="a00088_source.html#l00500">bm::bvector< Alloc, MS >::enumerator::go_up()</a>.</p>
3515
<a class="anchor" id="a40ad34d6c46a2fb20ba2baa7f95d80b4"></a><!-- doxytag: member="bm::set_array_size" ref="a40ad34d6c46a2fb20ba2baa7f95d80b4" args="" -->
3516
<div class="memitem">
3517
<div class="memproto">
3518
<table class="memname">
3520
<td class="memname">const unsigned <a class="el" href="a00116.html#a40ad34d6c46a2fb20ba2baa7f95d80b4">bm::set_array_size</a> = 256u</td>
3524
<div class="memdoc">
3526
<p>Definition at line <a class="el" href="a00092_source.html#l00080">80</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
3528
<p>Referenced by <a class="el" href="a00088_source.html#l01176">bm::bvector< Alloc, MS >::any()</a>, <a class="el" href="a00088_source.html#l02051">bm::bvector< Alloc, MS >::calc_stat()</a>, <a class="el" href="a00088_source.html#l02518">bm::bvector< Alloc, MS >::combine_operation()</a>, <a class="el" href="a00088_source.html#l01921">bm::bvector< Alloc, MS >::compare()</a>, <a class="el" href="a00088_source.html#l01650">bm::bvector< Alloc, MS >::count()</a>, <a class="el" href="a00088_source.html#l01108">bm::bvector< Alloc, MS >::count_blocks()</a>, <a class="el" href="a00090_source.html#l01405">count_intervals()</a>, <a class="el" href="a00090_source.html#l00688">distance_operation()</a>, <a class="el" href="a00090_source.html#l00807">distance_operation_any()</a>, <a class="el" href="a00094_source.html#l00567">for_each_nzblock_if()</a>, <a class="el" href="a00088_source.html#l00435">bm::bvector< Alloc, MS >::enumerator::go_first()</a>, <a class="el" href="a00088_source.html#l00500">bm::bvector< Alloc, MS >::enumerator::go_up()</a>, <a class="el" href="a00088_source.html#l01784">bm::bvector< Alloc, MS >::invert()</a>, <a class="el" href="a00088_source.html#l01842">bm::bvector< Alloc, MS >::optimize()</a>, and <a class="el" href="a00088_source.html#l01905">bm::bvector< Alloc, MS >::set_gap_levels()</a>.</p>
3532
<a class="anchor" id="a2d1bf97ae342a7759943e62090fcf5d3"></a><!-- doxytag: member="bm::set_blkblk_mask" ref="a2d1bf97ae342a7759943e62090fcf5d3" args="" -->
3533
<div class="memitem">
3534
<div class="memproto">
3535
<table class="memname">
3537
<td class="memname">const unsigned <a class="el" href="a00116.html#a2d1bf97ae342a7759943e62090fcf5d3">bm::set_blkblk_mask</a> = 0xFFFFFFu</td>
3541
<div class="memdoc">
3543
<p>Definition at line <a class="el" href="a00092_source.html#l00055">55</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
3547
<a class="anchor" id="a3fad4a939708df59b1201910c7d37e30"></a><!-- doxytag: member="bm::set_block_16one" ref="a3fad4a939708df59b1201910c7d37e30" args="" -->
3548
<div class="memitem">
3549
<div class="memproto">
3550
<table class="memname">
3552
<td class="memname">const unsigned char <a class="el" href="a00116.html#a3fad4a939708df59b1201910c7d37e30">bm::set_block_16one</a> = 6</td>
3556
<div class="memdoc">
3558
<p>UP to 65536 all-set blocks. </p>
3560
<p>Definition at line <a class="el" href="a00097_source.html#l00072">72</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3562
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, and <a class="el" href="a00097_source.html#l00810">bm::serializer< BV >::serialize()</a>.</p>
3566
<a class="anchor" id="aef47eda6538ebf2624c1612d35694c01"></a><!-- doxytag: member="bm::set_block_16zero" ref="aef47eda6538ebf2624c1612d35694c01" args="" -->
3567
<div class="memitem">
3568
<div class="memproto">
3569
<table class="memname">
3571
<td class="memname">const unsigned char <a class="el" href="a00116.html#aef47eda6538ebf2624c1612d35694c01">bm::set_block_16zero</a> = 5</td>
3575
<div class="memdoc">
3577
<p>Up to 65536 zero blocks. </p>
3579
<p>Definition at line <a class="el" href="a00097_source.html#l00071">71</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3581
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, and <a class="el" href="a00097_source.html#l00810">bm::serializer< BV >::serialize()</a>.</p>
3585
<a class="anchor" id="a715131318a361bcccf59fc0b1e41d444"></a><!-- doxytag: member="bm::set_block_1one" ref="a715131318a361bcccf59fc0b1e41d444" args="" -->
3586
<div class="memitem">
3587
<div class="memproto">
3588
<table class="memname">
3590
<td class="memname">const unsigned char <a class="el" href="a00116.html#a715131318a361bcccf59fc0b1e41d444">bm::set_block_1one</a> = 2</td>
3594
<div class="memdoc">
3596
<p>One block all-set (1111...). </p>
3598
<p>Definition at line <a class="el" href="a00097_source.html#l00068">68</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3600
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, and <a class="el" href="a00097_source.html#l00810">bm::serializer< BV >::serialize()</a>.</p>
3604
<a class="anchor" id="a9e9cf918ca2ebec84eaf844d0e4c8bdb"></a><!-- doxytag: member="bm::set_block_1zero" ref="a9e9cf918ca2ebec84eaf844d0e4c8bdb" args="" -->
3605
<div class="memitem">
3606
<div class="memproto">
3607
<table class="memname">
3609
<td class="memname">const unsigned char <a class="el" href="a00116.html#a9e9cf918ca2ebec84eaf844d0e4c8bdb">bm::set_block_1zero</a> = 1</td>
3613
<div class="memdoc">
3615
<p>One all-zero block. </p>
3617
<p>Definition at line <a class="el" href="a00097_source.html#l00067">67</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3619
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, and <a class="el" href="a00097_source.html#l00810">bm::serializer< BV >::serialize()</a>.</p>
3623
<a class="anchor" id="a5b87c58ae617ad1f104b4c6bc3ed6447"></a><!-- doxytag: member="bm::set_block_32one" ref="a5b87c58ae617ad1f104b4c6bc3ed6447" args="" -->
3624
<div class="memitem">
3625
<div class="memproto">
3626
<table class="memname">
3628
<td class="memname">const unsigned char <a class="el" href="a00116.html#a5b87c58ae617ad1f104b4c6bc3ed6447">bm::set_block_32one</a> = 8</td>
3632
<div class="memdoc">
3634
<p>UP to 4G all-set blocks. </p>
3636
<p>Definition at line <a class="el" href="a00097_source.html#l00074">74</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3638
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, and <a class="el" href="a00097_source.html#l00810">bm::serializer< BV >::serialize()</a>.</p>
3642
<a class="anchor" id="ac7dfbd94a0534df88849bbce9e6c419a"></a><!-- doxytag: member="bm::set_block_32zero" ref="ac7dfbd94a0534df88849bbce9e6c419a" args="" -->
3643
<div class="memitem">
3644
<div class="memproto">
3645
<table class="memname">
3647
<td class="memname">const unsigned char <a class="el" href="a00116.html#ac7dfbd94a0534df88849bbce9e6c419a">bm::set_block_32zero</a> = 7</td>
3651
<div class="memdoc">
3653
<p>Up to 4G zero blocks. </p>
3655
<p>Definition at line <a class="el" href="a00097_source.html#l00073">73</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3657
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, and <a class="el" href="a00097_source.html#l00810">bm::serializer< BV >::serialize()</a>.</p>
3661
<a class="anchor" id="a57ad1090d6f380cf5de5f98c699b5a75"></a><!-- doxytag: member="bm::set_block_8one" ref="a57ad1090d6f380cf5de5f98c699b5a75" args="" -->
3662
<div class="memitem">
3663
<div class="memproto">
3664
<table class="memname">
3666
<td class="memname">const unsigned char <a class="el" href="a00116.html#a57ad1090d6f380cf5de5f98c699b5a75">bm::set_block_8one</a> = 4</td>
3670
<div class="memdoc">
3672
<p>Up to 256 all-set blocks. </p>
3674
<p>Definition at line <a class="el" href="a00097_source.html#l00070">70</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3676
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, and <a class="el" href="a00097_source.html#l00810">bm::serializer< BV >::serialize()</a>.</p>
3680
<a class="anchor" id="ac9b85b261ab49b37d5e15b84ed2d8b99"></a><!-- doxytag: member="bm::set_block_8zero" ref="ac9b85b261ab49b37d5e15b84ed2d8b99" args="" -->
3681
<div class="memitem">
3682
<div class="memproto">
3683
<table class="memname">
3685
<td class="memname">const unsigned char <a class="el" href="a00116.html#ac9b85b261ab49b37d5e15b84ed2d8b99">bm::set_block_8zero</a> = 3</td>
3689
<div class="memdoc">
3691
<p>Up to 256 zero blocks. </p>
3693
<p>Definition at line <a class="el" href="a00097_source.html#l00069">69</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3695
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, and <a class="el" href="a00097_source.html#l00810">bm::serializer< BV >::serialize()</a>.</p>
3699
<a class="anchor" id="ad506b63262c52870758432a95e71907e"></a><!-- doxytag: member="bm::set_block_aone" ref="ad506b63262c52870758432a95e71907e" args="" -->
3700
<div class="memitem">
3701
<div class="memproto">
3702
<table class="memname">
3704
<td class="memname">const unsigned char <a class="el" href="a00116.html#ad506b63262c52870758432a95e71907e">bm::set_block_aone</a> = 10</td>
3708
<div class="memdoc">
3710
<p>All other blocks one. </p>
3712
<p>Definition at line <a class="el" href="a00097_source.html#l00076">76</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3714
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, and <a class="el" href="a00097_source.html#l00810">bm::serializer< BV >::serialize()</a>.</p>
3718
<a class="anchor" id="a6ec6acb175ce77a229003f088ecd3923"></a><!-- doxytag: member="bm::set_block_arrbit" ref="a6ec6acb175ce77a229003f088ecd3923" args="" -->
3719
<div class="memitem">
3720
<div class="memproto">
3721
<table class="memname">
3723
<td class="memname">const unsigned char <a class="el" href="a00116.html#a6ec6acb175ce77a229003f088ecd3923">bm::set_block_arrbit</a> = 16</td>
3727
<div class="memdoc">
3729
<p>List of bits ON. </p>
3731
<p>Definition at line <a class="el" href="a00097_source.html#l00082">82</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3733
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l02690">bm::serial_stream_iterator< DEC >::get_arr_bit()</a>, <a class="el" href="a00097_source.html#l02013">bm::serial_stream_iterator< DEC >::get_bit_block_AND()</a>, <a class="el" href="a00097_source.html#l01889">bm::serial_stream_iterator< DEC >::get_bit_block_ASSIGN()</a>, <a class="el" href="a00097_source.html#l02203">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT()</a>, <a class="el" href="a00097_source.html#l02260">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_A()</a>, <a class="el" href="a00097_source.html#l02323">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_AND()</a>, <a class="el" href="a00097_source.html#l02382">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_OR()</a>, <a class="el" href="a00097_source.html#l02538">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_AB()</a>, <a class="el" href="a00097_source.html#l02617">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_BA()</a>, <a class="el" href="a00097_source.html#l02460">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_XOR()</a>, <a class="el" href="a00097_source.html#l01951">bm::serial_stream_iterator< DEC >::get_bit_block_OR()</a>, <a class="el" href="a00097_source.html#l02144">bm::serial_stream_iterator< DEC >::get_bit_block_SUB()</a>, <a class="el" href="a00097_source.html#l02084">bm::serial_stream_iterator< DEC >::get_bit_block_XOR()</a>, and <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>.</p>
3737
<a class="anchor" id="aae33ceefae804cdd94412beee8c52720"></a><!-- doxytag: member="bm::set_block_arrgap" ref="aae33ceefae804cdd94412beee8c52720" args="" -->
3738
<div class="memitem">
3739
<div class="memproto">
3740
<table class="memname">
3742
<td class="memname">const unsigned char <a class="el" href="a00116.html#aae33ceefae804cdd94412beee8c52720">bm::set_block_arrgap</a> = 18</td>
3746
<div class="memdoc">
3748
<p>List of bits ON (GAP block). </p>
3750
<p>Definition at line <a class="el" href="a00097_source.html#l00084">84</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3752
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l01308">bm::deserializer< BV, DEC >::deserialize_gap()</a>, <a class="el" href="a00097_source.html#l00658">bm::serializer< BV >::gamma_gap_array()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, <a class="el" href="a00097_source.html#l01223">bm::deseriaizer_base< DEC >::read_gap_block()</a>, and <a class="el" href="a00097_source.html#l01180">bm::deseriaizer_base< DEC >::read_id_list()</a>.</p>
3756
<a class="anchor" id="a9674ddb1b9ee66948465249688708188"></a><!-- doxytag: member="bm::set_block_arrgap_egamma" ref="a9674ddb1b9ee66948465249688708188" args="" -->
3757
<div class="memitem">
3758
<div class="memproto">
3759
<table class="memname">
3761
<td class="memname">const unsigned char <a class="el" href="a00116.html#a9674ddb1b9ee66948465249688708188">bm::set_block_arrgap_egamma</a> = 21</td>
3765
<div class="memdoc">
3767
<p>Gamma compressed delta GAP array. </p>
3769
<p>Definition at line <a class="el" href="a00097_source.html#l00087">87</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3771
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l01308">bm::deserializer< BV, DEC >::deserialize_gap()</a>, <a class="el" href="a00097_source.html#l00658">bm::serializer< BV >::gamma_gap_array()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, <a class="el" href="a00097_source.html#l01223">bm::deseriaizer_base< DEC >::read_gap_block()</a>, and <a class="el" href="a00097_source.html#l01180">bm::deseriaizer_base< DEC >::read_id_list()</a>.</p>
3775
<a class="anchor" id="a1caddb62b332a568ba590794800610f6"></a><!-- doxytag: member="bm::set_block_arrgap_egamma_inv" ref="a1caddb62b332a568ba590794800610f6" args="" -->
3776
<div class="memitem">
3777
<div class="memproto">
3778
<table class="memname">
3780
<td class="memname">const unsigned char <a class="el" href="a00116.html#a1caddb62b332a568ba590794800610f6">bm::set_block_arrgap_egamma_inv</a> = 23</td>
3784
<div class="memdoc">
3786
<p>Gamma compressed inverted delta GAP array. </p>
3788
<p>Definition at line <a class="el" href="a00097_source.html#l00089">89</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3790
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l01308">bm::deserializer< BV, DEC >::deserialize_gap()</a>, <a class="el" href="a00097_source.html#l00658">bm::serializer< BV >::gamma_gap_array()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, <a class="el" href="a00097_source.html#l01223">bm::deseriaizer_base< DEC >::read_gap_block()</a>, and <a class="el" href="a00097_source.html#l01180">bm::deseriaizer_base< DEC >::read_id_list()</a>.</p>
3794
<a class="anchor" id="a746a03f6f5563cc8c75db93bba40095d"></a><!-- doxytag: member="bm::set_block_arrgap_inv" ref="a746a03f6f5563cc8c75db93bba40095d" args="" -->
3795
<div class="memitem">
3796
<div class="memproto">
3797
<table class="memname">
3799
<td class="memname">const unsigned char <a class="el" href="a00116.html#a746a03f6f5563cc8c75db93bba40095d">bm::set_block_arrgap_inv</a> = 24</td>
3803
<div class="memdoc">
3805
<p>List of bits OFF (GAP block). </p>
3807
<p>Definition at line <a class="el" href="a00097_source.html#l00090">90</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3809
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l01308">bm::deserializer< BV, DEC >::deserialize_gap()</a>, <a class="el" href="a00097_source.html#l00658">bm::serializer< BV >::gamma_gap_array()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, <a class="el" href="a00097_source.html#l01223">bm::deseriaizer_base< DEC >::read_gap_block()</a>, and <a class="el" href="a00097_source.html#l01180">bm::deseriaizer_base< DEC >::read_id_list()</a>.</p>
3813
<a class="anchor" id="ae87b5c61d7ba6e2e592a279db0b21cc0"></a><!-- doxytag: member="bm::set_block_azero" ref="ae87b5c61d7ba6e2e592a279db0b21cc0" args="" -->
3814
<div class="memitem">
3815
<div class="memproto">
3816
<table class="memname">
3818
<td class="memname">const unsigned char <a class="el" href="a00116.html#ae87b5c61d7ba6e2e592a279db0b21cc0">bm::set_block_azero</a> = 9</td>
3822
<div class="memdoc">
3824
<p>All other blocks zero. </p>
3826
<p>Definition at line <a class="el" href="a00097_source.html#l00075">75</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3828
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, and <a class="el" href="a00097_source.html#l00810">bm::serializer< BV >::serialize()</a>.</p>
3832
<a class="anchor" id="aef86ab2eb42c198272eea7cdfe42951b"></a><!-- doxytag: member="bm::set_block_bit" ref="aef86ab2eb42c198272eea7cdfe42951b" args="" -->
3833
<div class="memitem">
3834
<div class="memproto">
3835
<table class="memname">
3837
<td class="memname">const unsigned char <a class="el" href="a00116.html#aef86ab2eb42c198272eea7cdfe42951b">bm::set_block_bit</a> = 11</td>
3841
<div class="memdoc">
3843
<p>Plain bit block. </p>
3845
<p>Definition at line <a class="el" href="a00097_source.html#l00077">77</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3847
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l02013">bm::serial_stream_iterator< DEC >::get_bit_block_AND()</a>, <a class="el" href="a00097_source.html#l01889">bm::serial_stream_iterator< DEC >::get_bit_block_ASSIGN()</a>, <a class="el" href="a00097_source.html#l02203">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT()</a>, <a class="el" href="a00097_source.html#l02260">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_A()</a>, <a class="el" href="a00097_source.html#l02323">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_AND()</a>, <a class="el" href="a00097_source.html#l02382">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_OR()</a>, <a class="el" href="a00097_source.html#l02538">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_AB()</a>, <a class="el" href="a00097_source.html#l02617">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_BA()</a>, <a class="el" href="a00097_source.html#l02460">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_XOR()</a>, <a class="el" href="a00097_source.html#l01951">bm::serial_stream_iterator< DEC >::get_bit_block_OR()</a>, <a class="el" href="a00097_source.html#l02144">bm::serial_stream_iterator< DEC >::get_bit_block_SUB()</a>, <a class="el" href="a00097_source.html#l02084">bm::serial_stream_iterator< DEC >::get_bit_block_XOR()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, and <a class="el" href="a00097_source.html#l00810">bm::serializer< BV >::serialize()</a>.</p>
3851
<a class="anchor" id="a5e21adca3bc6902f33e43e5cfd824f0e"></a><!-- doxytag: member="bm::set_block_bit_0runs" ref="a5e21adca3bc6902f33e43e5cfd824f0e" args="" -->
3852
<div class="memitem">
3853
<div class="memproto">
3854
<table class="memname">
3856
<td class="memname">const unsigned char <a class="el" href="a00116.html#a5e21adca3bc6902f33e43e5cfd824f0e">bm::set_block_bit_0runs</a> = 22</td>
3860
<div class="memdoc">
3862
<p>Bit block with encoded zero intervals. </p>
3864
<p>Definition at line <a class="el" href="a00097_source.html#l00088">88</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3866
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l00758">bm::serializer< BV >::encode_bit_interval()</a>, <a class="el" href="a00097_source.html#l02013">bm::serial_stream_iterator< DEC >::get_bit_block_AND()</a>, <a class="el" href="a00097_source.html#l01889">bm::serial_stream_iterator< DEC >::get_bit_block_ASSIGN()</a>, <a class="el" href="a00097_source.html#l02203">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT()</a>, <a class="el" href="a00097_source.html#l02260">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_A()</a>, <a class="el" href="a00097_source.html#l02323">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_AND()</a>, <a class="el" href="a00097_source.html#l02382">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_OR()</a>, <a class="el" href="a00097_source.html#l02538">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_AB()</a>, <a class="el" href="a00097_source.html#l02617">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_BA()</a>, <a class="el" href="a00097_source.html#l02460">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_XOR()</a>, <a class="el" href="a00097_source.html#l01951">bm::serial_stream_iterator< DEC >::get_bit_block_OR()</a>, <a class="el" href="a00097_source.html#l02144">bm::serial_stream_iterator< DEC >::get_bit_block_SUB()</a>, <a class="el" href="a00097_source.html#l02084">bm::serial_stream_iterator< DEC >::get_bit_block_XOR()</a>, and <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>.</p>
3870
<a class="anchor" id="ad0e6607a9771fa49a658c3078208c2dc"></a><!-- doxytag: member="bm::set_block_bit_1bit" ref="ad0e6607a9771fa49a658c3078208c2dc" args="" -->
3871
<div class="memitem">
3872
<div class="memproto">
3873
<table class="memname">
3875
<td class="memname">const unsigned char <a class="el" href="a00116.html#ad0e6607a9771fa49a658c3078208c2dc">bm::set_block_bit_1bit</a> = 19</td>
3879
<div class="memdoc">
3881
<p>Bit block with 1 bit ON. </p>
3883
<p>Definition at line <a class="el" href="a00097_source.html#l00085">85</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3885
<p>Referenced by <a class="el" href="a00097_source.html#l03080">bm::iterator_deserializer< BV, SerialIterator >::deserialize()</a>, <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l00705">bm::serializer< BV >::encode_gap_block()</a>, <a class="el" href="a00097_source.html#l02690">bm::serial_stream_iterator< DEC >::get_arr_bit()</a>, <a class="el" href="a00097_source.html#l02728">bm::serial_stream_iterator< DEC >::get_bit()</a>, <a class="el" href="a00097_source.html#l02013">bm::serial_stream_iterator< DEC >::get_bit_block_AND()</a>, <a class="el" href="a00097_source.html#l01889">bm::serial_stream_iterator< DEC >::get_bit_block_ASSIGN()</a>, <a class="el" href="a00097_source.html#l02203">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT()</a>, <a class="el" href="a00097_source.html#l02260">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_A()</a>, <a class="el" href="a00097_source.html#l02323">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_AND()</a>, <a class="el" href="a00097_source.html#l02382">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_OR()</a>, <a class="el" href="a00097_source.html#l02538">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_AB()</a>, <a class="el" href="a00097_source.html#l02617">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_BA()</a>, <a class="el" href="a00097_source.html#l02460">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_XOR()</a>, <a class="el" href="a00097_source.html#l01951">bm::serial_stream_iterator< DEC >::get_bit_block_OR()</a>, <a class="el" href="a00097_source.html#l02144">bm::serial_stream_iterator< DEC >::get_bit_block_SUB()</a>, <a class="el" href="a00097_source.html#l02084">bm::serial_stream_iterator< DEC >::get_bit_block_XOR()</a>, <a class="el" href="a00097_source.html#l02739">bm::serial_stream_iterator< DEC >::get_gap_block()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, <a class="el" href="a00097_source.html#l01223">bm::deseriaizer_base< DEC >::read_gap_block()</a>, <a class="el" href="a00097_source.html#l01180">bm::deseriaizer_base< DEC >::read_id_list()</a>, and <a class="el" href="a00097_source.html#l00810">bm::serializer< BV >::serialize()</a>.</p>
3889
<a class="anchor" id="a0f2d3289a95dc3bd224a6a73c3d3afce"></a><!-- doxytag: member="bm::set_block_bit_interval" ref="a0f2d3289a95dc3bd224a6a73c3d3afce" args="" -->
3890
<div class="memitem">
3891
<div class="memproto">
3892
<table class="memname">
3894
<td class="memname">const unsigned char <a class="el" href="a00116.html#a0f2d3289a95dc3bd224a6a73c3d3afce">bm::set_block_bit_interval</a> = 17</td>
3898
<div class="memdoc">
3900
<p>Interval block. </p>
3902
<p>Definition at line <a class="el" href="a00097_source.html#l00083">83</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3904
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l02013">bm::serial_stream_iterator< DEC >::get_bit_block_AND()</a>, <a class="el" href="a00097_source.html#l01889">bm::serial_stream_iterator< DEC >::get_bit_block_ASSIGN()</a>, <a class="el" href="a00097_source.html#l02203">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT()</a>, <a class="el" href="a00097_source.html#l02260">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_A()</a>, <a class="el" href="a00097_source.html#l02323">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_AND()</a>, <a class="el" href="a00097_source.html#l02382">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_OR()</a>, <a class="el" href="a00097_source.html#l02538">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_AB()</a>, <a class="el" href="a00097_source.html#l02617">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_BA()</a>, <a class="el" href="a00097_source.html#l02460">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_XOR()</a>, <a class="el" href="a00097_source.html#l01951">bm::serial_stream_iterator< DEC >::get_bit_block_OR()</a>, <a class="el" href="a00097_source.html#l02144">bm::serial_stream_iterator< DEC >::get_bit_block_SUB()</a>, <a class="el" href="a00097_source.html#l02084">bm::serial_stream_iterator< DEC >::get_bit_block_XOR()</a>, and <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>.</p>
3908
<a class="anchor" id="aa24e7c08930cf959d383c6b930fb0508"></a><!-- doxytag: member="bm::set_block_end" ref="aa24e7c08930cf959d383c6b930fb0508" args="" -->
3909
<div class="memitem">
3910
<div class="memproto">
3911
<table class="memname">
3913
<td class="memname">const unsigned char <a class="el" href="a00116.html#aa24e7c08930cf959d383c6b930fb0508">bm::set_block_end</a> = 0</td>
3917
<div class="memdoc">
3919
<p>End of serialization. </p>
3921
<p>Definition at line <a class="el" href="a00097_source.html#l00066">66</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3923
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, and <a class="el" href="a00097_source.html#l00810">bm::serializer< BV >::serialize()</a>.</p>
3927
<a class="anchor" id="a09b8c4b17b7d6f613c237c46d04a9cd6"></a><!-- doxytag: member="bm::set_block_gap" ref="a09b8c4b17b7d6f613c237c46d04a9cd6" args="" -->
3928
<div class="memitem">
3929
<div class="memproto">
3930
<table class="memname">
3932
<td class="memname">const unsigned char <a class="el" href="a00116.html#a09b8c4b17b7d6f613c237c46d04a9cd6">bm::set_block_gap</a> = 14</td>
3936
<div class="memdoc">
3938
<p>Plain GAP block. </p>
3940
<p>Definition at line <a class="el" href="a00097_source.html#l00080">80</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3942
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l01308">bm::deserializer< BV, DEC >::deserialize_gap()</a>, <a class="el" href="a00097_source.html#l00621">bm::serializer< BV >::gamma_gap_block()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, and <a class="el" href="a00097_source.html#l01223">bm::deseriaizer_base< DEC >::read_gap_block()</a>.</p>
3946
<a class="anchor" id="ac47dea3917e15264ed3ba0cf4055adbe"></a><!-- doxytag: member="bm::set_block_gap_egamma" ref="ac47dea3917e15264ed3ba0cf4055adbe" args="" -->
3947
<div class="memitem">
3948
<div class="memproto">
3949
<table class="memname">
3951
<td class="memname">const unsigned char <a class="el" href="a00116.html#ac47dea3917e15264ed3ba0cf4055adbe">bm::set_block_gap_egamma</a> = 20</td>
3955
<div class="memdoc">
3957
<p>Gamma compressed GAP block. </p>
3959
<p>Definition at line <a class="el" href="a00097_source.html#l00086">86</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3961
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l01308">bm::deserializer< BV, DEC >::deserialize_gap()</a>, <a class="el" href="a00097_source.html#l00621">bm::serializer< BV >::gamma_gap_block()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, and <a class="el" href="a00097_source.html#l01223">bm::deseriaizer_base< DEC >::read_gap_block()</a>.</p>
3965
<a class="anchor" id="a77dc965397e31a1d39c3d8e628792779"></a><!-- doxytag: member="bm::set_block_gapbit" ref="a77dc965397e31a1d39c3d8e628792779" args="" -->
3966
<div class="memitem">
3967
<div class="memproto">
3968
<table class="memname">
3970
<td class="memname">const unsigned char <a class="el" href="a00116.html#a77dc965397e31a1d39c3d8e628792779">bm::set_block_gapbit</a> = 15</td>
3974
<div class="memdoc">
3976
<p>GAP compressed bitblock. </p>
3978
<p>Definition at line <a class="el" href="a00097_source.html#l00081">81</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
3980
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l01308">bm::deserializer< BV, DEC >::deserialize_gap()</a>, <a class="el" href="a00097_source.html#l01889">bm::serial_stream_iterator< DEC >::get_bit_block_ASSIGN()</a>, and <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>.</p>
3984
<a class="anchor" id="a201fb8b1f81b7487f1c1c129fc3d6557"></a><!-- doxytag: member="bm::set_block_mask" ref="a201fb8b1f81b7487f1c1c129fc3d6557" args="" -->
3985
<div class="memitem">
3986
<div class="memproto">
3987
<table class="memname">
3989
<td class="memname">const unsigned <a class="el" href="a00116.html#a201fb8b1f81b7487f1c1c129fc3d6557">bm::set_block_mask</a> = 0xFFFFu</td>
3993
<div class="memdoc">
3995
<p>Definition at line <a class="el" href="a00092_source.html#l00054">54</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
3997
<p>Referenced by <a class="el" href="a00090_source.html#l01105">combine_or()</a>, <a class="el" href="a00090_source.html#l01268">combine_sub()</a>, <a class="el" href="a00090_source.html#l01184">combine_xor()</a>, <a class="el" href="a00088_source.html#l01690">bm::bvector< Alloc, MS >::count_range()</a>, <a class="el" href="a00088_source.html#l01808">bm::bvector< Alloc, MS >::get_bit()</a>, <a class="el" href="a00094_source.html#l01456">or_bit_block()</a>, <a class="el" href="a00094_source.html#l01426">set_bit()</a>, <a class="el" href="a00094_source.html#l01518">sub_bit_block()</a>, <a class="el" href="a00094_source.html#l01439">test_bit()</a>, and <a class="el" href="a00094_source.html#l01580">xor_bit_block()</a>.</p>
4001
<a class="anchor" id="a3428cf384446982017ba9ee68152d238"></a><!-- doxytag: member="bm::set_block_plain_cnt" ref="a3428cf384446982017ba9ee68152d238" args="" -->
4002
<div class="memitem">
4003
<div class="memproto">
4004
<table class="memname">
4006
<td class="memname">const unsigned <a class="el" href="a00116.html#a3428cf384446982017ba9ee68152d238">bm::set_block_plain_cnt</a> = sizeof(<a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a>) * 8u</td>
4010
<div class="memdoc">
4012
<p>Definition at line <a class="el" href="a00092_source.html#l00058">58</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
4016
<a class="anchor" id="a35780565f6d8f2831ebff8877d3ba662"></a><!-- doxytag: member="bm::set_block_plain_size" ref="a35780565f6d8f2831ebff8877d3ba662" args="" -->
4017
<div class="memitem">
4018
<div class="memproto">
4019
<table class="memname">
4021
<td class="memname">const unsigned <a class="el" href="a00116.html#a35780565f6d8f2831ebff8877d3ba662">bm::set_block_plain_size</a> = <a class="el" href="a00116.html#a91319dbc0d0e1bf3a3efc4d92bac7972">set_block_size</a> / 32u</td>
4025
<div class="memdoc">
4027
<p>Definition at line <a class="el" href="a00092_source.html#l00057">57</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
4031
<a class="anchor" id="afe4b1011b09271c5f3882b926e250d39"></a><!-- doxytag: member="bm::set_block_sgapbit" ref="afe4b1011b09271c5f3882b926e250d39" args="" -->
4032
<div class="memitem">
4033
<div class="memproto">
4034
<table class="memname">
4036
<td class="memname">const unsigned char <a class="el" href="a00116.html#afe4b1011b09271c5f3882b926e250d39">bm::set_block_sgapbit</a> = 12</td>
4040
<div class="memdoc">
4042
<p>SGAP compressed bitblock. </p>
4044
<p>Definition at line <a class="el" href="a00097_source.html#l00078">78</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
4048
<a class="anchor" id="ab3a8d57c0b898c3c5a23cd27a8f856ad"></a><!-- doxytag: member="bm::set_block_sgapgap" ref="ab3a8d57c0b898c3c5a23cd27a8f856ad" args="" -->
4049
<div class="memitem">
4050
<div class="memproto">
4051
<table class="memname">
4053
<td class="memname">const unsigned char <a class="el" href="a00116.html#ab3a8d57c0b898c3c5a23cd27a8f856ad">bm::set_block_sgapgap</a> = 13</td>
4057
<div class="memdoc">
4059
<p>SGAP compressed GAP block. </p>
4061
<p>Definition at line <a class="el" href="a00097_source.html#l00079">79</a> of file <a class="el" href="a00097_source.html">bmserial.h</a>.</p>
4065
<a class="anchor" id="ad8723fbeea6290d3daa8917ea7ce9bb2"></a><!-- doxytag: member="bm::set_block_shift" ref="ad8723fbeea6290d3daa8917ea7ce9bb2" args="" -->
4066
<div class="memitem">
4067
<div class="memproto">
4068
<table class="memname">
4070
<td class="memname">const unsigned <a class="el" href="a00116.html#ad8723fbeea6290d3daa8917ea7ce9bb2">bm::set_block_shift</a> = 16u</td>
4074
<div class="memdoc">
4076
<p>Definition at line <a class="el" href="a00092_source.html#l00053">53</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
4078
<p>Referenced by <a class="el" href="a00090_source.html#l01075">block_range_scan()</a>, <a class="el" href="a00090_source.html#l01105">combine_or()</a>, <a class="el" href="a00090_source.html#l01268">combine_sub()</a>, <a class="el" href="a00090_source.html#l01184">combine_xor()</a>, <a class="el" href="a00088_source.html#l01690">bm::bvector< Alloc, MS >::count_range()</a>, <a class="el" href="a00097_source.html#l03080">bm::iterator_deserializer< BV, SerialIterator >::deserialize()</a>, and <a class="el" href="a00088_source.html#l01808">bm::bvector< Alloc, MS >::get_bit()</a>.</p>
4082
<a class="anchor" id="a91319dbc0d0e1bf3a3efc4d92bac7972"></a><!-- doxytag: member="bm::set_block_size" ref="a91319dbc0d0e1bf3a3efc4d92bac7972" args="" -->
4083
<div class="memitem">
4084
<div class="memproto">
4085
<table class="memname">
4087
<td class="memname">const unsigned <a class="el" href="a00116.html#a91319dbc0d0e1bf3a3efc4d92bac7972">bm::set_block_size</a> = 2048u</td>
4091
<div class="memdoc">
4093
<p>Definition at line <a class="el" href="a00092_source.html#l00052">52</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
4095
<p>Referenced by <a class="el" href="a00094_source.html#l00066">bm::bv_statistics::add_bit_block()</a>, <a class="el" href="a00091_source.html#l00173">bm::mem_alloc< BA, PA >::alloc_bit_block()</a>, <a class="el" href="a00094_source.html#l03321">bit_block_and()</a>, <a class="el" href="a00094_source.html#l03301">bit_block_copy()</a>, <a class="el" href="a00094_source.html#l03935">bit_block_or()</a>, <a class="el" href="a00094_source.html#l02096">bit_block_set()</a>, <a class="el" href="a00094_source.html#l04031">bit_block_sub()</a>, <a class="el" href="a00094_source.html#l04127">bit_block_xor()</a>, <a class="el" href="a00094_source.html#l04320">bit_find_in_block()</a>, <a class="el" href="a00094_source.html#l03973">bit_operation_or()</a>, <a class="el" href="a00090_source.html#l00343">combine_any_operation_with_block()</a>, <a class="el" href="a00090_source.html#l00114">combine_count_operation_with_block()</a>, <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l00758">bm::serializer< BV >::encode_bit_interval()</a>, <a class="el" href="a00090_source.html#l01431">export_array()</a>, <a class="el" href="a00091_source.html#l00180">bm::mem_alloc< BA, PA >::free_bit_block()</a>, <a class="el" href="a00097_source.html#l02013">bm::serial_stream_iterator< DEC >::get_bit_block_AND()</a>, <a class="el" href="a00097_source.html#l01889">bm::serial_stream_iterator< DEC >::get_bit_block_ASSIGN()</a>, <a class="el" href="a00097_source.html#l02203">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT()</a>, <a class="el" href="a00097_source.html#l02260">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_A()</a>, <a class="el" href="a00097_source.html#l02323">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_AND()</a>, <a class="el" href="a00097_source.html#l02382">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_OR()</a>, <a class="el" href="a00097_source.html#l02538">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_AB()</a>, <a class="el" href="a00097_source.html#l02617">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_SUB_BA()</a>, <a class="el" href="a00097_source.html#l02460">bm::serial_stream_iterator< DEC >::get_bit_block_COUNT_XOR()</a>, <a class="el" href="a00097_source.html#l01951">bm::serial_stream_iterator< DEC >::get_bit_block_OR()</a>, <a class="el" href="a00097_source.html#l02144">bm::serial_stream_iterator< DEC >::get_bit_block_SUB()</a>, <a class="el" href="a00097_source.html#l02084">bm::serial_stream_iterator< DEC >::get_bit_block_XOR()</a>, <a class="el" href="a00088_source.html#l00500">bm::bvector< Alloc, MS >::enumerator::go_up()</a>, and <a class="el" href="a00097_source.html#l00810">bm::serializer< BV >::serialize()</a>.</p>
4099
<a class="anchor" id="a7049fd70220fc3a3072e9f82abf4ad66"></a><!-- doxytag: member="bm::set_block_size_op" ref="a7049fd70220fc3a3072e9f82abf4ad66" args="" -->
4100
<div class="memitem">
4101
<div class="memproto">
4102
<table class="memname">
4104
<td class="memname">const unsigned <a class="el" href="a00116.html#a7049fd70220fc3a3072e9f82abf4ad66">bm::set_block_size_op</a> = <a class="el" href="a00116.html#a91319dbc0d0e1bf3a3efc4d92bac7972">bm::set_block_size</a></td>
4108
<div class="memdoc">
4110
<p>Definition at line <a class="el" href="a00092_source.html#l00104">104</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
4112
<p>Referenced by <a class="el" href="a00088_source.html#l01921">bm::bvector< Alloc, MS >::compare()</a>.</p>
4116
<a class="anchor" id="a505011007f54598794e0b9477c0b0b11"></a><!-- doxytag: member="bm::set_total_blocks" ref="a505011007f54598794e0b9477c0b0b11" args="" -->
4117
<div class="memitem">
4118
<div class="memproto">
4119
<table class="memname">
4121
<td class="memname">const unsigned <a class="el" href="a00116.html#a505011007f54598794e0b9477c0b0b11">bm::set_total_blocks</a> = (<a class="el" href="a00116.html#a40ad34d6c46a2fb20ba2baa7f95d80b4">bm::set_array_size</a> * <a class="el" href="a00116.html#a40ad34d6c46a2fb20ba2baa7f95d80b4">bm::set_array_size</a>)</td>
4125
<div class="memdoc">
4127
<p>Definition at line <a class="el" href="a00092_source.html#l00083">83</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
4129
<p>Referenced by <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00090_source.html#l01431">export_array()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, and <a class="el" href="a00097_source.html#l00810">bm::serializer< BV >::serialize()</a>.</p>
4133
<a class="anchor" id="addbf345be3733d5e4575d71733ed1da8"></a><!-- doxytag: member="bm::set_word_mask" ref="addbf345be3733d5e4575d71733ed1da8" args="" -->
4134
<div class="memitem">
4135
<div class="memproto">
4136
<table class="memname">
4138
<td class="memname">const unsigned <a class="el" href="a00116.html#addbf345be3733d5e4575d71733ed1da8">bm::set_word_mask</a> = 0x1Fu</td>
4142
<div class="memdoc">
4144
<p>Definition at line <a class="el" href="a00092_source.html#l00063">63</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
4146
<p>Referenced by <a class="el" href="a00094_source.html#l02974">bit_block_any_range()</a>, <a class="el" href="a00094_source.html#l02905">bit_block_calc_count_range()</a>, <a class="el" href="a00094_source.html#l04320">bit_find_in_block()</a>, <a class="el" href="a00090_source.html#l01105">combine_or()</a>, <a class="el" href="a00090_source.html#l01268">combine_sub()</a>, <a class="el" href="a00090_source.html#l01184">combine_xor()</a>, <a class="el" href="a00088_source.html#l01808">bm::bvector< Alloc, MS >::get_bit()</a>, <a class="el" href="a00094_source.html#l01456">or_bit_block()</a>, <a class="el" href="a00104_source.html#l00237">bm::bvmini< N >::set()</a>, <a class="el" href="a00104_source.html#l00101">bm::miniset< A, N >::set()</a>, <a class="el" href="a00094_source.html#l01426">set_bit()</a>, <a class="el" href="a00094_source.html#l01518">sub_bit_block()</a>, <a class="el" href="a00104_source.html#l00232">bm::bvmini< N >::test()</a>, <a class="el" href="a00104_source.html#l00090">bm::miniset< A, N >::test()</a>, <a class="el" href="a00094_source.html#l01439">test_bit()</a>, and <a class="el" href="a00094_source.html#l01580">xor_bit_block()</a>.</p>
4150
<a class="anchor" id="a83d76bccf6fe3770f32d5ba11d2a37ad"></a><!-- doxytag: member="bm::set_word_shift" ref="a83d76bccf6fe3770f32d5ba11d2a37ad" args="" -->
4151
<div class="memitem">
4152
<div class="memproto">
4153
<table class="memname">
4155
<td class="memname">const unsigned <a class="el" href="a00116.html#a83d76bccf6fe3770f32d5ba11d2a37ad">bm::set_word_shift</a> = 5u</td>
4159
<div class="memdoc">
4161
<p>Definition at line <a class="el" href="a00092_source.html#l00062">62</a> of file <a class="el" href="a00092_source.html">bmconst.h</a>.</p>
4163
<p>Referenced by <a class="el" href="a00094_source.html#l02974">bit_block_any_range()</a>, <a class="el" href="a00094_source.html#l02905">bit_block_calc_count_range()</a>, <a class="el" href="a00094_source.html#l04320">bit_find_in_block()</a>, <a class="el" href="a00090_source.html#l01105">combine_or()</a>, <a class="el" href="a00090_source.html#l01268">combine_sub()</a>, <a class="el" href="a00090_source.html#l01184">combine_xor()</a>, <a class="el" href="a00088_source.html#l01808">bm::bvector< Alloc, MS >::get_bit()</a>, <a class="el" href="a00094_source.html#l01456">or_bit_block()</a>, <a class="el" href="a00104_source.html#l00237">bm::bvmini< N >::set()</a>, <a class="el" href="a00104_source.html#l00101">bm::miniset< A, N >::set()</a>, <a class="el" href="a00094_source.html#l01426">set_bit()</a>, <a class="el" href="a00094_source.html#l01518">sub_bit_block()</a>, <a class="el" href="a00104_source.html#l00232">bm::bvmini< N >::test()</a>, <a class="el" href="a00104_source.html#l00090">bm::miniset< A, N >::test()</a>, <a class="el" href="a00094_source.html#l01439">test_bit()</a>, and <a class="el" href="a00094_source.html#l01580">xor_bit_block()</a>.</p>
4168
<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Mar 23 20:48:12 2010 for BitMagic by
4169
<a href="http://www.doxygen.org/index.html">
4170
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>