29
29
<div class="contents">
30
<h1>bmfunc.h File Reference</h1><code>#include <memory.h></code><br/>
31
<code>#include "<a class="el" href="a00092_source.html">bmdef.h</a>"</code><br/>
32
<code>#include "<a class="el" href="a00102_source.html">bmutil.h</a>"</code><br/>
30
<h1>bmdef.h File Reference</h1><code>#include <cassert></code><br/>
33
31
<div class="dynheader">
34
Include dependency graph for bmfunc.h:</div>
32
Include dependency graph for bmdef.h:</div>
35
33
<div class="dynsection">
36
<div class="center"><img src="a00139.png" border="0" usemap="#bmfunc_8h_map" alt=""/></div>
37
<map name="bmfunc_8h_map" id="bmfunc_8h">
38
<area shape="rect" href="a00092.html" title="bmdef.h" alt="" coords="89,160,156,189"/><area shape="rect" href="a00102.html" title="bmutil.h" alt="" coords="160,83,227,112"/><area shape="rect" href="a00091.html" title="bmconst.h" alt="" coords="180,160,263,189"/></map>
34
<div class="center"><img src="a00138.png" border="0" usemap="#bmdef_8h_map" alt=""/></div>
40
36
<div class="dynheader">
41
37
This graph shows which files directly or indirectly include this file:</div>
42
38
<div class="dynsection">
43
<div class="center"><img src="a00140.png" border="0" usemap="#bmfunc_8hdep_map" alt=""/></div>
44
<map name="bmfunc_8hdep_map" id="bmfunc_8hdep">
45
<area shape="rect" href="a00087.html" title="bm.h" alt="" coords="705,83,756,112"/><area shape="rect" href="a00088.html" title="bmalgo.h" alt="" coords="1101,160,1176,189"/><area shape="rect" href="a00096.html" title="bmserial.h" alt="" coords="5,160,85,189"/><area shape="rect" href="a00095.html" title="bmrandom.h" alt="" coords="1200,160,1293,189"/><area shape="rect" href="a00114.html" title="sample9.cpp" alt="" coords="855,237,951,267"/><area shape="rect" href="a00109.html" title="sample4.cpp" alt="" coords="216,237,312,267"/><area shape="rect" href="a00106.html" title="sample10.cpp" alt="" coords="1104,237,1205,267"/><area shape="rect" href="a00105.html" title="sample1.cpp" alt="" coords="520,160,616,189"/><area shape="rect" href="a00107.html" title="sample2.cpp" alt="" coords="640,160,736,189"/><area shape="rect" href="a00108.html" title="sample3.cpp" alt="" coords="811,160,907,189"/><area shape="rect" href="a00110.html" title="sample5.cpp" alt="" coords="931,160,1027,189"/><area shape="rect" href="a00111.html" title="sample6.cpp" alt="" coords="109,160,205,189"/><area shape="rect" href="a00112.html" title="sample7.cpp" alt="" coords="229,160,325,189"/><area shape="rect" href="a00113.html" title="sample8.cpp" alt="" coords="349,160,445,189"/></map>
39
<div class="center"><img src="a00139.png" border="0" usemap="#bmdef_8hdep_map" alt=""/></div>
40
<map name="bmdef_8hdep_map" id="bmdef_8hdep">
41
<area shape="rect" href="a00088.html" title="bm.h" alt="" coords="727,237,777,267"/><area shape="rect" href="a00089.html" title="bmalgo.h" alt="" coords="1115,315,1189,344"/><area shape="rect" href="a00097.html" title="bmserial.h" alt="" coords="1213,315,1293,344"/><area shape="rect" href="a00096.html" title="bmrandom.h" alt="" coords="5,315,99,344"/><area shape="rect" href="a00094.html" title="bmfunc.h" alt="" coords="939,160,1013,189"/><area shape="rect" href="a00099.html" title="bmsse4.h" alt="" coords="787,160,864,189"/><area shape="rect" href="a00098.html" title="bmsse2.h" alt="" coords="1080,83,1157,112"/><area shape="rect" href="a00090.html" title="bmalgo_impl.h" alt="" coords="1064,237,1168,267"/><area shape="rect" href="a00103.html" title="bmutil.h" alt="" coords="989,83,1056,112"/><area shape="rect" href="a00115.html" title="sample9.cpp" alt="" coords="177,392,273,421"/><area shape="rect" href="a00110.html" title="sample4.cpp" alt="" coords="1117,392,1213,421"/><area shape="rect" href="a00107.html" title="sample10.cpp" alt="" coords="47,392,148,421"/><area shape="rect" href="a00106.html" title="sample1.cpp" alt="" coords="224,315,320,344"/><area shape="rect" href="a00108.html" title="sample2.cpp" alt="" coords="344,315,440,344"/><area shape="rect" href="a00109.html" title="sample3.cpp" alt="" coords="464,315,560,344"/><area shape="rect" href="a00111.html" title="sample5.cpp" alt="" coords="584,315,680,344"/><area shape="rect" href="a00112.html" title="sample6.cpp" alt="" coords="704,315,800,344"/><area shape="rect" href="a00113.html" title="sample7.cpp" alt="" coords="824,315,920,344"/><area shape="rect" href="a00114.html" title="sample8.cpp" alt="" coords="944,315,1040,344"/><area shape="rect" href="a00105.html" title="encoding.h" alt="" coords="1037,160,1120,189"/></map>
48
44
<p><a href="a00093_source.html">Go to the source code of this file.</a></p>
49
45
<table border="0" cellpadding="0" cellspacing="0">
50
<tr><td colspan="2"><h2>Data Structures</h2></td></tr>
51
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00043.html">bm::bv_statistics</a></td></tr>
52
<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>
53
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00067.html">bm::gap_len_table< T ></a></td></tr>
54
<tr><td class="mdescLeft"> </td><td class="mdescRight">Default GAP lengths table. <a href="a00067.html#_details">More...</a><br/></td></tr>
55
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00068.html">bm::gap_len_table_min< T ></a></td></tr>
56
<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>
57
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00041.html">bm::block_set_table< T ></a></td></tr>
58
<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>
59
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00012.html">bm::all_set< T ></a></td></tr>
60
<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>
61
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00013.html">bm::all_set< T >::all_set_block</a></td></tr>
62
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00011.html">bm::_copyright< T ></a></td></tr>
63
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internal structure. <a href="a00011.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="a00070.html">bm::globals< T ></a></td></tr>
65
<tr><td class="mdescLeft"> </td><td class="mdescRight">Internal structure. <a href="a00070.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="a00042.html">bm::globals< T >::bo</a></td></tr>
67
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00050.html">bm::d_copy_func< T ></a></td></tr>
68
<tr><td class="mdescLeft"> </td><td class="mdescRight">d-Gap copy functor <a href="a00050.html#_details">More...</a><br/></td></tr>
69
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00047.html">bm::copy_to_array_functor< B ></a></td></tr>
70
<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>
71
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html">bm::copy_to_array_functor_inc< B ></a></td></tr>
72
<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>
73
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00036.html">bm::bitblock_get_adapter</a></td></tr>
74
<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>
75
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00037.html">bm::bitblock_store_adapter</a></td></tr>
76
<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>
77
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00038.html">bm::bitblock_sum_adapter</a></td></tr>
78
<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>
79
<tr><td class="memItemLeft" align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00057.html">bm::decoder_range_adapter< DEC ></a></td></tr>
80
<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>
81
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00014.html">bm::bit_AND< W ></a></td></tr>
82
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit AND functor. <a href="a00014.html#_details">More...</a><br/></td></tr>
83
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00030.html">bm::bit_OR< W ></a></td></tr>
84
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit OR functor. <a href="a00030.html#_details">More...</a><br/></td></tr>
85
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00032.html">bm::bit_SUB< W ></a></td></tr>
86
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit SUB functor. <a href="a00032.html#_details">More...</a><br/></td></tr>
87
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00034.html">bm::bit_XOR< W ></a></td></tr>
88
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit XOR functor. <a href="a00034.html#_details">More...</a><br/></td></tr>
89
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00015.html">bm::bit_ASSIGN< W ></a></td></tr>
90
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit ASSIGN functor. <a href="a00015.html#_details">More...</a><br/></td></tr>
91
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00016.html">bm::bit_COUNT< W ></a></td></tr>
92
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit COUNT functor. <a href="a00016.html#_details">More...</a><br/></td></tr>
93
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00018.html">bm::bit_COUNT_AND< W ></a></td></tr>
94
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit COUNT AND functor. <a href="a00018.html#_details">More...</a><br/></td></tr>
95
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00024.html">bm::bit_COUNT_XOR< W ></a></td></tr>
96
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit COUNT XOR functor. <a href="a00024.html#_details">More...</a><br/></td></tr>
97
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00020.html">bm::bit_COUNT_OR< W ></a></td></tr>
98
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit COUNT OR functor. <a href="a00020.html#_details">More...</a><br/></td></tr>
99
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00021.html">bm::bit_COUNT_SUB_AB< W ></a></td></tr>
100
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit COUNT SUB AB functor. <a href="a00021.html#_details">More...</a><br/></td></tr>
101
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00022.html">bm::bit_COUNT_SUB_BA< W ></a></td></tr>
102
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit SUB BA functor. <a href="a00022.html#_details">More...</a><br/></td></tr>
103
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00017.html">bm::bit_COUNT_A< W ></a></td></tr>
104
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit COUNT A functor. <a href="a00017.html#_details">More...</a><br/></td></tr>
105
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00019.html">bm::bit_COUNT_B< W ></a></td></tr>
106
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bit COUNT B functor. <a href="a00019.html#_details">More...</a><br/></td></tr>
107
<tr><td class="memItemLeft" align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00077.html">bm::operation_functions< T ></a></td></tr>
108
<tr><td colspan="2"><h2>Namespaces</h2></td></tr>
109
<tr><td class="memItemLeft" align="right" valign="top">namespace </td><td class="memItemRight" valign="bottom"><a class="el" href="a00115.html">bm</a></td></tr>
110
<tr><td colspan="2"><h2>Typedefs</h2></td></tr>
111
<tr><td class="memItemLeft" align="right" valign="top">typedef void(* </td><td class="memItemRight" valign="bottom"><a class="el" href="a00115.html#a18a8f03b151ca3a6d5e39e7709fb6c7c">bm::gap_operation_to_bitset_func_type</a> )(unsigned *, const gap_word_t *)</td></tr>
112
<tr><td class="memItemLeft" align="right" valign="top">typedef gap_word_t *(* </td><td class="memItemRight" valign="bottom"><a class="el" href="a00115.html#a8402de852093e5b23b5825f1974b9c12">bm::gap_operation_func_type</a> )(const gap_word_t *BMRESTRICT, const gap_word_t *BMRESTRICT, gap_word_t *BMRESTRICT, unsigned &)</td></tr>
113
<tr><td class="memItemLeft" align="right" valign="top">typedef <a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a>(* </td><td class="memItemRight" valign="bottom"><a class="el" href="a00115.html#ad93f96a77f223240b8c6b8f81c5db840">bm::bit_operation_count_func_type</a> )(const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT)</td></tr>
114
<tr><td colspan="2"><h2>Enumerations</h2></td></tr>
115
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00115.html#a76b70d2b9182a6dcac151d1bd9ec6109">bm::set_operation</a> { <br/>
116
<a class="el" href="a00115.html#a76b70d2b9182a6dcac151d1bd9ec6109a949fba4d9b152e1cbba9a450e05e21a3">bm::set_AND</a> = 0,
117
<a class="el" href="a00115.html#a76b70d2b9182a6dcac151d1bd9ec6109a05d88a2639cbd3d2ac63436df3ed6780">bm::set_OR</a> = 1,
118
<a class="el" href="a00115.html#a76b70d2b9182a6dcac151d1bd9ec6109a348f23af148237ac49194815b222b769">bm::set_SUB</a> = 2,
119
<a class="el" href="a00115.html#a76b70d2b9182a6dcac151d1bd9ec6109ab823123a0d630167532a96be004e6304">bm::set_XOR</a> = 3,
121
<a class="el" href="a00115.html#a76b70d2b9182a6dcac151d1bd9ec6109a34150dd6a8ac2e70b887565bd1c3f788">bm::set_ASSIGN</a> = 4,
122
<a class="el" href="a00115.html#a76b70d2b9182a6dcac151d1bd9ec6109a3f165b7944e33214e8721aaf2eb8378e">bm::set_COUNT</a> = 5,
123
<a class="el" href="a00115.html#a76b70d2b9182a6dcac151d1bd9ec6109a378be4b14cee6a341e859fd3157ab959">bm::set_COUNT_AND</a> = 6,
124
<a class="el" href="a00115.html#a76b70d2b9182a6dcac151d1bd9ec6109a1373054e4f243dffb762a55b8a8bfe4c">bm::set_COUNT_XOR</a> = 7,
126
<a class="el" href="a00115.html#a76b70d2b9182a6dcac151d1bd9ec6109a27e34c148d06e3d8a405482d820cd7fb">bm::set_COUNT_OR</a> = 8,
127
<a class="el" href="a00115.html#a76b70d2b9182a6dcac151d1bd9ec6109a0028cc7084b37fe66ce5ae459b93b7f1">bm::set_COUNT_SUB_AB</a> = 9,
128
<a class="el" href="a00115.html#a76b70d2b9182a6dcac151d1bd9ec6109a2f7b894c11c058598d02722a7eeef03b">bm::set_COUNT_SUB_BA</a> = 10,
129
<a class="el" href="a00115.html#a76b70d2b9182a6dcac151d1bd9ec6109abafe8a971864164aeec7f43d1205ed29">bm::set_COUNT_A</a> = 11,
131
<a class="el" href="a00115.html#a76b70d2b9182a6dcac151d1bd9ec6109a2ac4eb7f41d00f8387d5dd3ffb9d0617">bm::set_COUNT_B</a> = 12,
132
<a class="el" href="a00115.html#a76b70d2b9182a6dcac151d1bd9ec6109ad894d257a23664720dbf4155153a1e5c">bm::set_END</a>
135
<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Nomenclature of set operations. </p>
136
<a href="a00115.html#a76b70d2b9182a6dcac151d1bd9ec6109">More...</a><br/></td></tr>
137
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00115.html#a42405343976ec931388381cea4092bf1">bm::operation</a> { <a class="el" href="a00115.html#a42405343976ec931388381cea4092bf1a546fdf33b301e5b9bee0591522ed9250">bm::BM_AND</a> = set_AND,
138
<a class="el" href="a00115.html#a42405343976ec931388381cea4092bf1a0c8cf0197857d0bd73a63037e2f2c5c5">bm::BM_OR</a> = set_OR,
139
<a class="el" href="a00115.html#a42405343976ec931388381cea4092bf1a1df0f4de7126bb2f7ce69d7a005affb5">bm::BM_SUB</a> = set_SUB,
140
<a class="el" href="a00115.html#a42405343976ec931388381cea4092bf1a45c2fe36efb72dc03f03a842d253f64c">bm::BM_XOR</a> = set_XOR
142
<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Bit operations enumeration. </p>
143
<a href="a00115.html#a42405343976ec931388381cea4092bf1">More...</a><br/></td></tr>
144
<tr><td class="memItemLeft" align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00115.html#a577905b348676c2bc556b51793350dbb">bm::ByteOrder</a> { <a class="el" href="a00115.html#a577905b348676c2bc556b51793350dbbac959b97503c42581f3dd81fd3b93fff2">bm::BigEndian</a> = 0,
145
<a class="el" href="a00115.html#a577905b348676c2bc556b51793350dbba5ebe266b6d18ee74483c2bbf624e2cc2">bm::LittleEndian</a> = 1
147
<tr><td class="mdescLeft"> </td><td class="mdescRight"><p>Byte orders recognized by the library. </p>
148
<a href="a00115.html#a577905b348676c2bc556b51793350dbb">More...</a><br/></td></tr>
149
<tr><td colspan="2"><h2>Functions</h2></td></tr>
150
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE <a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gaef40342b0c318391df3db2b891acf7c1">bm::word_bitcount</a> (<a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> w)</td></tr>
151
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00115.html#a30cec2c137813460f4b4c65c5879a4c3">bm::parallel_popcnt_32</a> (unsigned int n)</td></tr>
152
<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00115.html#a3deb310cdf11bca948817f94adfec160">bm::is_const_set_operation</a> (set_operation op)</td></tr>
153
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns true if set operation is constant (bitcount). <a href="#a3deb310cdf11bca948817f94adfec160"></a><br/></td></tr>
154
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#a42405343976ec931388381cea4092bf1">bm::operation</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00115.html#a7c192b64adb0590a09b5c2dad77c4b76">bm::setop2op</a> (<a class="el" href="a00115.html#a76b70d2b9182a6dcac151d1bd9ec6109">bm::set_operation</a> op)</td></tr>
155
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert set operation to operation. <a href="#a7c192b64adb0590a09b5c2dad77c4b76"></a><br/></td></tr>
156
<tr><td class="memTemplParams" colspan="2">template<typename W > </td></tr>
157
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00115.html#afb2c1acc56270abb381741a709a2b17c">bm::xor_swap</a> (W &x, W &y)</td></tr>
158
<tr><td class="mdescLeft"> </td><td class="mdescRight">XOR swap two scalar variables. <a href="#afb2c1acc56270abb381741a709a2b17c"></a><br/></td></tr>
159
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
160
<tr><td class="memTemplItemLeft" align="right" valign="top">int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#gafee2e8361c2e90a67dbaf9c7559d50e4">bm::wordcmp0</a> (T w1, T w2)</td></tr>
161
<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="a00120.html#gafee2e8361c2e90a67dbaf9c7559d50e4"></a><br/></td></tr>
162
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
163
<tr><td class="memTemplItemLeft" align="right" valign="top">int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga5847533a73b7a5125fe5c2888ec827bd">bm::wordcmp</a> (T a, T b)</td></tr>
164
<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="a00120.html#ga5847533a73b7a5125fe5c2888ec827bd"></a><br/></td></tr>
165
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
166
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00115.html#acebed8b533c2c9e17167617501477693">bm::gap_bfind</a> (const T *buf, unsigned pos, unsigned *is_set)</td></tr>
167
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
168
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga866352ef5986a7d2b709795d127b666b">bm::gap_test</a> (const T *buf, unsigned pos)</td></tr>
169
<tr><td class="mdescLeft"> </td><td class="mdescRight">Tests if bit = pos is true. <a href="a00119.html#ga866352ef5986a7d2b709795d127b666b"></a><br/></td></tr>
170
<tr><td class="memTemplParams" colspan="2">template<class T , class F > </td></tr>
171
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00115.html#ae8b342c25dc22d6cd26cb96d7ae796db">bm::for_each_nzblock</a> (T ***root, unsigned size1, unsigned size2, F &f)</td></tr>
172
<tr><td class="memTemplParams" colspan="2">template<class T , class F > </td></tr>
173
<tr><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00115.html#a6f5cb8cbb105eae84d4b0f8a3bc1230f">bm::for_each_nzblock_if</a> (T ***root, unsigned size1, unsigned size2, F &f)</td></tr>
174
<tr><td class="memTemplParams" colspan="2">template<class T , class F > </td></tr>
175
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00115.html#a86742a3e17527be5a9743f26b36a7691">bm::for_each_block</a> (T ***root, unsigned size1, unsigned size2, F &f)</td></tr>
176
<tr><td class="memTemplParams" colspan="2">template<class T , class F > </td></tr>
177
<tr><td class="memTemplItemLeft" align="right" valign="top">F </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00115.html#abf587377ca70f11b8eb75f95494830b5">bm::bmfor_each</a> (T first, T last, F f)</td></tr>
178
<tr><td class="memTemplParams" colspan="2">template<class T > </td></tr>
179
<tr><td class="memTemplItemLeft" align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00115.html#ac8f3443ba8fcd1b28face4b09dfd21bf">bm::sum_arr</a> (T *first, T *last)</td></tr>
180
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
181
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga570a6f573ffb9ac9e41a688d2bdc6004">bm::gap_bit_count</a> (const T *buf, unsigned dsize=0)</td></tr>
182
<tr><td class="mdescLeft"> </td><td class="mdescRight">Calculates number of bits ON in GAP buffer. <a href="a00119.html#ga570a6f573ffb9ac9e41a688d2bdc6004"></a><br/></td></tr>
183
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
184
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00115.html#a7324ebded429e15361f62117a2ff18d1">bm::gap_bit_count_range</a> (const T *buf, T left, T right)</td></tr>
185
<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>
186
<tr><td class="memTemplParams" colspan="2">template<class T , class Func > </td></tr>
187
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00115.html#a6a7bfe8af49ed785f0e96c7ca37a2155">bm::for_each_dgap</a> (const T *gap_buf, Func &func)</td></tr>
188
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
189
<tr><td class="memTemplItemLeft" align="right" valign="top">T * </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00115.html#afa6ea0cce0cdd88738a01fad393376b3">bm::gap_2_dgap</a> (const T *gap_buf, T *dgap_buf, bool copy_head=true)</td></tr>
190
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert GAP buffer into D-GAP buffer. <a href="#afa6ea0cce0cdd88738a01fad393376b3"></a><br/></td></tr>
191
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
192
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00115.html#a528894002dcd8edda28c8fb2b0aa8c64">bm::dgap_2_gap</a> (const T *dgap_buf, T *gap_buf, T gap_header=0)</td></tr>
193
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert D-GAP buffer into GAP buffer. <a href="#a528894002dcd8edda28c8fb2b0aa8c64"></a><br/></td></tr>
194
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
195
<tr><td class="memTemplItemLeft" align="right" valign="top">int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga406952734f1b05962941b32e37b3eb96">bm::gapcmp</a> (const T *buf1, const T *buf2)</td></tr>
196
<tr><td class="mdescLeft"> </td><td class="mdescRight">Lexicographical comparison of GAP buffers. <a href="a00119.html#ga406952734f1b05962941b32e37b3eb96"></a><br/></td></tr>
197
<tr><td class="memTemplParams" colspan="2">template<typename T , class F > </td></tr>
198
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00115.html#aac0daaac2b5a7c88e6be726c77f52c68">bm::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>
199
<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>
200
<tr><td class="memTemplParams" colspan="2">template<typename T , class F > </td></tr>
201
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga5e3123c3c9d3587f470abdbe6c8c3ad3">bm::gap_buff_any_op</a> (const T *BMRESTRICT vect1, unsigned vect1_mask, const T *BMRESTRICT vect2, unsigned vect2_mask, F f)</td></tr>
202
<tr><td class="mdescLeft"> </td><td class="mdescRight">Abstract distance test operation for GAP buffers. Receives functor F as a template argument. <a href="a00119.html#ga5e3123c3c9d3587f470abdbe6c8c3ad3"></a><br/></td></tr>
203
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
204
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga69186bd13bda27e04b3e33683ff884c2">bm::gap_set_value</a> (unsigned val, T *BMRESTRICT buf, unsigned pos, unsigned *BMRESTRICT is_set)</td></tr>
205
<tr><td class="mdescLeft"> </td><td class="mdescRight">Abstract distance(similarity) operation for GAP buffers. Receives functor F as a template argument. <a href="a00119.html#ga69186bd13bda27e04b3e33683ff884c2"></a><br/></td></tr>
206
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
207
<tr><td class="memTemplItemLeft" align="right" valign="top">int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#gaa7df7193094353ea24b8519debf745be">bm::gap_find_in_block</a> (const T *buf, unsigned nbit, <a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> *prev)</td></tr>
208
<tr><td class="mdescLeft"> </td><td class="mdescRight">Searches for the next 1 bit in the GAP block. <a href="a00119.html#gaa7df7193094353ea24b8519debf745be"></a><br/></td></tr>
209
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga2becf9a16ec20ab124ca8938e34b4aa8">bm::set_bit</a> (unsigned *dest, unsigned bitpos)</td></tr>
210
<tr><td class="mdescLeft"> </td><td class="mdescRight">Set 1 bit in a block. <a href="a00120.html#ga2becf9a16ec20ab124ca8938e34b4aa8"></a><br/></td></tr>
211
<tr><td class="memItemLeft" align="right" valign="top">BMFORCEINLINE unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga9bccc586aa791f98f1bec284b799102c">bm::test_bit</a> (const unsigned *block, unsigned bitpos)</td></tr>
212
<tr><td class="mdescLeft"> </td><td class="mdescRight">Test 1 bit in a block. <a href="a00120.html#ga9bccc586aa791f98f1bec284b799102c"></a><br/></td></tr>
213
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gad698b5242f5b629aa28e7338b7150497">bm::or_bit_block</a> (unsigned *dest, unsigned bitpos, unsigned bitcount)</td></tr>
214
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets bits to 1 in the bitblock. <a href="a00120.html#gad698b5242f5b629aa28e7338b7150497"></a><br/></td></tr>
215
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gaceaa54aa59b16299f5a87b925715e5e8">bm::sub_bit_block</a> (unsigned *dest, unsigned bitpos, unsigned bitcount)</td></tr>
216
<tr><td class="mdescLeft"> </td><td class="mdescRight">SUB (AND NOT) bit interval to 1 in the bitblock. <a href="a00120.html#gaceaa54aa59b16299f5a87b925715e5e8"></a><br/></td></tr>
217
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga6191abb017003b633fab24e0c6357521">bm::xor_bit_block</a> (unsigned *dest, unsigned bitpos, unsigned bitcount)</td></tr>
218
<tr><td class="mdescLeft"> </td><td class="mdescRight">XOR bit interval to 1 in the bitblock. <a href="a00120.html#ga6191abb017003b633fab24e0c6357521"></a><br/></td></tr>
219
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
220
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga08e0ae8b2fd5869aa31cfad7d47177c4">bm::gap_sub_to_bitset</a> (unsigned *dest, const T *buf)</td></tr>
221
<tr><td class="mdescLeft"> </td><td class="mdescRight">SUB (AND NOT) GAP block to bitblock. <a href="a00119.html#ga08e0ae8b2fd5869aa31cfad7d47177c4"></a><br/></td></tr>
222
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
223
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#gab939656d4ea54fd3868aa236cdb20b82">bm::gap_xor_to_bitset</a> (unsigned *dest, const T *buf)</td></tr>
224
<tr><td class="mdescLeft"> </td><td class="mdescRight">XOR GAP block to bitblock. <a href="a00119.html#gab939656d4ea54fd3868aa236cdb20b82"></a><br/></td></tr>
225
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
226
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga12615cd62f2e5367e1bc688d00a2188f">bm::gap_add_to_bitset</a> (unsigned *dest, const T *buf)</td></tr>
227
<tr><td class="mdescLeft"> </td><td class="mdescRight">Adds(OR) GAP block to bitblock. <a href="a00119.html#ga12615cd62f2e5367e1bc688d00a2188f"></a><br/></td></tr>
228
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
229
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#gafe6f72a009618290eeab3cddee869543">bm::gap_and_to_bitset</a> (unsigned *dest, const T *buf)</td></tr>
230
<tr><td class="mdescLeft"> </td><td class="mdescRight">ANDs GAP block to bitblock. <a href="a00119.html#gafe6f72a009618290eeab3cddee869543"></a><br/></td></tr>
231
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
232
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#gab87384cbf46a04d86c008ab2463d02cc">bm::gap_bitset_and_count</a> (const unsigned *block, const T *buf)</td></tr>
233
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute bitcount of bit block AND masked by GAP block. <a href="a00120.html#gab87384cbf46a04d86c008ab2463d02cc"></a><br/></td></tr>
234
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
235
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#gad6e40898b8836ae1923b06a3d028fcaa">bm::gap_bitset_and_any</a> (const unsigned *block, const T *buf)</td></tr>
236
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bitcount test of bit block AND masked by GAP block. <a href="a00120.html#gad6e40898b8836ae1923b06a3d028fcaa"></a><br/></td></tr>
237
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
238
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga15a780da58d5aeb67ffc51c84fa6152e">bm::gap_bitset_sub_count</a> (const unsigned *block, const T *buf)</td></tr>
239
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute bitcount of bit block SUB masked by GAP block. <a href="a00120.html#ga15a780da58d5aeb67ffc51c84fa6152e"></a><br/></td></tr>
240
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
241
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#gaab7c711122e8f189555dffd83a21111c">bm::gap_bitset_sub_any</a> (const unsigned *block, const T *buf)</td></tr>
242
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute bitcount test of bit block SUB masked by GAP block. <a href="a00120.html#gaab7c711122e8f189555dffd83a21111c"></a><br/></td></tr>
243
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
244
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga803fbc7c790f07b14175303e524bd2d8">bm::gap_bitset_xor_count</a> (const unsigned *block, const T *buf)</td></tr>
245
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute bitcount of bit block XOR masked by GAP block. <a href="a00120.html#ga803fbc7c790f07b14175303e524bd2d8"></a><br/></td></tr>
246
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
247
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#gad0f7ee00f84ea357d55e6a2f507c8918">bm::gap_bitset_xor_any</a> (const unsigned *block, const T *buf)</td></tr>
248
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute bitcount test of bit block XOR masked by GAP block. <a href="a00120.html#gad0f7ee00f84ea357d55e6a2f507c8918"></a><br/></td></tr>
249
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
250
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga23733890861063a59f787e26763a734a">bm::gap_bitset_or_count</a> (const unsigned *block, const T *buf)</td></tr>
251
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute bitcount of bit block OR masked by GAP block. <a href="a00120.html#ga23733890861063a59f787e26763a734a"></a><br/></td></tr>
252
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
253
<tr><td class="memTemplItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#gad15f1b92c70752cd3b97fa9e0c585f00">bm::gap_bitset_or_any</a> (const unsigned *block, const T *buf)</td></tr>
254
<tr><td class="mdescLeft"> </td><td class="mdescRight">Compute bitcount test of bit block OR masked by GAP block. <a href="a00120.html#gad15f1b92c70752cd3b97fa9e0c585f00"></a><br/></td></tr>
255
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gaada8b13c35acd8df90129b45edcfc5de">bm::bit_block_set</a> (<a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT dst, <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> value)</td></tr>
256
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bitblock memset operation. <a href="a00120.html#gaada8b13c35acd8df90129b45edcfc5de"></a><br/></td></tr>
257
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
258
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga4862f4dcdcb7c0575e2e2db9e5f2a849">bm::gap_convert_to_bitset</a> (unsigned *dest, const T *buf)</td></tr>
259
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP block to bitblock conversion. <a href="a00119.html#ga4862f4dcdcb7c0575e2e2db9e5f2a849"></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">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga9bb80c42ee0ecf8f2af8250d7f5d327b">bm::gap_convert_to_bitset</a> (unsigned *dest, const T *buf, unsigned dest_len)</td></tr>
262
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP block to bitblock conversion. <a href="a00119.html#ga9bb80c42ee0ecf8f2af8250d7f5d327b"></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">unsigned * </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga3f01bb7c1ae7983aa8c4ba82e1e3f54c">bm::gap_convert_to_bitset_smart</a> (unsigned *dest, const T *buf, id_t set_max)</td></tr>
265
<tr><td class="mdescLeft"> </td><td class="mdescRight">Smart GAP block to bitblock conversion. <a href="a00119.html#ga3f01bb7c1ae7983aa8c4ba82e1e3f54c"></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="a00119.html#ga14d29338ffd1387758810b3f9e3a72c6">bm::gap_control_sum</a> (const T *buf)</td></tr>
268
<tr><td class="mdescLeft"> </td><td class="mdescRight">Calculates sum of all words in GAP block. (For debugging purposes). <a href="a00119.html#ga14d29338ffd1387758810b3f9e3a72c6"></a><br/></td></tr>
269
<tr><td class="memTemplParams" colspan="2">template<class T > </td></tr>
270
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#gaef53b2877ff369badd7bb25b26bb9029">bm::gap_set_all</a> (T *buf, unsigned set_max, unsigned value)</td></tr>
271
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets all bits to 0 or 1 (GAP). <a href="a00119.html#gaef53b2877ff369badd7bb25b26bb9029"></a><br/></td></tr>
272
<tr><td class="memTemplParams" colspan="2">template<class T > </td></tr>
273
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga5d49355eb9dd7947699e20f3a2a75ef5">bm::gap_init_range_block</a> (T *buf, unsigned from, unsigned to, unsigned value, unsigned set_max)</td></tr>
274
<tr><td class="mdescLeft"> </td><td class="mdescRight">Init gap block so it has block in it (can be whole block). <a href="a00119.html#ga5d49355eb9dd7947699e20f3a2a75ef5"></a><br/></td></tr>
275
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
276
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga3f22bfde5dfe06d6d77dc2598b8c0845">bm::gap_invert</a> (T *buf)</td></tr>
277
<tr><td class="mdescLeft"> </td><td class="mdescRight">Inverts all bits in the GAP buffer. <a href="a00119.html#ga3f22bfde5dfe06d6d77dc2598b8c0845"></a><br/></td></tr>
278
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
279
<tr><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga690ff7c8b16e1821a77663b7194267e7">bm::gap_is_all_zero</a> (const T *buf, unsigned set_max)</td></tr>
280
<tr><td class="mdescLeft"> </td><td class="mdescRight">Temporary inverts all bits in the GAP buffer. <a href="a00119.html#ga690ff7c8b16e1821a77663b7194267e7"></a><br/></td></tr>
281
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
282
<tr><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga1427d43e91872f981c6311fa76ab5633">bm::gap_is_all_one</a> (const T *buf, unsigned set_max)</td></tr>
283
<tr><td class="mdescLeft"> </td><td class="mdescRight">Checks if GAP block is all-one. <a href="a00119.html#ga1427d43e91872f981c6311fa76ab5633"></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="a00119.html#gad6bfb9da9950b0df8983a9faf9db5042">bm::gap_length</a> (const T *buf)</td></tr>
286
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returs GAP block length. <a href="a00119.html#gad6bfb9da9950b0df8983a9faf9db5042"></a><br/></td></tr>
287
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
288
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga0419ed06e2f0b7891e7d721546f5fb45">bm::gap_capacity</a> (const T *buf, const T *glevel_len)</td></tr>
289
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returs GAP block capacity. <a href="a00119.html#ga0419ed06e2f0b7891e7d721546f5fb45"></a><br/></td></tr>
290
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
291
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga94a5371b5dc6a1560d95d7c2dde88815">bm::gap_limit</a> (const T *buf, const T *glevel_len)</td></tr>
292
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returs GAP block capacity limit. <a href="a00119.html#ga94a5371b5dc6a1560d95d7c2dde88815"></a><br/></td></tr>
293
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
294
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga1defe73aa4227a0e7204363ac6bb1ac1">bm::gap_level</a> (const T *buf)</td></tr>
295
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returs GAP blocks capacity level. <a href="a00119.html#ga1defe73aa4227a0e7204363ac6bb1ac1"></a><br/></td></tr>
296
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
297
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga501aa9bf029e7f9ea9518e7003fe5549">bm::set_gap_level</a> (T *buf, unsigned level)</td></tr>
298
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets GAP block capacity level. <a href="a00119.html#ga501aa9bf029e7f9ea9518e7003fe5549"></a><br/></td></tr>
299
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
300
<tr><td class="memTemplItemLeft" align="right" valign="top">int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga3bfaebeeb4b2d479c5a9ac9d57607165">bm::gap_calc_level</a> (int len, const T *glevel_len)</td></tr>
301
<tr><td class="mdescLeft"> </td><td class="mdescRight">Calculates GAP block capacity level. <a href="a00119.html#ga3bfaebeeb4b2d479c5a9ac9d57607165"></a><br/></td></tr>
302
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
303
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#gafd76869eb44fac688da5e26e0e74f41f">bm::gap_free_elements</a> (const T *buf, const T *glevel_len)</td></tr>
304
<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="a00119.html#gafd76869eb44fac688da5e26e0e74f41f"></a><br/></td></tr>
305
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
306
<tr><td class="memTemplItemLeft" align="right" valign="top">int </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga91fe9566575d9d66e1bb9d030b3d29a0">bm::bitcmp</a> (const T *buf1, const T *buf2, unsigned len)</td></tr>
307
<tr><td class="mdescLeft"> </td><td class="mdescRight">Lexicographical comparison of BIT buffers. <a href="a00120.html#ga91fe9566575d9d66e1bb9d030b3d29a0"></a><br/></td></tr>
308
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
309
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga80d09bb6ab244e68ab0c1fdccc17b95b">bm::bit_convert_to_gap</a> (T *BMRESTRICT dest, const unsigned *BMRESTRICT src, <a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bits, unsigned dest_len)</td></tr>
310
<tr><td class="mdescLeft"> </td><td class="mdescRight">Converts bit block to GAP. <a href="a00119.html#ga80d09bb6ab244e68ab0c1fdccc17b95b"></a><br/></td></tr>
311
<tr><td class="memTemplParams" colspan="2">template<class T , class F > </td></tr>
312
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga11bc26da8533752bb23756632fd30a00">bm::for_each_gap_dbit</a> (const T *buf, F &func)</td></tr>
313
<tr><td class="mdescLeft"> </td><td class="mdescRight">Iterate gap block as delta-bits with a functor. <a href="a00119.html#ga11bc26da8533752bb23756632fd30a00"></a><br/></td></tr>
314
<tr><td class="memTemplParams" colspan="2">template<typename D , typename T > </td></tr>
315
<tr><td class="memTemplItemLeft" align="right" valign="top">D </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga5cd7e0cfee401da1b8f702151c083b27">bm::gap_convert_to_arr</a> (D *BMRESTRICT dest, const T *BMRESTRICT buf, unsigned dest_len, bool invert=false)</td></tr>
316
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert gap block into array of ints corresponding to 1 bits. <a href="a00119.html#ga5cd7e0cfee401da1b8f702151c083b27"></a><br/></td></tr>
317
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gab30df14a61f036d690c091878feaff1c">bm::bit_block_calc_count</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *block, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *block_end)</td></tr>
318
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bitcount for bit string. <a href="a00120.html#gab30df14a61f036d690c091878feaff1c"></a><br/></td></tr>
319
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gaafc87c4764bb30d95ba4088064a404e3">bm::bit_count_change</a> (<a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> w)</td></tr>
320
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00115.html#ae2222be6fd45b4bab5100ce70e3b4f88">bm::bit_count_change32</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *block, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *block_end, unsigned *bit_count, unsigned *gap_count)</td></tr>
321
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gaca91016aeb08ae1b610d6d407aae0e4c">bm::bit_block_calc_count_change</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *block, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *block_end, unsigned *bit_count)</td></tr>
322
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga2485f707b2629c5ce7681cf9fe385b91">bm::bit_block_calc_count_range</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *block, <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> left, <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> right)</td></tr>
323
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga503e0f3e79f819d9b58e4b0e905be116">bm::bit_block_any_range</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *block, <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> left, <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> right)</td></tr>
324
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
325
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga95854f9969985254a0f58b928da0eec6">bm::bit_invert</a> (T *start, T *end)</td></tr>
326
<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga97b1075250d4bf10f596ff2fbc334ceb">bm::is_bits_one</a> (const <a class="el" href="a00115.html#a7176bf7817550ca24cb6612bd8d7957d">bm::wordop_t</a> *start, const <a class="el" href="a00115.html#a7176bf7817550ca24cb6612bd8d7957d">bm::wordop_t</a> *end)</td></tr>
327
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns "true" if all bits in the block are 1. <a href="a00120.html#ga97b1075250d4bf10f596ff2fbc334ceb"></a><br/></td></tr>
328
<tr><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gac6cfb9f92e4df6bb4c76f6efb2382860">bm::bit_is_all_zero</a> (const <a class="el" href="a00115.html#a7176bf7817550ca24cb6612bd8d7957d">bm::wordop_t</a> *start, const <a class="el" href="a00115.html#a7176bf7817550ca24cb6612bd8d7957d">bm::wordop_t</a> *end)</td></tr>
329
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns "true" if all bits in the block are 0. <a href="a00120.html#gac6cfb9f92e4df6bb4c76f6efb2382860"></a><br/></td></tr>
330
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00115.html#ae081940471455763a912a94783833316">bm::and_op</a> (unsigned v1, unsigned v2)</td></tr>
331
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP and functor. <a href="#ae081940471455763a912a94783833316"></a><br/></td></tr>
332
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00115.html#a2e0675b3474db845b3d5910ce81e6868">bm::xor_op</a> (unsigned v1, unsigned v2)</td></tr>
333
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP xor functor. <a href="#a2e0675b3474db845b3d5910ce81e6868"></a><br/></td></tr>
334
<tr><td class="memItemLeft" align="right" valign="top">gap_word_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#ga1666464d22f7fd473db9aafcf2f77a63">bm::gap_operation_and</a> (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2, gap_word_t *BMRESTRICT tmp_buf, unsigned &dsize)</td></tr>
335
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP AND operation. <a href="a00119.html#ga1666464d22f7fd473db9aafcf2f77a63"></a><br/></td></tr>
336
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#gafb24a1e2588c5670df6facc537594d9d">bm::gap_operation_any_and</a> (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2)</td></tr>
337
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP AND operation test. <a href="a00119.html#gafb24a1e2588c5670df6facc537594d9d"></a><br/></td></tr>
338
<tr><td class="memItemLeft" align="right" valign="top">gap_word_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#gaa5e07ad0256bf784ad3397acbbd23bb2">bm::gap_operation_xor</a> (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2, gap_word_t *BMRESTRICT tmp_buf, unsigned &dsize)</td></tr>
339
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP XOR operation. <a href="a00119.html#gaa5e07ad0256bf784ad3397acbbd23bb2"></a><br/></td></tr>
340
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#gab46833bf0d7813f868a1608f70db12de">bm::gap_operation_any_xor</a> (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2)</td></tr>
341
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP XOR operation test. <a href="a00119.html#gab46833bf0d7813f868a1608f70db12de"></a><br/></td></tr>
342
<tr><td class="memItemLeft" align="right" valign="top">gap_word_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#gacda280af8910ae5fde37731a3a7a1226">bm::gap_operation_or</a> (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2, gap_word_t *BMRESTRICT tmp_buf, unsigned &dsize)</td></tr>
343
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP OR operation. <a href="a00119.html#gacda280af8910ae5fde37731a3a7a1226"></a><br/></td></tr>
344
<tr><td class="memItemLeft" align="right" valign="top">gap_word_t * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#gabe4c83e5e162c38e297116dd1cd05ac4">bm::gap_operation_sub</a> (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2, gap_word_t *BMRESTRICT tmp_buf, unsigned &dsize)</td></tr>
345
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP SUB (AND NOT) operation. <a href="a00119.html#gabe4c83e5e162c38e297116dd1cd05ac4"></a><br/></td></tr>
346
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00119.html#gae0b1d4aca0ddfa58d83e4b089a4f35d9">bm::gap_operation_any_sub</a> (const gap_word_t *BMRESTRICT vect1, const gap_word_t *BMRESTRICT vect2)</td></tr>
347
<tr><td class="mdescLeft"> </td><td class="mdescRight">GAP SUB operation test. <a href="a00119.html#gae0b1d4aca0ddfa58d83e4b089a4f35d9"></a><br/></td></tr>
348
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga9090de87d53e7f25eff96c8259b3485c">bm::bit_block_copy</a> (<a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src)</td></tr>
349
<tr><td class="mdescLeft"> </td><td class="mdescRight">Bitblock copy operation. <a href="a00120.html#ga9090de87d53e7f25eff96c8259b3485c"></a><br/></td></tr>
350
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga882f79df0a0175ad4ddf483c5f1eeb0e">bm::bit_block_and</a> (<a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src)</td></tr>
351
<tr><td class="mdescLeft"> </td><td class="mdescRight">Plain bitblock AND operation. Function does not analyse availability of source and destination blocks. <a href="a00120.html#ga882f79df0a0175ad4ddf483c5f1eeb0e"></a><br/></td></tr>
352
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga0070984bb1d332610150a9106ab8eb0a">bm::bit_block_and_count</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *src1, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *src1_end, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *src2)</td></tr>
353
<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="a00120.html#ga0070984bb1d332610150a9106ab8eb0a"></a><br/></td></tr>
354
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga9fe2d12ddac5293fe53038c687c732f3">bm::bit_block_and_any</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *src1, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *src1_end, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *src2)</td></tr>
355
<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="a00120.html#ga9fe2d12ddac5293fe53038c687c732f3"></a><br/></td></tr>
356
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gaf8af8cfe8b49407be1af7398da28c939">bm::bit_block_xor_count</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
357
<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="a00120.html#gaf8af8cfe8b49407be1af7398da28c939"></a><br/></td></tr>
358
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gafbc3ffafc859a503fdd2fc96e7fb60ce">bm::bit_block_xor_any</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
359
<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="a00120.html#gafbc3ffafc859a503fdd2fc96e7fb60ce"></a><br/></td></tr>
360
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gad34175255e9860a572fcf2e664a6de8e">bm::bit_block_sub_count</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
361
<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="a00120.html#gad34175255e9860a572fcf2e664a6de8e"></a><br/></td></tr>
362
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga3f51735d2ca08e5a9fae2c9c49138c5c">bm::bit_block_sub_any</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
363
<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="a00120.html#ga3f51735d2ca08e5a9fae2c9c49138c5c"></a><br/></td></tr>
364
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gacf4f8ab164277278448a541863c07517">bm::bit_block_or_count</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *src1, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *src1_end, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *src2)</td></tr>
365
<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="a00120.html#gacf4f8ab164277278448a541863c07517"></a><br/></td></tr>
366
<tr><td class="memItemLeft" align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gab2047495f7844d3014ff697503669d24">bm::bit_block_or_any</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
367
<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="a00120.html#gab2047495f7844d3014ff697503669d24"></a><br/></td></tr>
368
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga869fce5348076d4c7b92adcc2f1a49ab">bm::bit_operation_and</a> (<a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src)</td></tr>
369
<tr><td class="mdescLeft"> </td><td class="mdescRight">bitblock AND operation. <a href="a00120.html#ga869fce5348076d4c7b92adcc2f1a49ab"></a><br/></td></tr>
370
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga9765914087df2fc22ec18db8128f2a12">bm::bit_operation_and_count</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
371
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs bitblock AND operation and calculates bitcount of the result. <a href="a00120.html#ga9765914087df2fc22ec18db8128f2a12"></a><br/></td></tr>
372
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga0e7995f7d6c791f6ff27a8dd21d324e5">bm::bit_operation_and_any</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
373
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs bitblock AND operation test. <a href="a00120.html#ga0e7995f7d6c791f6ff27a8dd21d324e5"></a><br/></td></tr>
374
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gaabb39bf01bf973cb7bf3648873921ab7">bm::bit_operation_sub_count</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
375
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs bitblock SUB operation and calculates bitcount of the result. <a href="a00120.html#gaabb39bf01bf973cb7bf3648873921ab7"></a><br/></td></tr>
376
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga53867faf377db72324b858a37063c0b8">bm::bit_operation_sub_count_inv</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
377
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs inverted bitblock SUB operation and calculates bitcount of the result. <a href="a00120.html#ga53867faf377db72324b858a37063c0b8"></a><br/></td></tr>
378
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga847d5a84673b284be984f0db583e2723">bm::bit_operation_sub_any</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
379
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs bitblock test of SUB operation. <a href="a00120.html#ga847d5a84673b284be984f0db583e2723"></a><br/></td></tr>
380
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga5a267aff3b56cc6dadf5a3a338e00a1d">bm::bit_operation_or_count</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
381
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs bitblock OR operation and calculates bitcount of the result. <a href="a00120.html#ga5a267aff3b56cc6dadf5a3a338e00a1d"></a><br/></td></tr>
382
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga6d26742bdc373074474a6932eab4f388">bm::bit_operation_or_any</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
383
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs bitblock OR operation test. <a href="a00120.html#ga6d26742bdc373074474a6932eab4f388"></a><br/></td></tr>
384
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga3515d8eb5da7f9d41d63dc90ad9523a4">bm::bit_block_or</a> (<a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src)</td></tr>
385
<tr><td class="mdescLeft"> </td><td class="mdescRight">Plain bitblock OR operation. Function does not analyse availability of source and destination blocks. <a href="a00120.html#ga3515d8eb5da7f9d41d63dc90ad9523a4"></a><br/></td></tr>
386
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga0e945a9eaae699ad40f63b3f0632e6f9">bm::bit_operation_or</a> (<a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src)</td></tr>
387
<tr><td class="mdescLeft"> </td><td class="mdescRight">Block OR operation. Makes analysis if block is 0 or FULL. <a href="a00120.html#ga0e945a9eaae699ad40f63b3f0632e6f9"></a><br/></td></tr>
388
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gafed81435f74c0542857842d4461686e4">bm::bit_block_sub</a> (<a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src)</td></tr>
389
<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="a00120.html#gafed81435f74c0542857842d4461686e4"></a><br/></td></tr>
390
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gad7afa9bce28a376360ca4826960d669f">bm::bit_operation_sub</a> (<a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src)</td></tr>
391
<tr><td class="mdescLeft"> </td><td class="mdescRight">bitblock SUB operation. <a href="a00120.html#gad7afa9bce28a376360ca4826960d669f"></a><br/></td></tr>
392
<tr><td class="memItemLeft" align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gae6a46c5e671ea1c9312219ceb41025ef">bm::bit_block_xor</a> (<a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src)</td></tr>
393
<tr><td class="mdescLeft"> </td><td class="mdescRight">Plain bitblock XOR operation. Function does not analyse availability of source and destination blocks. <a href="a00120.html#gae6a46c5e671ea1c9312219ceb41025ef"></a><br/></td></tr>
394
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga179de722e87ccf8189d975ca6beed025">bm::bit_operation_xor</a> (<a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT dst, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src)</td></tr>
395
<tr><td class="mdescLeft"> </td><td class="mdescRight">bitblock XOR operation. <a href="a00120.html#ga179de722e87ccf8189d975ca6beed025"></a><br/></td></tr>
396
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gace08ab77feefb638daee164ee83118bc">bm::bit_operation_xor_count</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
397
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs bitblock XOR operation and calculates bitcount of the result. <a href="a00120.html#gace08ab77feefb638daee164ee83118bc"></a><br/></td></tr>
398
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gaa86561b6d11c3f01dd772563c692f732">bm::bit_operation_xor_any</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src1_end, const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *BMRESTRICT src2)</td></tr>
399
<tr><td class="mdescLeft"> </td><td class="mdescRight">Performs bitblock XOR operation test. <a href="a00120.html#gaa86561b6d11c3f01dd772563c692f732"></a><br/></td></tr>
400
<tr><td class="memTemplParams" colspan="2">template<class 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#ga0ff158706f2e194be67fb8267641c30a">bm::bit_count_nonzero_size</a> (const T *blk, unsigned data_size)</td></tr>
402
<tr><td class="mdescLeft"> </td><td class="mdescRight">Inspects block for full zero words. <a href="a00120.html#ga0ff158706f2e194be67fb8267641c30a"></a><br/></td></tr>
403
<tr><td class="memItemLeft" align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#gad6a7c549a625df7aa7d68d43a57238c7">bm::bit_find_in_block</a> (const <a class="el" href="a00115.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a> *data, unsigned nbit, <a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> *prev)</td></tr>
404
<tr><td class="mdescLeft"> </td><td class="mdescRight">Searches for the next 1 bit in the BIT block. <a href="a00120.html#gad6a7c549a625df7aa7d68d43a57238c7"></a><br/></td></tr>
405
<tr><td class="memTemplParams" colspan="2">template<typename T , typename F > </td></tr>
406
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#gab9f80b3c898323ce77beb915e4c861f3">bm::bit_for_each_4</a> (T w, F &func)</td></tr>
407
<tr><td class="mdescLeft"> </td><td class="mdescRight">Templated algorithm to unpacks octet based word into list of ON bit indexes. <a href="a00120.html#gab9f80b3c898323ce77beb915e4c861f3"></a><br/></td></tr>
408
<tr><td class="memTemplParams" colspan="2">template<typename T , typename F > </td></tr>
409
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga24be2ad5d8c2a8f18fdad142452aaae8">bm::bit_for_each</a> (T w, F &func)</td></tr>
410
<tr><td class="mdescLeft"> </td><td class="mdescRight">Templated algorithm to unpacks word into list of ON bit indexes. <a href="a00120.html#ga24be2ad5d8c2a8f18fdad142452aaae8"></a><br/></td></tr>
411
<tr><td class="memTemplParams" colspan="2">template<typename T , typename B > </td></tr>
412
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#ga3c81f6bff8866ec3ed0a94903eee96b7">bm::bit_list_4</a> (T w, B *bits)</td></tr>
413
<tr><td class="mdescLeft"> </td><td class="mdescRight">Unpacks word into list of ON bit indexes (quad-bit based). <a href="a00120.html#ga3c81f6bff8866ec3ed0a94903eee96b7"></a><br/></td></tr>
414
<tr><td class="memTemplParams" colspan="2">template<typename T , typename B > </td></tr>
415
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#gaae3ae537760044543f842363e4614e82">bm::bit_list</a> (T w, B *bits)</td></tr>
416
<tr><td class="mdescLeft"> </td><td class="mdescRight">Unpacks word into list of ON bit indexes. <a href="a00120.html#gaae3ae537760044543f842363e4614e82"></a><br/></td></tr>
417
<tr><td class="memItemLeft" align="right" valign="top"><a class="el" href="a00115.html#a593916a103395805070a3200720c6416">bm::set_representation</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00120.html#ga20610fae6b0de84957b74ed17429667f">bm::best_representation</a> (unsigned bit_count, unsigned total_possible_bitcount, unsigned gap_count, unsigned block_size)</td></tr>
418
<tr><td class="mdescLeft"> </td><td class="mdescRight">Choose best representation for a bit-block. <a href="a00120.html#ga20610fae6b0de84957b74ed17429667f"></a><br/></td></tr>
419
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
420
<tr><td class="memTemplItemLeft" align="right" valign="top">T </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00120.html#gaf24d85761f60877c2260f8160593f732">bm::bit_convert_to_arr</a> (T *BMRESTRICT dest, const unsigned *BMRESTRICT src, <a class="el" href="a00115.html#aa3824d882a037396370b16f2f0a8bf37">bm::id_t</a> bits, unsigned dest_len, unsigned mask=0)</td></tr>
421
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert bit block into an array of ints corresponding to 1 bits. <a href="a00120.html#gaf24d85761f60877c2260f8160593f732"></a><br/></td></tr>
422
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
423
<tr><td class="memTemplItemLeft" align="right" valign="top">unsigned </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#gacc578010f3700940829c600c812d23b1">bm::gap_overhead</a> (const T *length, const T *length_end, const T *glevel_len)</td></tr>
424
<tr><td class="mdescLeft"> </td><td class="mdescRight">Convert bit block into an array of ints corresponding to 1 bits. <a href="a00119.html#gacc578010f3700940829c600c812d23b1"></a><br/></td></tr>
425
<tr><td class="memTemplParams" colspan="2">template<typename T > </td></tr>
426
<tr><td class="memTemplItemLeft" align="right" valign="top">bool </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00119.html#ga2daff3a0ceda6fef87d3b0e892da5813">bm::improve_gap_levels</a> (const T *length, const T *length_end, T *glevel_len)</td></tr>
427
<tr><td class="mdescLeft"> </td><td class="mdescRight">Finds optimal gap blocks lengths. <a href="a00119.html#ga2daff3a0ceda6fef87d3b0e892da5813"></a><br/></td></tr>
428
<tr><td class="memTemplParams" colspan="2">template<class It1 , class It2 , class BinaryOp , class Encoder > </td></tr>
429
<tr><td class="memTemplItemLeft" align="right" valign="top">void </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="a00115.html#a503fecc0ee281059897412d68f489e1e">bm::bit_recomb</a> (It1 &it1, It2 &it2, BinaryOp &op, Encoder &enc, unsigned block_size=<a class="el" href="a00115.html#a91319dbc0d0e1bf3a3efc4d92bac7972">bm::set_block_size</a>)</td></tr>
46
<tr><td colspan="2"><h2>Defines</h2></td></tr>
47
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html#a3ae54e6a1680218d157ebc7fa486ed78">BM_x86</a></td></tr>
48
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html#aa44515fab0ace8928d1cb82009a95bf8">BM_ASSERT</a> assert</td></tr>
49
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html#a1365569f85f442c4914a3579f55df99b">FULL_BLOCK_ADDR</a> <a class="el" href="a00012.html">bm::all_set</a><true>::_block._p</td></tr>
50
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html#a13ba598909515339ceede09e3b9b0198">IS_VALID_ADDR</a>(addr) (addr && (addr != FULL_BLOCK_ADDR))</td></tr>
51
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html#a074acb37afea68caaffe3832d326eb44">IS_FULL_BLOCK</a>(addr) (addr == FULL_BLOCK_ADDR)</td></tr>
52
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html#accfe8650b3e8ee65da94f7712b3c44b8">IS_EMPTY_BLOCK</a>(addr) (addr == 0)</td></tr>
53
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html#a41d8f6ada221ed5c6f95e9c6c821216a">BMPTR_SETBIT0</a>(ptr) ( ((<a class="el" href="a00116.html#a1f6a6dd108cd9e9f4fb284043ef518fe">bm::id64_t</a>)ptr) | 1 )</td></tr>
54
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html#aa5a3e35b91d48c7c8a8cf24c293f72e4">BMPTR_CLEARBIT0</a>(ptr) ( ((<a class="el" href="a00116.html#a1f6a6dd108cd9e9f4fb284043ef518fe">bm::id64_t</a>)ptr) & ~(<a class="el" href="a00116.html#a1f6a6dd108cd9e9f4fb284043ef518fe">bm::id64_t</a>)1 )</td></tr>
55
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html#a11318a64d92080bbf8e2edc7b68e0bc9">BMPTR_TESTBIT0</a>(ptr) ( ((<a class="el" href="a00116.html#a1f6a6dd108cd9e9f4fb284043ef518fe">bm::id64_t</a>)ptr) & 1 )</td></tr>
56
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html#a6a7c8b8ee3f3b60ab907c1699acb7aa0">BMGAP_PTR</a>(ptr) ((<a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">bm::gap_word_t</a>*)BMPTR_CLEARBIT0(ptr))</td></tr>
57
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html#a93dbdb1a62ca0ce33149d3249dbf386e">BMSET_PTRGAP</a>(ptr) ptr = (<a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a>*)BMPTR_SETBIT0(ptr)</td></tr>
58
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html#a862d6f92b4de3ddb94fd367a800512eb">BM_IS_GAP</a>(obj, ptr, idx) ( BMPTR_TESTBIT0(ptr)!=0 )</td></tr>
59
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html#a938734d014fb68dd8b2251fe8ec2b025">BMFORCEINLINE</a> inline</td></tr>
60
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html#a7e6f87ba3230dece2125af5c32e84b05">BM_SET_MMX_GUARD</a> sse_empty_guard bm_mmx_guard_;</td></tr>
61
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html#a80f4b7d710fa287d77100d211738dd32">BM_ALIGN16ATTR</a> __attribute__((aligned(16)))</td></tr>
62
<tr><td class="memItemLeft" align="right" valign="top">#define </td><td class="memItemRight" valign="bottom"><a class="el" href="a00121.html#ga967f6a5264f47d8adb93f6bdf8cdc129">BM_INCWORD_BITCOUNT</a>(cnt, w) cnt += _mm_popcnt_u32(w);</td></tr>
432
<hr size="1"/><address style="text-align: right;"><small>Generated on Fri Jan 8 20:09:19 2010 for BitMagic by
64
<hr/><h2>Define Documentation</h2>
65
<a class="anchor" id="a80f4b7d710fa287d77100d211738dd32"></a><!-- doxytag: member="bmdef.h::BM_ALIGN16ATTR" ref="a80f4b7d710fa287d77100d211738dd32" args="" -->
67
<div class="memproto">
68
<table class="memname">
70
<td class="memname">#define BM_ALIGN16ATTR __attribute__((aligned(16)))</td>
76
<p>Definition at line <a class="el" href="a00093_source.html#l00153">153</a> of file <a class="el" href="a00093_source.html">bmdef.h</a>.</p>
78
<p>Referenced by <a class="el" href="a00098_source.html#l00237">bm::sse2_bit_block_calc_count_change()</a>, <a class="el" href="a00098_source.html#l00064">bm::sse2_bit_count()</a>, and <a class="el" href="a00098_source.html#l00125">bm::sse2_bit_count_op()</a>.</p>
82
<a class="anchor" id="aa44515fab0ace8928d1cb82009a95bf8"></a><!-- doxytag: member="bmdef.h::BM_ASSERT" ref="aa44515fab0ace8928d1cb82009a95bf8" args="" -->
84
<div class="memproto">
85
<table class="memname">
87
<td class="memname">#define BM_ASSERT assert</td>
93
<p>Definition at line <a class="el" href="a00093_source.html#l00050">50</a> of file <a class="el" href="a00093_source.html">bmdef.h</a>.</p>
95
<p>Referenced by <a class="el" href="a00091_source.html#l00193">bm::mem_alloc< BA, PA >::alloc_gap_block()</a>, <a class="el" href="a00094_source.html#l02974">bm::bit_block_any_range()</a>, <a class="el" href="a00094_source.html#l02681">bm::bit_block_calc_count()</a>, <a class="el" href="a00094_source.html#l02819">bm::bit_block_calc_count_change()</a>, <a class="el" href="a00094_source.html#l02905">bm::bit_block_calc_count_range()</a>, <a class="el" href="a00094_source.html#l02477">bm::bit_convert_to_gap()</a>, <a class="el" href="a00094_source.html#l02757">bm::bit_count_change32()</a>, <a class="el" href="a00094_source.html#l04259">bm::bit_count_nonzero_size()</a>, <a class="el" href="a00094_source.html#l04367">bm::bit_for_each_4()</a>, <a class="el" href="a00101_source.html#l00414">bm::bit_iblock_make_pcv()</a>, <a class="el" href="a00101_source.html#l00474">bm::bit_iblock_pcv_stat()</a>, <a class="el" href="a00101_source.html#l00494">bm::bit_iblock_reduce()</a>, <a class="el" href="a00094_source.html#l03677">bm::bit_operation_and()</a>, <a class="el" href="a00094_source.html#l03973">bm::bit_operation_or()</a>, <a class="el" href="a00094_source.html#l04071">bm::bit_operation_sub()</a>, <a class="el" href="a00094_source.html#l04167">bm::bit_operation_xor()</a>, <a class="el" href="a00094_source.html#l02444">bm::bitcmp()</a>, <a class="el" href="a00090_source.html#l01075">bm::block_range_scan()</a>, <a class="el" href="a00094_source.html#l00413">bm::globals< T >::bo::bo()</a>, <a class="el" href="a00090_source.html#l01350">bm::combine_and_sorted()</a>, <a class="el" href="a00090_source.html#l00114">bm::combine_count_operation_with_block()</a>, <a class="el" href="a00088_source.html#l02518">bm::bvector< Alloc, MS >::combine_operation()</a>, <a class="el" href="a00090_source.html#l01105">bm::combine_or()</a>, <a class="el" href="a00090_source.html#l01268">bm::combine_sub()</a>, <a class="el" href="a00090_source.html#l01184">bm::combine_xor()</a>, <a class="el" href="a00104_source.html#l00339">bm::bvector_mini< A >::compare()</a>, <a class="el" href="a00101_source.html#l00683">bm::compute_tmatrix_rstat()</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>, <a class="el" href="a00097_source.html#l02773">bm::operation_deserializer< BV >::deserialize()</a>, <a class="el" href="a00097_source.html#l01403">bm::deserializer< BV, DEC >::deserialize()</a>, <a class="el" href="a00097_source.html#l01142">bm::deserialize()</a>, <a class="el" href="a00097_source.html#l01308">bm::deserializer< BV, DEC >::deserialize_gap()</a>, <a class="el" href="a00097_source.html#l00758">bm::serializer< BV >::encode_bit_interval()</a>, <a class="el" href="a00097_source.html#l00705">bm::serializer< BV >::encode_gap_block()</a>, <a class="el" href="a00090_source.html#l01431">bm::export_array()</a>, <a class="el" href="a00091_source.html#l00205">bm::mem_alloc< BA, PA >::free_gap_block()</a>, <a class="el" href="a00105_source.html#l00229">bm::bit_out< TEncoder >::gamma()</a>, <a class="el" href="a00094_source.html#l01706">bm::gap_add_to_bitset()</a>, <a class="el" href="a00094_source.html#l01226">bm::gap_add_value()</a>, <a class="el" href="a00094_source.html#l01738">bm::gap_and_to_bitset()</a>, <a class="el" href="a00094_source.html#l00461">bm::gap_bfind()</a>, <a class="el" href="a00094_source.html#l00689">bm::gap_bit_count_range()</a>, <a class="el" href="a00094_source.html#l01807">bm::gap_bitset_and_any()</a>, <a class="el" href="a00094_source.html#l01771">bm::gap_bitset_and_count()</a>, <a class="el" href="a00094_source.html#l02045">bm::gap_bitset_or_any()</a>, <a class="el" href="a00094_source.html#l01998">bm::gap_bitset_or_count()</a>, <a class="el" href="a00094_source.html#l01879">bm::gap_bitset_sub_any()</a>, <a class="el" href="a00094_source.html#l01846">bm::gap_bitset_sub_count()</a>, <a class="el" href="a00094_source.html#l01955">bm::gap_bitset_xor_any()</a>, <a class="el" href="a00094_source.html#l01917">bm::gap_bitset_xor_count()</a>, <a class="el" href="a00094_source.html#l02405">bm::gap_calc_level()</a>, <a class="el" href="a00094_source.html#l02173">bm::gap_control_sum()</a>, <a class="el" href="a00094_source.html#l01401">bm::gap_find_in_block()</a>, <a class="el" href="a00094_source.html#l02225">bm::gap_init_range_block()</a>, <a class="el" href="a00094_source.html#l04722">bm::gap_overhead()</a>, <a class="el" href="a00094_source.html#l02204">bm::gap_set_all()</a>, <a class="el" href="a00094_source.html#l01133">bm::gap_set_value()</a>, <a class="el" href="a00094_source.html#l01642">bm::gap_sub_to_bitset()</a>, <a class="el" href="a00094_source.html#l00489">bm::gap_test()</a>, <a class="el" href="a00094_source.html#l01674">bm::gap_xor_to_bitset()</a>, <a class="el" href="a00101_source.html#l00075">bm::bit_grabber< T, BPC >::get()</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="a00088_source.html#l01808">bm::bvector< Alloc, MS >::get_bit()</a>, <a class="el" href="a00097_source.html#l02757">bm::serial_stream_iterator< DEC >::get_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="a00097_source.html#l02739">bm::serial_stream_iterator< DEC >::get_gap_block()</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="a00094_source.html#l04749">bm::improve_gap_levels()</a>, <a class="el" href="a00097_source.html#l01741">bm::serial_stream_iterator< DEC >::next()</a>, <a class="el" href="a00090_source.html#l00069">bm::operation2metric()</a>, <a class="el" href="a00088_source.html#l00352">bm::bvector< Alloc, MS >::insert_iterator::operator=()</a>, <a class="el" href="a00088_source.html#l00879">bm::bvector< Alloc, MS >::operator[]()</a>, <a class="el" href="a00105_source.html#l00154">bm::bit_out< TEncoder >::put_bit()</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>, <a class="el" href="a00097_source.html#l00810">bm::serializer< BV >::serialize()</a>, <a class="el" href="a00088_source.html#l00959">bm::bvector< Alloc, MS >::set_bit()</a>, <a class="el" href="a00088_source.html#l00971">bm::bvector< Alloc, MS >::set_bit_and()</a>, <a class="el" href="a00088_source.html#l00984">bm::bvector< Alloc, MS >::set_bit_conditional()</a>, <a class="el" href="a00094_source.html#l02389">bm::set_gap_level()</a>, <a class="el" href="a00088_source.html#l01627">bm::bvector< Alloc, MS >::set_range()</a>, <a class="el" href="a00094_source.html#l00286">bm::setop2op()</a>, <a class="el" href="a00097_source.html#l01872">bm::serial_stream_iterator< DEC >::skip_mono_blocks()</a>, <a class="el" href="a00104_source.html#l00483">bm::bvector_mini< A >::swap()</a>, <a class="el" href="a00101_source.html#l00550">bm::tmatrix_reduce()</a>, <a class="el" href="a00101_source.html#l00597">bm::tmatrix_restore()</a>, <a class="el" href="a00101_source.html#l00787">bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::transpose()</a>, <a class="el" href="a00101_source.html#l00859">bm::gap_transpose_engine< GT, BT, BLOCK_SIZE >::trestore()</a>, <a class="el" href="a00101_source.html#l00290">bm::vect_bit_transpose()</a>, and <a class="el" href="a00094_source.html#l00321">bm::xor_swap()</a>.</p>
99
<a class="anchor" id="a862d6f92b4de3ddb94fd367a800512eb"></a><!-- doxytag: member="bmdef.h::BM_IS_GAP" ref="a862d6f92b4de3ddb94fd367a800512eb" args="(obj, ptr, idx)" -->
100
<div class="memitem">
101
<div class="memproto">
102
<table class="memname">
104
<td class="memname">#define BM_IS_GAP</td>
106
<td class="paramtype">obj, </td>
109
<td class="paramkey"></td>
111
<td class="paramtype">ptr, </td>
114
<td class="paramkey"></td>
116
<td class="paramtype">idx </td>
117
<td class="paramname"></td>
118
<td> ) </td>
119
<td> ( BMPTR_TESTBIT0(ptr)!=0 )</td>
125
<p>Definition at line <a class="el" href="a00093_source.html#l00097">97</a> of file <a class="el" href="a00093_source.html">bmdef.h</a>.</p>
127
<p>Referenced by <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#l01493">bm::bvector< Alloc, MS >::combine_operation_with_block()</a>, <a class="el" href="a00088_source.html#l01921">bm::bvector< Alloc, MS >::compare()</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>, <a class="el" href="a00090_source.html#l00688">bm::distance_operation()</a>, <a class="el" href="a00090_source.html#l00807">bm::distance_operation_any()</a>, <a class="el" href="a00088_source.html#l01808">bm::bvector< Alloc, MS >::get_bit()</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>, and <a class="el" href="a00097_source.html#l00810">bm::serializer< BV >::serialize()</a>.</p>
131
<a class="anchor" id="a7e6f87ba3230dece2125af5c32e84b05"></a><!-- doxytag: member="bmdef.h::BM_SET_MMX_GUARD" ref="a7e6f87ba3230dece2125af5c32e84b05" args="" -->
132
<div class="memitem">
133
<div class="memproto">
134
<table class="memname">
136
<td class="memname">#define BM_SET_MMX_GUARD sse_empty_guard bm_mmx_guard_;</td>
142
<p>Definition at line <a class="el" href="a00093_source.html#l00139">139</a> of file <a class="el" href="a00093_source.html">bmdef.h</a>.</p>
144
<p>Referenced by <a class="el" href="a00088_source.html#l02518">bm::bvector< Alloc, MS >::combine_operation()</a>, <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="a00090_source.html#l00688">bm::distance_operation()</a>, <a class="el" href="a00090_source.html#l00807">bm::distance_operation_any()</a>, <a class="el" href="a00088_source.html#l01784">bm::bvector< Alloc, MS >::invert()</a>, and <a class="el" href="a00088_source.html#l01627">bm::bvector< Alloc, MS >::set_range()</a>.</p>
148
<a class="anchor" id="a3ae54e6a1680218d157ebc7fa486ed78"></a><!-- doxytag: member="bmdef.h::BM_x86" ref="a3ae54e6a1680218d157ebc7fa486ed78" args="" -->
149
<div class="memitem">
150
<div class="memproto">
151
<table class="memname">
153
<td class="memname">#define BM_x86</td>
159
<p>Definition at line <a class="el" href="a00093_source.html#l00021">21</a> of file <a class="el" href="a00093_source.html">bmdef.h</a>.</p>
163
<a class="anchor" id="a938734d014fb68dd8b2251fe8ec2b025"></a><!-- doxytag: member="bmdef.h::BMFORCEINLINE" ref="a938734d014fb68dd8b2251fe8ec2b025" args="" -->
164
<div class="memitem">
165
<div class="memproto">
166
<table class="memname">
168
<td class="memname">#define BMFORCEINLINE inline</td>
174
<p>Definition at line <a class="el" href="a00093_source.html#l00119">119</a> of file <a class="el" href="a00093_source.html">bmdef.h</a>.</p>
178
<a class="anchor" id="a6a7c8b8ee3f3b60ab907c1699acb7aa0"></a><!-- doxytag: member="bmdef.h::BMGAP_PTR" ref="a6a7c8b8ee3f3b60ab907c1699acb7aa0" args="(ptr)" -->
179
<div class="memitem">
180
<div class="memproto">
181
<table class="memname">
183
<td class="memname">#define BMGAP_PTR</td>
185
<td class="paramtype">ptr </td>
186
<td class="paramname"></td>
187
<td> ) </td>
188
<td> ((<a class="el" href="a00116.html#ac654d6319039a86546d235a236fc7cf6">bm::gap_word_t</a>*)BMPTR_CLEARBIT0(ptr))</td>
194
<p>Definition at line <a class="el" href="a00093_source.html#l00095">95</a> of file <a class="el" href="a00093_source.html">bmdef.h</a>.</p>
196
<p>Referenced by <a class="el" href="a00088_source.html#l02051">bm::bvector< Alloc, MS >::calc_stat()</a>, <a class="el" href="a00090_source.html#l00343">bm::combine_any_operation_with_block()</a>, <a class="el" href="a00090_source.html#l00114">bm::combine_count_operation_with_block()</a>, <a class="el" href="a00090_source.html#l01105">bm::combine_or()</a>, <a class="el" href="a00090_source.html#l01268">bm::combine_sub()</a>, <a class="el" href="a00090_source.html#l01184">bm::combine_xor()</a>, <a class="el" href="a00088_source.html#l01921">bm::bvector< Alloc, MS >::compare()</a>, <a class="el" href="a00088_source.html#l01690">bm::bvector< Alloc, MS >::count_range()</a>, <a class="el" href="a00097_source.html#l01308">bm::deserializer< BV, DEC >::deserialize_gap()</a>, <a class="el" href="a00090_source.html#l01431">bm::export_array()</a>, <a class="el" href="a00088_source.html#l01808">bm::bvector< Alloc, MS >::get_bit()</a>, and <a class="el" href="a00097_source.html#l00810">bm::serializer< BV >::serialize()</a>.</p>
200
<a class="anchor" id="aa5a3e35b91d48c7c8a8cf24c293f72e4"></a><!-- doxytag: member="bmdef.h::BMPTR_CLEARBIT0" ref="aa5a3e35b91d48c7c8a8cf24c293f72e4" args="(ptr)" -->
201
<div class="memitem">
202
<div class="memproto">
203
<table class="memname">
205
<td class="memname">#define BMPTR_CLEARBIT0</td>
207
<td class="paramtype">ptr </td>
208
<td class="paramname"></td>
209
<td> ) </td>
210
<td> ( ((<a class="el" href="a00116.html#a1f6a6dd108cd9e9f4fb284043ef518fe">bm::id64_t</a>)ptr) & ~(<a class="el" href="a00116.html#a1f6a6dd108cd9e9f4fb284043ef518fe">bm::id64_t</a>)1 )</td>
216
<p>Definition at line <a class="el" href="a00093_source.html#l00084">84</a> of file <a class="el" href="a00093_source.html">bmdef.h</a>.</p>
220
<a class="anchor" id="a41d8f6ada221ed5c6f95e9c6c821216a"></a><!-- doxytag: member="bmdef.h::BMPTR_SETBIT0" ref="a41d8f6ada221ed5c6f95e9c6c821216a" args="(ptr)" -->
221
<div class="memitem">
222
<div class="memproto">
223
<table class="memname">
225
<td class="memname">#define BMPTR_SETBIT0</td>
227
<td class="paramtype">ptr </td>
228
<td class="paramname"></td>
229
<td> ) </td>
230
<td> ( ((<a class="el" href="a00116.html#a1f6a6dd108cd9e9f4fb284043ef518fe">bm::id64_t</a>)ptr) | 1 )</td>
236
<p>Definition at line <a class="el" href="a00093_source.html#l00083">83</a> of file <a class="el" href="a00093_source.html">bmdef.h</a>.</p>
240
<a class="anchor" id="a11318a64d92080bbf8e2edc7b68e0bc9"></a><!-- doxytag: member="bmdef.h::BMPTR_TESTBIT0" ref="a11318a64d92080bbf8e2edc7b68e0bc9" args="(ptr)" -->
241
<div class="memitem">
242
<div class="memproto">
243
<table class="memname">
245
<td class="memname">#define BMPTR_TESTBIT0</td>
247
<td class="paramtype">ptr </td>
248
<td class="paramname"></td>
249
<td> ) </td>
250
<td> ( ((<a class="el" href="a00116.html#a1f6a6dd108cd9e9f4fb284043ef518fe">bm::id64_t</a>)ptr) & 1 )</td>
256
<p>Definition at line <a class="el" href="a00093_source.html#l00085">85</a> of file <a class="el" href="a00093_source.html">bmdef.h</a>.</p>
260
<a class="anchor" id="a93dbdb1a62ca0ce33149d3249dbf386e"></a><!-- doxytag: member="bmdef.h::BMSET_PTRGAP" ref="a93dbdb1a62ca0ce33149d3249dbf386e" args="(ptr)" -->
261
<div class="memitem">
262
<div class="memproto">
263
<table class="memname">
265
<td class="memname">#define BMSET_PTRGAP</td>
267
<td class="paramtype">ptr </td>
268
<td class="paramname"></td>
269
<td> ) </td>
270
<td> ptr = (<a class="el" href="a00116.html#a17fd5ba52db3ddda05e6f8dd5000a1a4">bm::word_t</a>*)BMPTR_SETBIT0(ptr)</td>
276
<p>Definition at line <a class="el" href="a00093_source.html#l00096">96</a> of file <a class="el" href="a00093_source.html">bmdef.h</a>.</p>
280
<a class="anchor" id="a1365569f85f442c4914a3579f55df99b"></a><!-- doxytag: member="bmdef.h::FULL_BLOCK_ADDR" ref="a1365569f85f442c4914a3579f55df99b" args="" -->
281
<div class="memitem">
282
<div class="memproto">
283
<table class="memname">
285
<td class="memname">#define FULL_BLOCK_ADDR <a class="el" href="a00012.html">bm::all_set</a><true>::_block._p</td>
291
<p>Definition at line <a class="el" href="a00093_source.html#l00060">60</a> of file <a class="el" href="a00093_source.html">bmdef.h</a>.</p>
293
<p>Referenced by <a class="el" href="a00094_source.html#l03973">bm::bit_operation_or()</a>, <a class="el" href="a00097_source.html#l03080">bm::iterator_deserializer< BV, SerialIterator >::deserialize()</a>, and <a class="el" href="a00094_source.html#l02151">bm::gap_convert_to_bitset_smart()</a>.</p>
297
<a class="anchor" id="accfe8650b3e8ee65da94f7712b3c44b8"></a><!-- doxytag: member="bmdef.h::IS_EMPTY_BLOCK" ref="accfe8650b3e8ee65da94f7712b3c44b8" args="(addr)" -->
298
<div class="memitem">
299
<div class="memproto">
300
<table class="memname">
302
<td class="memname">#define IS_EMPTY_BLOCK</td>
304
<td class="paramtype">addr </td>
305
<td class="paramname"></td>
306
<td> ) </td>
307
<td> (addr == 0)</td>
313
<p>Definition at line <a class="el" href="a00093_source.html#l00063">63</a> of file <a class="el" href="a00093_source.html">bmdef.h</a>.</p>
315
<p>Referenced by <a class="el" href="a00094_source.html#l03677">bm::bit_operation_and()</a>, <a class="el" href="a00094_source.html#l03765">bm::bit_operation_and_any()</a>, <a class="el" href="a00094_source.html#l03742">bm::bit_operation_and_count()</a>, <a class="el" href="a00094_source.html#l03903">bm::bit_operation_or_any()</a>, <a class="el" href="a00094_source.html#l03871">bm::bit_operation_or_count()</a>, <a class="el" href="a00094_source.html#l03841">bm::bit_operation_sub_any()</a>, <a class="el" href="a00094_source.html#l03790">bm::bit_operation_sub_count()</a>, <a class="el" href="a00094_source.html#l04230">bm::bit_operation_xor_any()</a>, and <a class="el" href="a00094_source.html#l04205">bm::bit_operation_xor_count()</a>.</p>
319
<a class="anchor" id="a074acb37afea68caaffe3832d326eb44"></a><!-- doxytag: member="bmdef.h::IS_FULL_BLOCK" ref="a074acb37afea68caaffe3832d326eb44" args="(addr)" -->
320
<div class="memitem">
321
<div class="memproto">
322
<table class="memname">
324
<td class="memname">#define IS_FULL_BLOCK</td>
326
<td class="paramtype">addr </td>
327
<td class="paramname"></td>
328
<td> ) </td>
329
<td> (addr == FULL_BLOCK_ADDR)</td>
335
<p>Definition at line <a class="el" href="a00093_source.html#l00062">62</a> of file <a class="el" href="a00093_source.html">bmdef.h</a>.</p>
337
<p>Referenced by <a class="el" href="a00094_source.html#l03677">bm::bit_operation_and()</a>, <a class="el" href="a00094_source.html#l03973">bm::bit_operation_or()</a>, <a class="el" href="a00094_source.html#l04071">bm::bit_operation_sub()</a>, and <a class="el" href="a00097_source.html#l03298">bm::iterator_deserializer< BV, SerialIterator >::deserialize()</a>.</p>
341
<a class="anchor" id="a13ba598909515339ceede09e3b9b0198"></a><!-- doxytag: member="bmdef.h::IS_VALID_ADDR" ref="a13ba598909515339ceede09e3b9b0198" args="(addr)" -->
342
<div class="memitem">
343
<div class="memproto">
344
<table class="memname">
346
<td class="memname">#define IS_VALID_ADDR</td>
348
<td class="paramtype">addr </td>
349
<td class="paramname"></td>
350
<td> ) </td>
351
<td> (addr && (addr != FULL_BLOCK_ADDR))</td>
357
<p>Definition at line <a class="el" href="a00093_source.html#l00061">61</a> of file <a class="el" href="a00093_source.html">bmdef.h</a>.</p>
359
<p>Referenced by <a class="el" href="a00094_source.html#l03677">bm::bit_operation_and()</a>, <a class="el" href="a00094_source.html#l03973">bm::bit_operation_or()</a>, <a class="el" href="a00094_source.html#l04071">bm::bit_operation_sub()</a>, <a class="el" href="a00094_source.html#l04167">bm::bit_operation_xor()</a>, <a class="el" href="a00088_source.html#l02051">bm::bvector< Alloc, MS >::calc_stat()</a>, <a class="el" href="a00091_source.html#l00180">bm::mem_alloc< BA, PA >::free_bit_block()</a>, and <a class="el" href="a00091_source.html#l00205">bm::mem_alloc< BA, PA >::free_gap_block()</a>.</p>
364
<hr size="1"/><address style="text-align: right;"><small>Generated on Tue Mar 23 20:47:58 2010 for BitMagic by
433
365
<a href="http://www.doxygen.org/index.html">
434
366
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.6.1 </small></address>