1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
<title>BitMagic: bm::bvector< Alloc, MS > Class Template Reference</title>
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
6
<!-- Generated by Doxygen 1.4.1 -->
7
<div class="qindex"><a class="qindex" href="index.html">Main Page</a> | <a class="qindex" href="modules.html">Modules</a> | <a class="qindex" href="namespaces.html">Namespace List</a> | <a class="qindex" href="hierarchy.html">Class Hierarchy</a> | <a class="qindex" href="classes.html">Alphabetical List</a> | <a class="qindex" href="annotated.html">Data Structures</a> | <a class="qindex" href="dirs.html">Directories</a> | <a class="qindex" href="files.html">File List</a> | <a class="qindex" href="namespacemembers.html">Namespace Members</a> | <a class="qindex" href="functions.html">Data Fields</a> | <a class="qindex" href="globals.html">Globals</a> | <a class="qindex" href="examples.html">Examples</a></div>
9
<a class="el" href="a00092.html">bm</a>::<a class="el" href="a00048.html">bvector</a></div>
10
<h1>bm::bvector< Alloc, MS > Class Template Reference<br>
12
[<a class="el" href="a00095.html">The Main bvector<> Group</a>]</small>
13
</h1>bitvector with runtime compression of bits.
14
<a href="#_details">More...</a>
16
<code>#include <<a class="el" href="a00102.html">bm.h</a>></code>
18
<table border="0" cellpadding="0" cellspacing="0">
20
<tr><td colspan="2"><br><h2>Public Types</h2></td></tr>
21
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef Alloc </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#w0">allocator_type</a></td></tr>
23
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef blocks_manager< Alloc,<br>
24
MS > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#w1">blocks_manager_type</a></td></tr>
26
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#w2">size_type</a></td></tr>
28
<tr><td class="mdescLeft"> </td><td class="mdescRight">Type used to count bits in the bit vector. <a href="#w2"></a><br></td></tr>
29
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#w3">const_reference</a></td></tr>
31
<tr><td class="memItemLeft" nowrap align="right" valign="top">enum </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#w7">optmode</a> { <a class="el" href="a00048.html#w7w4">opt_free_0</a> = 1,
32
<a class="el" href="a00048.html#w7w5">opt_free_01</a> = 2,
33
<a class="el" href="a00048.html#w7w6">opt_compress</a> = 3
36
<tr><td class="mdescLeft"> </td><td class="mdescRight">Optimization mode Every next level means additional checks (better compression vs time). <a href="a00048.html#w7">More...</a><br></td></tr>
37
<tr><td colspan="2"><br><h2>Public Member Functions</h2></td></tr>
38
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a0">bvector</a> (<a class="el" href="a00095.html#ga0">strategy</a> strat=BM_BIT, const <a class="el" href="a00092.html#a19">gap_word_t</a> *glevel_len=<a class="el" href="a00068.html">bm::gap_len_table</a>< true >::_len, <a class="el" href="a00048.html#w2">size_type</a> bv_size=<a class="el" href="a00092.html#a12">bm::id_max</a>, const Alloc &alloc=Alloc())</td></tr>
40
<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructs bvector class. <a href="#a0"></a><br></td></tr>
41
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a1">bvector</a> (<a class="el" href="a00048.html#w2">size_type</a> bv_size, <a class="el" href="a00095.html#ga0">strategy</a> strat=BM_BIT, const <a class="el" href="a00092.html#a19">gap_word_t</a> *glevel_len=<a class="el" href="a00068.html">bm::gap_len_table</a>< true >::_len, const Alloc &alloc=Alloc())</td></tr>
43
<tr><td class="mdescLeft"> </td><td class="mdescRight">Constructs bvector class. <a href="#a1"></a><br></td></tr>
44
<tr><td class="memItemLeft" nowrap align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a2">bvector</a> (const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > &<a class="el" href="a00048.html">bvect</a>)</td></tr>
46
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00048.html">bvector</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a3">operator=</a> (const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > &<a class="el" href="a00048.html">bvect</a>)</td></tr>
48
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00056.html">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a4">operator[]</a> (<a class="el" href="a00092.html#a9">bm::id_t</a> n)</td></tr>
50
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a5">operator[]</a> (<a class="el" href="a00092.html#a9">bm::id_t</a> n) const </td></tr>
52
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a6">operator &=</a> (const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > &<a class="el" href="a00048.html">bvect</a>)</td></tr>
54
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a7">operator^=</a> (const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > &<a class="el" href="a00048.html">bvect</a>)</td></tr>
56
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a8">operator|=</a> (const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > &<a class="el" href="a00048.html">bvect</a>)</td></tr>
58
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a9">operator-=</a> (const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > &<a class="el" href="a00048.html">bvect</a>)</td></tr>
60
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a10">operator<</a> (const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > &<a class="el" href="a00048.html">bvect</a>) const </td></tr>
62
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a11">operator<=</a> (const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > &<a class="el" href="a00048.html">bvect</a>) const </td></tr>
64
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a12">operator></a> (const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > &<a class="el" href="a00048.html">bvect</a>) const </td></tr>
66
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a13">operator>=</a> (const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > &<a class="el" href="a00048.html">bvect</a>) const </td></tr>
68
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a14">operator==</a> (const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > &<a class="el" href="a00048.html">bvect</a>) const </td></tr>
70
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a15">operator!=</a> (const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > &<a class="el" href="a00048.html">bvect</a>) const </td></tr>
72
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00048.html">bvector</a>< Alloc, MS > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a16">operator~</a> () const </td></tr>
74
<tr><td class="memItemLeft" nowrap align="right" valign="top">Alloc </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a17">get_allocator</a> () const </td></tr>
76
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a18">set_bit</a> (<a class="el" href="a00092.html#a9">bm::id_t</a> n, bool val=true)</td></tr>
78
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets bit n. <a href="#a18"></a><br></td></tr>
79
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a19">set</a> (<a class="el" href="a00092.html#a9">bm::id_t</a> n, bool val=true)</td></tr>
81
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets bit n if val is true, clears bit n if val is false. <a href="#a19"></a><br></td></tr>
82
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a20">set</a> ()</td></tr>
84
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets every bit in this bitset to 1. <a href="#a20"></a><br></td></tr>
85
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a21">set_range</a> (<a class="el" href="a00092.html#a9">bm::id_t</a> left, <a class="el" href="a00092.html#a9">bm::id_t</a> right, bool value=true)</td></tr>
87
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets all bits in the specified closed interval [left,right] Interval must be inside the bvector's size. This method DOES NOT resize vector. <a href="#a21"></a><br></td></tr>
88
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00051.html">insert_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a22">inserter</a> ()</td></tr>
90
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a23">clear_bit</a> (<a class="el" href="a00092.html#a9">bm::id_t</a> n)</td></tr>
92
<tr><td class="mdescLeft"> </td><td class="mdescRight">Clears bit n. <a href="#a23"></a><br></td></tr>
93
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a24">clear</a> (bool free_mem=false)</td></tr>
95
<tr><td class="mdescLeft"> </td><td class="mdescRight">Clears every bit in the bitvector. <a href="#a24"></a><br></td></tr>
96
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a25">reset</a> ()</td></tr>
98
<tr><td class="mdescLeft"> </td><td class="mdescRight">Clears every bit in the bitvector. <a href="#a25"></a><br></td></tr>
99
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a26">count</a> () const </td></tr>
101
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns count of bits which are 1. <a href="#a26"></a><br></td></tr>
102
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00048.html#w2">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a27">capacity</a> () const </td></tr>
104
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns bvector's capacity (number of bits it can store). <a href="#a27"></a><br></td></tr>
105
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00048.html#w2">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a28">size</a> () const </td></tr>
107
<tr><td class="mdescLeft"> </td><td class="mdescRight">return current size of the vector (bits) <a href="#a28"></a><br></td></tr>
108
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a29">resize</a> (<a class="el" href="a00048.html#w2">size_type</a> new_size)</td></tr>
110
<tr><td class="mdescLeft"> </td><td class="mdescRight">Change size of the bvector. <a href="#a29"></a><br></td></tr>
111
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a30">count_blocks</a> (unsigned *arr) const </td></tr>
113
<tr><td class="mdescLeft"> </td><td class="mdescRight">Computes bitcount values for all bvector blocks. <a href="#a30"></a><br></td></tr>
114
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a31">count_range</a> (<a class="el" href="a00092.html#a9">bm::id_t</a> left, <a class="el" href="a00092.html#a9">bm::id_t</a> right, unsigned *block_count_arr=0) const </td></tr>
116
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns count of 1 bits in the given diapason. <a href="#a31"></a><br></td></tr>
117
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a32">recalc_count</a> ()</td></tr>
119
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a33">forget_count</a> ()</td></tr>
121
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a34">invert</a> ()</td></tr>
123
<tr><td class="mdescLeft"> </td><td class="mdescRight">Inverts all bits. <a href="#a34"></a><br></td></tr>
124
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a35">get_bit</a> (<a class="el" href="a00092.html#a9">bm::id_t</a> n) const </td></tr>
126
<tr><td class="mdescLeft"> </td><td class="mdescRight">returns true if bit n is set and false is bit n is 0. <a href="#a35"></a><br></td></tr>
127
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a36">test</a> (<a class="el" href="a00092.html#a9">bm::id_t</a> n) const </td></tr>
129
<tr><td class="mdescLeft"> </td><td class="mdescRight">returns true if bit n is set and false is bit n is 0. <a href="#a36"></a><br></td></tr>
130
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a37">any</a> () const </td></tr>
132
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns true if any bits in this bitset are set, and otherwise returns false. <a href="#a37"></a><br></td></tr>
133
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a38">none</a> () const </td></tr>
135
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns true if no bits are set, otherwise returns false. <a href="#a38"></a><br></td></tr>
136
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a39">flip</a> (<a class="el" href="a00092.html#a9">bm::id_t</a> n)</td></tr>
138
<tr><td class="mdescLeft"> </td><td class="mdescRight">Flips bit n. <a href="#a39"></a><br></td></tr>
139
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a40">flip</a> ()</td></tr>
141
<tr><td class="mdescLeft"> </td><td class="mdescRight">Flips all bits. <a href="#a40"></a><br></td></tr>
142
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a41">swap</a> (<a class="el" href="a00048.html">bvector</a>< Alloc, MS > &bv)</td></tr>
144
<tr><td class="mdescLeft"> </td><td class="mdescRight">Exchanges content of bv and this bitvector. <a href="#a41"></a><br></td></tr>
145
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a42">get_first</a> () const </td></tr>
147
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets number of first bit which is ON. <a href="#a42"></a><br></td></tr>
148
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a43">get_next</a> (<a class="el" href="a00092.html#a9">bm::id_t</a> prev) const </td></tr>
150
<tr><td class="mdescLeft"> </td><td class="mdescRight">Finds the number of the next bit ON. <a href="#a43"></a><br></td></tr>
151
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a44">extract_next</a> (<a class="el" href="a00092.html#a9">bm::id_t</a> prev)</td></tr>
153
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a45">calc_stat</a> (struct <a class="el" href="a00057.html">statistics</a> *st) const </td></tr>
155
<tr><td class="mdescLeft"> </td><td class="mdescRight">Calculates bitvector statistics. <a href="#a45"></a><br></td></tr>
156
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a46">bit_or</a> (const <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS > &vect)</td></tr>
158
<tr><td class="mdescLeft"> </td><td class="mdescRight">Logical OR operation. <a href="#a46"></a><br></td></tr>
159
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a47">bit_and</a> (const <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS > &vect)</td></tr>
161
<tr><td class="mdescLeft"> </td><td class="mdescRight">Logical AND operation. <a href="#a47"></a><br></td></tr>
162
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a48">bit_xor</a> (const <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS > &vect)</td></tr>
164
<tr><td class="mdescLeft"> </td><td class="mdescRight">Logical XOR operation. <a href="#a48"></a><br></td></tr>
165
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a49">bit_sub</a> (const <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS > &vect)</td></tr>
167
<tr><td class="mdescLeft"> </td><td class="mdescRight">Logical SUB operation. <a href="#a49"></a><br></td></tr>
168
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a50">set_new_blocks_strat</a> (<a class="el" href="a00095.html#ga0">strategy</a> strat)</td></tr>
170
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets new blocks allocation strategy. <a href="#a50"></a><br></td></tr>
171
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00095.html#ga0">strategy</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a51">get_new_blocks_strat</a> () const </td></tr>
173
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns blocks allocation strategy. <a href="#a51"></a><br></td></tr>
174
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a52">stat</a> (unsigned blocks=0) const </td></tr>
176
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a53">optimize</a> (<a class="el" href="a00092.html#a10">bm::word_t</a> *temp_block=0, <a class="el" href="a00048.html#w7">optmode</a> opt_mode=opt_compress)</td></tr>
178
<tr><td class="mdescLeft"> </td><td class="mdescRight">Optimize memory bitvector's memory allocation. <a href="#a53"></a><br></td></tr>
179
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a54">optimize_gap_size</a> ()</td></tr>
181
<tr><td class="mdescLeft"> </td><td class="mdescRight">Optimize sizes of GAP blocks. <a href="#a54"></a><br></td></tr>
182
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a55">set_gap_levels</a> (const <a class="el" href="a00092.html#a19">gap_word_t</a> *glevel_len)</td></tr>
184
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets new GAP lengths table. All GAP blocks will be reallocated to match the new scheme. <a href="#a55"></a><br></td></tr>
185
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a56">compare</a> (const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > &<a class="el" href="a00048.html">bvect</a>) const </td></tr>
187
<tr><td class="mdescLeft"> </td><td class="mdescRight">Lexicographical comparison with a bitvector. <a href="#a56"></a><br></td></tr>
188
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a57">allocate_tempblock</a> () const </td></tr>
190
<tr><td class="mdescLeft"> </td><td class="mdescRight">Allocates temporary block of memory. <a href="#a57"></a><br></td></tr>
191
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a58">free_tempblock</a> (<a class="el" href="a00092.html#a10">bm::word_t</a> *block) const </td></tr>
193
<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees temporary block of memory. <a href="#a58"></a><br></td></tr>
194
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00050.html">enumerator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a59">first</a> () const </td></tr>
196
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns enumerator pointing on the first non-zero bit. <a href="#a59"></a><br></td></tr>
197
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00050.html">enumerator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a60">end</a> () const </td></tr>
199
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns enumerator pointing on the next bit after the last. <a href="#a60"></a><br></td></tr>
200
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="a00092.html#a10">bm::word_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a61">get_block</a> (unsigned nb) const </td></tr>
202
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a62">combine_operation_with_block</a> (unsigned nb, const <a class="el" href="a00092.html#a10">bm::word_t</a> *arg_blk, int arg_gap, <a class="el" href="a00092.html#a159">bm::operation</a> opcode)</td></tr>
204
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="a00048.html#w1">blocks_manager_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a63">get_blocks_manager</a> () const </td></tr>
206
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00048.html#w1">blocks_manager_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#a64">get_blocks_manager</a> ()</td></tr>
208
<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
209
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#n0">iterator_base</a></td></tr>
211
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00048.html#n1">enumerator</a></td></tr>
213
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
214
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00049.html">counted_enumerator</a></td></tr>
216
<tr><td class="mdescLeft"> </td><td class="mdescRight">Constant input iterator designed to enumerate "ON" bits <a class="el" href="a00049.html">counted_enumerator</a> keeps bitcount, ie number of ON bits starting from the position 0 in the bit string up to the currently enumerated bit. <a href="a00049.html#_details">More...</a><br></td></tr>
217
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00050.html">enumerator</a></td></tr>
219
<tr><td class="mdescLeft"> </td><td class="mdescRight">Constant input iterator designed to enumerate "ON" bits. <a href="a00050.html#_details">More...</a><br></td></tr>
220
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00051.html">insert_iterator</a></td></tr>
222
<tr><td class="mdescLeft"> </td><td class="mdescRight">Output iterator iterator designed to set "ON" bits based on input sequence of integers (bit indeces). <a href="a00051.html#_details">More...</a><br></td></tr>
223
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00052.html">iterator_base</a></td></tr>
225
<tr><td class="mdescLeft"> </td><td class="mdescRight">Base class for all iterators. <a href="a00052.html#_details">More...</a><br></td></tr>
226
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00056.html">reference</a></td></tr>
228
<tr><td class="mdescLeft"> </td><td class="mdescRight">Class reference implements an object for bit assignment. Since C++ does not provide with build-in bit type supporting l-value operations we have to emulate it. <a href="a00056.html#_details">More...</a><br></td></tr>
229
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00057.html">statistics</a></td></tr>
231
<tr><td class="mdescLeft"> </td><td class="mdescRight">Structure with statistical information about bitset's memory allocation details. <a href="a00057.html#_details">More...</a><br></td></tr>
233
<hr><a name="_details"></a><h2>Detailed Description</h2>
234
<h3>template<class Alloc, class MS><br>
235
class bm::bvector< Alloc, MS ></h3>
237
bitvector with runtime compression of bits. <dl compact><dt><b>Examples: </b></dt><dd>
240
<a class="el" href="a00034.html#_a1">sample1.cpp</a>, <a class="el" href="a00035.html#_a8">sample2.cpp</a>, <a class="el" href="a00036.html#_a13">sample3.cpp</a>, <a class="el" href="a00037.html#_a19">sample4.cpp</a>, <a class="el" href="a00038.html#_a30">sample5.cpp</a>, <a class="el" href="a00039.html#_a35">sample6.cpp</a>, <a class="el" href="a00040.html#_a37">sample7.cpp</a>, <a class="el" href="a00041.html#_a53">sample8.cpp</a>, and <a class="el" href="a00042.html#_a60">sample9.cpp</a>.</dl>
244
Definition at line <a class="el" href="a00102.html#l00107">107</a> of file <a class="el" href="a00102.html">bm.h</a>.<hr><h2>Member Typedef Documentation</h2>
245
<a class="anchor" name="w0" doxytag="bm::bvector::allocator_type"></a><p>
246
<table class="mdTable" cellpadding="2" cellspacing="0">
249
<table cellpadding="0" cellspacing="0" border="0">
251
<td class="mdPrefix" colspan="4">
252
template<class Alloc, class MS> </td>
255
<td class="md" nowrap valign="top">typedef Alloc <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::<a class="el" href="a00048.html#w0">allocator_type</a> </td>
261
<table cellspacing="5" cellpadding="0" border="0">
271
Definition at line <a class="el" href="a00102.html#l00111">111</a> of file <a class="el" href="a00102.html">bm.h</a>. </td>
274
<a class="anchor" name="w1" doxytag="bm::bvector::blocks_manager_type"></a><p>
275
<table class="mdTable" cellpadding="2" cellspacing="0">
278
<table cellpadding="0" cellspacing="0" border="0">
280
<td class="mdPrefix" colspan="4">
281
template<class Alloc, class MS> </td>
284
<td class="md" nowrap valign="top">typedef blocks_manager<Alloc, MS> <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::<a class="el" href="a00048.html#w1">blocks_manager_type</a> </td>
290
<table cellspacing="5" cellpadding="0" border="0">
300
Definition at line <a class="el" href="a00102.html#l00112">112</a> of file <a class="el" href="a00102.html">bm.h</a>. </td>
303
<a class="anchor" name="w3" doxytag="bm::bvector::const_reference"></a><p>
304
<table class="mdTable" cellpadding="2" cellspacing="0">
307
<table cellpadding="0" cellspacing="0" border="0">
309
<td class="mdPrefix" colspan="4">
310
template<class Alloc, class MS> </td>
313
<td class="md" nowrap valign="top">typedef bool <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::<a class="el" href="a00048.html#w3">const_reference</a> </td>
319
<table cellspacing="5" cellpadding="0" border="0">
329
Definition at line <a class="el" href="a00102.html#l00229">229</a> of file <a class="el" href="a00102.html">bm.h</a>. </td>
332
<a class="anchor" name="w2" doxytag="bm::bvector::size_type"></a><p>
333
<table class="mdTable" cellpadding="2" cellspacing="0">
336
<table cellpadding="0" cellspacing="0" border="0">
338
<td class="mdPrefix" colspan="4">
339
template<class Alloc, class MS> </td>
342
<td class="md" nowrap valign="top">typedef <a class="el" href="a00092.html#a9">bm::id_t</a> <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::<a class="el" href="a00048.html#w2">size_type</a> </td>
348
<table cellspacing="5" cellpadding="0" border="0">
356
Type used to count bits in the bit vector.
360
Definition at line <a class="el" href="a00102.html#l00114">114</a> of file <a class="el" href="a00102.html">bm.h</a>. </td>
363
<hr><h2>Member Enumeration Documentation</h2>
364
<a class="anchor" name="w7" doxytag="bm::bvector::optmode"></a><p>
365
<table class="mdTable" cellpadding="2" cellspacing="0">
368
<table cellpadding="0" cellspacing="0" border="0">
370
<td class="mdPrefix" colspan="4">
371
template<class Alloc, class MS> </td>
374
<td class="md" nowrap valign="top">enum <a class="el" href="a00048.html#w7">bm::bvector::optmode</a> </td>
380
<table cellspacing="5" cellpadding="0" border="0">
388
Optimization mode Every next level means additional checks (better compression vs time).
390
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00048.html#a53">optimize</a> </dd></dl>
391
<dl compact><dt><b>Enumeration values: </b></dt><dd>
392
<table border="0" cellspacing="2" cellpadding="0">
393
<tr><td valign="top"><em><a class="anchor" name="w7w4" doxytag="opt_free_0"></a>opt_free_0</em> </td><td>
394
Free unused 0 blocks. </td></tr>
395
<tr><td valign="top"><em><a class="anchor" name="w7w5" doxytag="opt_free_01"></a>opt_free_01</em> </td><td>
396
Free unused 0 and 1 blocks. </td></tr>
397
<tr><td valign="top"><em><a class="anchor" name="w7w6" doxytag="opt_compress"></a>opt_compress</em> </td><td>
398
compress blocks when possible </td></tr>
403
Definition at line <a class="el" href="a00102.html#l01317">1317</a> of file <a class="el" href="a00102.html">bm.h</a>. </td>
406
<hr><h2>Constructor & Destructor Documentation</h2>
407
<a class="anchor" name="a0" doxytag="bm::bvector::bvector"></a><p>
408
<table class="mdTable" cellpadding="2" cellspacing="0">
411
<table cellpadding="0" cellspacing="0" border="0">
413
<td class="mdPrefix" colspan="4">
414
template<class Alloc, class MS> </td>
417
<td class="md" nowrap valign="top"><a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::<a class="el" href="a00048.html">bvector</a> </td>
418
<td class="md" valign="top">( </td>
419
<td class="md" nowrap valign="top"><a class="el" href="a00095.html#ga0">strategy</a> </td>
420
<td class="mdname" nowrap> <em>strat</em> = <code>BM_BIT</code>, </td>
423
<td class="md" nowrap align="right"></td>
425
<td class="md" nowrap>const <a class="el" href="a00092.html#a19">gap_word_t</a> * </td>
426
<td class="mdname" nowrap> <em>glevel_len</em> = <code><a class="el" href="a00068.html">bm::gap_len_table</a><true>::_len</code>, </td>
429
<td class="md" nowrap align="right"></td>
431
<td class="md" nowrap><a class="el" href="a00048.html#w2">size_type</a> </td>
432
<td class="mdname" nowrap> <em>bv_size</em> = <code><a class="el" href="a00092.html#a12">bm::id_max</a></code>, </td>
435
<td class="md" nowrap align="right"></td>
437
<td class="md" nowrap>const Alloc & </td>
438
<td class="mdname" nowrap> <em>alloc</em> = <code>Alloc()</code></td>
442
<td class="md">) </td>
443
<td class="md" colspan="2"><code> [inline]</code></td>
449
<table cellspacing="5" cellpadding="0" border="0">
457
Constructs bvector class.
459
<dl compact><dt><b>Parameters:</b></dt><dd>
460
<table border="0" cellspacing="2" cellpadding="0">
461
<tr><td valign="top"></td><td valign="top"><em>strat</em> </td><td>- operation mode strategy, BM_BIT - default strategy, bvector use plain bitset blocks, (performance oriented strategy). BM_GAP - memory effitent strategy, bvector allocates blocks as array of intervals(gaps) and convert blocks into plain bitsets only when enthropy grows. </td></tr>
462
<tr><td valign="top"></td><td valign="top"><em>glevel_len</em> </td><td><ul>
463
<li>pointer on C-style array keeping GAP block sizes. (Put <a class="el" href="a00069.html#s0">bm::gap_len_table_min<true>::_len</a> for GAP memory saving mode) </li></ul>
465
<tr><td valign="top"></td><td valign="top"><em>bv_size</em> </td><td><ul>
466
<li>bvector size (number of bits addressable by bvector), <a class="el" href="a00092.html#a12">bm::id_max</a> means "no limits" (recommended). bit vector allocates this space dynamically on demand.</li></ul>
470
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00068.html">bm::gap_len_table</a> <a class="el" href="a00069.html">bm::gap_len_table_min</a> <a class="el" href="a00048.html#a50">set_new_blocks_strat</a> </dd></dl>
473
Definition at line <a class="el" href="a00102.html#l00840">840</a> of file <a class="el" href="a00102.html">bm.h</a>. </td>
476
<a class="anchor" name="a1" doxytag="bm::bvector::bvector"></a><p>
477
<table class="mdTable" cellpadding="2" cellspacing="0">
480
<table cellpadding="0" cellspacing="0" border="0">
482
<td class="mdPrefix" colspan="4">
483
template<class Alloc, class MS> </td>
486
<td class="md" nowrap valign="top"><a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::<a class="el" href="a00048.html">bvector</a> </td>
487
<td class="md" valign="top">( </td>
488
<td class="md" nowrap valign="top"><a class="el" href="a00048.html#w2">size_type</a> </td>
489
<td class="mdname" nowrap> <em>bv_size</em>, </td>
492
<td class="md" nowrap align="right"></td>
494
<td class="md" nowrap><a class="el" href="a00095.html#ga0">strategy</a> </td>
495
<td class="mdname" nowrap> <em>strat</em> = <code>BM_BIT</code>, </td>
498
<td class="md" nowrap align="right"></td>
500
<td class="md" nowrap>const <a class="el" href="a00092.html#a19">gap_word_t</a> * </td>
501
<td class="mdname" nowrap> <em>glevel_len</em> = <code><a class="el" href="a00068.html">bm::gap_len_table</a><true>::_len</code>, </td>
504
<td class="md" nowrap align="right"></td>
506
<td class="md" nowrap>const Alloc & </td>
507
<td class="mdname" nowrap> <em>alloc</em> = <code>Alloc()</code></td>
511
<td class="md">) </td>
512
<td class="md" colspan="2"><code> [inline]</code></td>
518
<table cellspacing="5" cellpadding="0" border="0">
526
Constructs bvector class.
530
Definition at line <a class="el" href="a00102.html#l00852">852</a> of file <a class="el" href="a00102.html">bm.h</a>. </td>
533
<a class="anchor" name="a2" doxytag="bm::bvector::bvector"></a><p>
534
<table class="mdTable" cellpadding="2" cellspacing="0">
537
<table cellpadding="0" cellspacing="0" border="0">
539
<td class="mdPrefix" colspan="4">
540
template<class Alloc, class MS> </td>
543
<td class="md" nowrap valign="top"><a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::<a class="el" href="a00048.html">bvector</a> </td>
544
<td class="md" valign="top">( </td>
545
<td class="md" nowrap valign="top">const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td>
546
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
547
<td class="md" valign="top"> ) </td>
548
<td class="md" nowrap><code> [inline]</code></td>
554
<table cellspacing="5" cellpadding="0" border="0">
564
Definition at line <a class="el" href="a00102.html#l00862">862</a> of file <a class="el" href="a00102.html">bm.h</a>. </td>
567
<hr><h2>Member Function Documentation</h2>
568
<a class="anchor" name="a57" doxytag="bm::bvector::allocate_tempblock"></a><p>
569
<table class="mdTable" cellpadding="2" cellspacing="0">
572
<table cellpadding="0" cellspacing="0" border="0">
574
<td class="mdPrefix" colspan="4">
575
template<class Alloc, class MS> </td>
578
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a>* <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::allocate_tempblock </td>
579
<td class="md" valign="top">( </td>
580
<td class="mdname1" valign="top" nowrap> </td>
581
<td class="md" valign="top"> ) </td>
582
<td class="md" nowrap> const<code> [inline]</code></td>
588
<table cellspacing="5" cellpadding="0" border="0">
596
Allocates temporary block of memory.
598
Temp block can be passed to bvector functions requiring some temp memory for their operation. (like serialize)<p>
599
<dl compact><dt><b>Note:</b></dt><dd>method is marked const, but it's not quite true, since it can in some cases modify the state of the block allocator (if it has a state). (Can be important in MT programs).</dd></dl>
600
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00048.html#a58">free_tempblock</a> </dd></dl>
603
Definition at line <a class="el" href="a00102.html#l01374">1374</a> of file <a class="el" href="a00102.html">bm.h</a>. </td>
606
<a class="anchor" name="a37" doxytag="bm::bvector::any"></a><p>
607
<table class="mdTable" cellpadding="2" cellspacing="0">
610
<table cellpadding="0" cellspacing="0" border="0">
612
<td class="mdPrefix" colspan="4">
613
template<class Alloc, class MS> </td>
616
<td class="md" nowrap valign="top">bool <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::any </td>
617
<td class="md" valign="top">( </td>
618
<td class="mdname1" valign="top" nowrap> </td>
619
<td class="md" valign="top"> ) </td>
620
<td class="md" nowrap> const<code> [inline]</code></td>
626
<table cellspacing="5" cellpadding="0" border="0">
634
Returns true if any bits in this bitset are set, and otherwise returns false.
636
<dl compact><dt><b>Returns:</b></dt><dd>true if any bit is set </dd></dl>
639
Definition at line <a class="el" href="a00102.html#l01149">1149</a> of file <a class="el" href="a00102.html">bm.h</a>.
641
References <a class="el" href="a00106.html#l00462">bm::for_each_nzblock_if()</a>.
643
Referenced by <a class="el" href="a00102.html#l01165">bm::bvector< Alloc, MS >::none()</a>. </td>
646
<a class="anchor" name="a47" doxytag="bm::bvector::bit_and"></a><p>
647
<table class="mdTable" cellpadding="2" cellspacing="0">
650
<table cellpadding="0" cellspacing="0" border="0">
652
<td class="mdPrefix" colspan="4">
653
template<class Alloc, class MS> </td>
656
<td class="md" nowrap valign="top"><a class="el" href="a00048.html">bm::bvector</a><Alloc, MS>& <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::bit_and </td>
657
<td class="md" valign="top">( </td>
658
<td class="md" nowrap valign="top">const <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS > & </td>
659
<td class="mdname1" valign="top" nowrap> <em>vect</em> </td>
660
<td class="md" valign="top"> ) </td>
661
<td class="md" nowrap><code> [inline]</code></td>
667
<table cellspacing="5" cellpadding="0" border="0">
675
Logical AND operation.
677
<dl compact><dt><b>Parameters:</b></dt><dd>
678
<table border="0" cellspacing="2" cellpadding="0">
679
<tr><td valign="top"></td><td valign="top"><em>vect</em> </td><td>- Argument vector. </td></tr>
684
Definition at line <a class="el" href="a00102.html#l01259">1259</a> of file <a class="el" href="a00102.html">bm.h</a>.
686
References <a class="el" href="a00092.html#a159a1">bm::BM_AND</a>, and <a class="el" href="a00102.html#l00076">BMCOUNT_VALID</a>.
688
Referenced by <a class="el" href="a00102.html#l01517">bm::operator &()</a>, and <a class="el" href="a00102.html#l00891">bm::bvector< Alloc, MS >::operator &=()</a>. </td>
691
<a class="anchor" name="a46" doxytag="bm::bvector::bit_or"></a><p>
692
<table class="mdTable" cellpadding="2" cellspacing="0">
695
<table cellpadding="0" cellspacing="0" border="0">
697
<td class="mdPrefix" colspan="4">
698
template<class Alloc, class MS> </td>
701
<td class="md" nowrap valign="top"><a class="el" href="a00048.html">bm::bvector</a><Alloc, MS>& <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::bit_or </td>
702
<td class="md" valign="top">( </td>
703
<td class="md" nowrap valign="top">const <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS > & </td>
704
<td class="mdname1" valign="top" nowrap> <em>vect</em> </td>
705
<td class="md" valign="top"> ) </td>
706
<td class="md" nowrap><code> [inline]</code></td>
712
<table cellspacing="5" cellpadding="0" border="0">
720
Logical OR operation.
722
<dl compact><dt><b>Parameters:</b></dt><dd>
723
<table border="0" cellspacing="2" cellpadding="0">
724
<tr><td valign="top"></td><td valign="top"><em>vect</em> </td><td>- Argument vector. </td></tr>
729
Definition at line <a class="el" href="a00102.html#l01248">1248</a> of file <a class="el" href="a00102.html">bm.h</a>.
731
References <a class="el" href="a00092.html#a159a2">bm::BM_OR</a>, and <a class="el" href="a00102.html#l00076">BMCOUNT_VALID</a>.
733
Referenced by <a class="el" href="a00102.html#l00870">bm::bvector< Alloc, MS >::operator=()</a>, <a class="el" href="a00102.html#l01532">bm::operator|()</a>, and <a class="el" href="a00102.html#l00901">bm::bvector< Alloc, MS >::operator|=()</a>. </td>
736
<a class="anchor" name="a49" doxytag="bm::bvector::bit_sub"></a><p>
737
<table class="mdTable" cellpadding="2" cellspacing="0">
740
<table cellpadding="0" cellspacing="0" border="0">
742
<td class="mdPrefix" colspan="4">
743
template<class Alloc, class MS> </td>
746
<td class="md" nowrap valign="top"><a class="el" href="a00048.html">bm::bvector</a><Alloc, MS>& <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::bit_sub </td>
747
<td class="md" valign="top">( </td>
748
<td class="md" nowrap valign="top">const <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS > & </td>
749
<td class="mdname1" valign="top" nowrap> <em>vect</em> </td>
750
<td class="md" valign="top"> ) </td>
751
<td class="md" nowrap><code> [inline]</code></td>
757
<table cellspacing="5" cellpadding="0" border="0">
765
Logical SUB operation.
767
<dl compact><dt><b>Parameters:</b></dt><dd>
768
<table border="0" cellspacing="2" cellpadding="0">
769
<tr><td valign="top"></td><td valign="top"><em>vect</em> </td><td>- Argument vector. </td></tr>
774
Definition at line <a class="el" href="a00102.html#l01281">1281</a> of file <a class="el" href="a00102.html">bm.h</a>.
776
References <a class="el" href="a00092.html#a159a3">bm::BM_SUB</a>, and <a class="el" href="a00102.html#l00076">BMCOUNT_VALID</a>.
778
Referenced by <a class="el" href="a00102.html#l01562">bm::operator-()</a>, and <a class="el" href="a00102.html#l00906">bm::bvector< Alloc, MS >::operator-=()</a>. </td>
781
<a class="anchor" name="a48" doxytag="bm::bvector::bit_xor"></a><p>
782
<table class="mdTable" cellpadding="2" cellspacing="0">
785
<table cellpadding="0" cellspacing="0" border="0">
787
<td class="mdPrefix" colspan="4">
788
template<class Alloc, class MS> </td>
791
<td class="md" nowrap valign="top"><a class="el" href="a00048.html">bm::bvector</a><Alloc, MS>& <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::bit_xor </td>
792
<td class="md" valign="top">( </td>
793
<td class="md" nowrap valign="top">const <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS > & </td>
794
<td class="mdname1" valign="top" nowrap> <em>vect</em> </td>
795
<td class="md" valign="top"> ) </td>
796
<td class="md" nowrap><code> [inline]</code></td>
802
<table cellspacing="5" cellpadding="0" border="0">
810
Logical XOR operation.
812
<dl compact><dt><b>Parameters:</b></dt><dd>
813
<table border="0" cellspacing="2" cellpadding="0">
814
<tr><td valign="top"></td><td valign="top"><em>vect</em> </td><td>- Argument vector. </td></tr>
819
Definition at line <a class="el" href="a00102.html#l01270">1270</a> of file <a class="el" href="a00102.html">bm.h</a>.
821
References <a class="el" href="a00092.html#a159a4">bm::BM_XOR</a>, and <a class="el" href="a00102.html#l00076">BMCOUNT_VALID</a>.
823
Referenced by <a class="el" href="a00102.html#l01547">bm::operator^()</a>, and <a class="el" href="a00102.html#l00896">bm::bvector< Alloc, MS >::operator^=()</a>. </td>
826
<a class="anchor" name="a45" doxytag="bm::bvector::calc_stat"></a><p>
827
<table class="mdTable" cellpadding="2" cellspacing="0">
830
<table cellpadding="0" cellspacing="0" border="0">
832
<td class="mdPrefix" colspan="4">
833
template<class Alloc, class MS> </td>
836
<td class="md" nowrap valign="top">void <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::calc_stat </td>
837
<td class="md" valign="top">( </td>
838
<td class="md" nowrap valign="top">struct <a class="el" href="a00057.html">statistics</a> * </td>
839
<td class="mdname1" valign="top" nowrap> <em>st</em> </td>
840
<td class="md" valign="top"> ) </td>
841
<td class="md" nowrap> const</td>
847
<table cellspacing="5" cellpadding="0" border="0">
855
Calculates bitvector statistics.
857
<dl compact><dt><b>Parameters:</b></dt><dd>
858
<table border="0" cellspacing="2" cellpadding="0">
859
<tr><td valign="top"></td><td valign="top"><em>st</em> </td><td>- pointer on statistics structure to be filled in.</td></tr>
862
Function fills statistics structure containing information about how this vector uses memory and estimation of max. amount of memory bvector needs to serialize itself.<p>
863
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00057.html">statistics</a> </dd></dl>
864
<dl compact><dt><b>Examples: </b></dt><dd>
865
<a class="el" href="a00040.html#a42">sample7.cpp</a>.</dl>
867
Referenced by <a class="el" href="a00117.html#l00066">CreateSets()</a>, <a class="el" href="a00117.html#l00087">FillSets()</a>, <a class="el" href="a00102.html#l01808">bm::bvector< Alloc, MS >::optimize_gap_size()</a>, and <a class="el" href="a00114.html#l00077">serialize_bvector()</a>. </td>
870
<a class="anchor" name="a27" doxytag="bm::bvector::capacity"></a><p>
871
<table class="mdTable" cellpadding="2" cellspacing="0">
874
<table cellpadding="0" cellspacing="0" border="0">
876
<td class="mdPrefix" colspan="4">
877
template<class Alloc, class MS> </td>
880
<td class="md" nowrap valign="top"><a class="el" href="a00048.html#w2">size_type</a> <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::capacity </td>
881
<td class="md" valign="top">( </td>
882
<td class="mdname1" valign="top" nowrap> </td>
883
<td class="md" valign="top"> ) </td>
884
<td class="md" nowrap> const<code> [inline]</code></td>
890
<table cellspacing="5" cellpadding="0" border="0">
898
Returns bvector's capacity (number of bits it can store).
902
Definition at line <a class="el" href="a00102.html#l01056">1056</a> of file <a class="el" href="a00102.html">bm.h</a>. </td>
905
<a class="anchor" name="a24" doxytag="bm::bvector::clear"></a><p>
906
<table class="mdTable" cellpadding="2" cellspacing="0">
909
<table cellpadding="0" cellspacing="0" border="0">
911
<td class="mdPrefix" colspan="4">
912
template<class Alloc, class MS> </td>
915
<td class="md" nowrap valign="top">void <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::clear </td>
916
<td class="md" valign="top">( </td>
917
<td class="md" nowrap valign="top">bool </td>
918
<td class="mdname1" valign="top" nowrap> <em>free_mem</em> = <code>false</code> </td>
919
<td class="md" valign="top"> ) </td>
920
<td class="md" nowrap><code> [inline]</code></td>
926
<table cellspacing="5" cellpadding="0" border="0">
934
Clears every bit in the bitvector.
936
<dl compact><dt><b>Parameters:</b></dt><dd>
937
<table border="0" cellspacing="2" cellpadding="0">
938
<tr><td valign="top"></td><td valign="top"><em>free_mem</em> </td><td>if "true" (default) bvector frees the memory, otherwise sets blocks to 0. </td></tr>
943
Definition at line <a class="el" href="a00102.html#l01030">1030</a> of file <a class="el" href="a00102.html">bm.h</a>.
945
References <a class="el" href="a00102.html#l00077">BMCOUNT_SET</a>.
947
Referenced by <a class="el" href="a00111.html#l00044">main()</a>, <a class="el" href="a00102.html#l00870">bm::bvector< Alloc, MS >::operator=()</a>, and <a class="el" href="a00102.html#l01040">bm::bvector< Alloc, MS >::reset()</a>. </td>
950
<a class="anchor" name="a23" doxytag="bm::bvector::clear_bit"></a><p>
951
<table class="mdTable" cellpadding="2" cellspacing="0">
954
<table cellpadding="0" cellspacing="0" border="0">
956
<td class="mdPrefix" colspan="4">
957
template<class Alloc, class MS> </td>
960
<td class="md" nowrap valign="top">void <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::clear_bit </td>
961
<td class="md" valign="top">( </td>
962
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td>
963
<td class="mdname1" valign="top" nowrap> <em>n</em> </td>
964
<td class="md" valign="top"> ) </td>
965
<td class="md" nowrap><code> [inline]</code></td>
971
<table cellspacing="5" cellpadding="0" border="0">
981
<dl compact><dt><b>Parameters:</b></dt><dd>
982
<table border="0" cellspacing="2" cellpadding="0">
983
<tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>- bit's index to be cleaned. </td></tr>
988
Definition at line <a class="el" href="a00102.html#l01018">1018</a> of file <a class="el" href="a00102.html">bm.h</a>.
990
References <a class="el" href="a00102.html#l00983">bm::bvector< Alloc, MS >::set()</a>. </td>
993
<a class="anchor" name="a62" doxytag="bm::bvector::combine_operation_with_block"></a><p>
994
<table class="mdTable" cellpadding="2" cellspacing="0">
997
<table cellpadding="0" cellspacing="0" border="0">
999
<td class="mdPrefix" colspan="4">
1000
template<class Alloc, class MS> </td>
1003
<td class="md" nowrap valign="top">void <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::combine_operation_with_block </td>
1004
<td class="md" valign="top">( </td>
1005
<td class="md" nowrap valign="top">unsigned </td>
1006
<td class="mdname" nowrap> <em>nb</em>, </td>
1009
<td class="md" nowrap align="right"></td>
1010
<td class="md"></td>
1011
<td class="md" nowrap>const <a class="el" href="a00092.html#a10">bm::word_t</a> * </td>
1012
<td class="mdname" nowrap> <em>arg_blk</em>, </td>
1015
<td class="md" nowrap align="right"></td>
1016
<td class="md"></td>
1017
<td class="md" nowrap>int </td>
1018
<td class="mdname" nowrap> <em>arg_gap</em>, </td>
1021
<td class="md" nowrap align="right"></td>
1022
<td class="md"></td>
1023
<td class="md" nowrap><a class="el" href="a00092.html#a159">bm::operation</a> </td>
1024
<td class="mdname" nowrap> <em>opcode</em></td>
1027
<td class="md"></td>
1028
<td class="md">) </td>
1029
<td class="md" colspan="2"><code> [inline]</code></td>
1035
<table cellspacing="5" cellpadding="0" border="0">
1045
Definition at line <a class="el" href="a00102.html#l01446">1446</a> of file <a class="el" href="a00102.html">bm.h</a>.
1047
References <a class="el" href="a00105.html#l00059">BM_IS_GAP</a>, and <a class="el" href="a00102.html#l01416">bm::bvector< Alloc, MS >::get_block()</a>. </td>
1050
<a class="anchor" name="a56" doxytag="bm::bvector::compare"></a><p>
1051
<table class="mdTable" cellpadding="2" cellspacing="0">
1054
<table cellpadding="0" cellspacing="0" border="0">
1056
<td class="mdPrefix" colspan="4">
1057
template<typename Alloc, typename MS> </td>
1060
<td class="md" nowrap valign="top">int <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::compare </td>
1061
<td class="md" valign="top">( </td>
1062
<td class="md" nowrap valign="top">const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td>
1063
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
1064
<td class="md" valign="top"> ) </td>
1065
<td class="md" nowrap> const</td>
1071
<table cellspacing="5" cellpadding="0" border="0">
1079
Lexicographical comparison with a bitvector.
1081
Function compares current bitvector with the provided argument bit by bit and returns -1 if our bitvector less than the argument, 1 - greater, 0 - equal.
1083
Definition at line <a class="el" href="a00102.html#l01845">1845</a> of file <a class="el" href="a00102.html">bm.h</a>.
1085
References <a class="el" href="a00106.html#l02309">bm::bit_is_all_zero()</a>, <a class="el" href="a00106.html#l01786">bm::bitcmp()</a>, <a class="el" href="a00102.html#l01505">bm::bvector< Alloc, MS >::blockman_</a>, <a class="el" href="a00105.html#l00059">BM_IS_GAP</a>, <a class="el" href="a00105.html#l00057">BMGAP_PTR</a>, <a class="el" href="a00106.html#l01456">bm::gap_convert_to_bitset()</a>, <a class="el" href="a00106.html#l01649">bm::gap_is_all_zero()</a>, and <a class="el" href="a00106.html#l00627">bm::gapcmp()</a>.
1087
Referenced by <a class="el" href="a00112.html#l00055">main()</a>, <a class="el" href="a00102.html#l00936">bm::bvector< Alloc, MS >::operator!=()</a>, <a class="el" href="a00102.html#l00911">bm::bvector< Alloc, MS >::operator<()</a>, <a class="el" href="a00102.html#l00916">bm::bvector< Alloc, MS >::operator<=()</a>, <a class="el" href="a00102.html#l00931">bm::bvector< Alloc, MS >::operator==()</a>, <a class="el" href="a00102.html#l00921">bm::bvector< Alloc, MS >::operator>()</a>, and <a class="el" href="a00102.html#l00926">bm::bvector< Alloc, MS >::operator>=()</a>. </td>
1090
<a class="anchor" name="a26" doxytag="bm::bvector::count"></a><p>
1091
<table class="mdTable" cellpadding="2" cellspacing="0">
1094
<table cellpadding="0" cellspacing="0" border="0">
1096
<td class="mdPrefix" colspan="4">
1097
template<typename Alloc, typename MS> </td>
1100
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::count </td>
1101
<td class="md" valign="top">( </td>
1102
<td class="mdname1" valign="top" nowrap> </td>
1103
<td class="md" valign="top"> ) </td>
1104
<td class="md" nowrap> const</td>
1110
<table cellspacing="5" cellpadding="0" border="0">
1118
Returns count of bits which are 1.
1120
<dl compact><dt><b>Returns:</b></dt><dd>Total number of bits ON. </dd></dl>
1121
<dl compact><dt><b>Examples: </b></dt><dd>
1122
<a class="el" href="a00040.html#a48">sample7.cpp</a>.</dl>
1124
Definition at line <a class="el" href="a00102.html#l01603">1603</a> of file <a class="el" href="a00102.html">bm.h</a>.
1126
References <a class="el" href="a00102.html#l00077">BMCOUNT_SET</a>, and <a class="el" href="a00106.html#l00437">bm::for_each_nzblock()</a>.
1128
Referenced by <a class="el" href="a00102.html#l01638">bm::bvector< Alloc, MS >::count_range()</a>, <a class="el" href="a00111.html#l00044">main()</a>, <a class="el" href="a00117.html#l00153">OrSets()</a>, <a class="el" href="a00102.html#l01104">bm::bvector< Alloc, MS >::recalc_count()</a>, <a class="el" href="a00114.html#l00077">serialize_bvector()</a>, and <a class="el" href="a00102.html#l02132">bm::bvector< Alloc, MS >::stat()</a>. </td>
1131
<a class="anchor" name="a30" doxytag="bm::bvector::count_blocks"></a><p>
1132
<table class="mdTable" cellpadding="2" cellspacing="0">
1135
<table cellpadding="0" cellspacing="0" border="0">
1137
<td class="mdPrefix" colspan="4">
1138
template<class Alloc, class MS> </td>
1141
<td class="md" nowrap valign="top">unsigned <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::count_blocks </td>
1142
<td class="md" valign="top">( </td>
1143
<td class="md" nowrap valign="top">unsigned * </td>
1144
<td class="mdname1" valign="top" nowrap> <em>arr</em> </td>
1145
<td class="md" valign="top"> ) </td>
1146
<td class="md" nowrap> const<code> [inline]</code></td>
1152
<table cellspacing="5" cellpadding="0" border="0">
1160
Computes bitcount values for all bvector blocks.
1162
<dl compact><dt><b>Parameters:</b></dt><dd>
1163
<table border="0" cellspacing="2" cellpadding="0">
1164
<tr><td valign="top"></td><td valign="top"><em>arr</em> </td><td>- pointer on array of block bit counts </td></tr>
1167
<dl compact><dt><b>Returns:</b></dt><dd>Index of the last block counted. This number +1 gives you number of arr elements initialized during the function call. </dd></dl>
1170
Definition at line <a class="el" href="a00102.html#l01081">1081</a> of file <a class="el" href="a00102.html">bm.h</a>.
1172
References <a class="el" href="a00106.html#l00437">bm::for_each_nzblock()</a>. </td>
1175
<a class="anchor" name="a31" doxytag="bm::bvector::count_range"></a><p>
1176
<table class="mdTable" cellpadding="2" cellspacing="0">
1179
<table cellpadding="0" cellspacing="0" border="0">
1181
<td class="mdPrefix" colspan="4">
1182
template<typename Alloc, typename MS> </td>
1185
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::count_range </td>
1186
<td class="md" valign="top">( </td>
1187
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td>
1188
<td class="mdname" nowrap> <em>left</em>, </td>
1191
<td class="md" nowrap align="right"></td>
1192
<td class="md"></td>
1193
<td class="md" nowrap><a class="el" href="a00092.html#a9">bm::id_t</a> </td>
1194
<td class="mdname" nowrap> <em>right</em>, </td>
1197
<td class="md" nowrap align="right"></td>
1198
<td class="md"></td>
1199
<td class="md" nowrap>unsigned * </td>
1200
<td class="mdname" nowrap> <em>block_count_arr</em> = <code>0</code></td>
1203
<td class="md"></td>
1204
<td class="md">) </td>
1205
<td class="md" colspan="2"> const</td>
1211
<table cellspacing="5" cellpadding="0" border="0">
1219
Returns count of 1 bits in the given diapason.
1221
<dl compact><dt><b>Parameters:</b></dt><dd>
1222
<table border="0" cellspacing="2" cellpadding="0">
1223
<tr><td valign="top"></td><td valign="top"><em>left</em> </td><td>- index of first bit start counting from </td></tr>
1224
<tr><td valign="top"></td><td valign="top"><em>right</em> </td><td>- index of last bit </td></tr>
1225
<tr><td valign="top"></td><td valign="top"><em>block_count_arr</em> </td><td>- optional parameter (bitcount by bvector blocks) calculated by count_blocks method. Used to improve performance of wide range searches </td></tr>
1228
<dl compact><dt><b>Returns:</b></dt><dd>Total number of bits ON. </dd></dl>
1231
Definition at line <a class="el" href="a00102.html#l01638">1638</a> of file <a class="el" href="a00102.html">bm.h</a>.
1233
References <a class="el" href="a00106.html#l02201">bm::bit_block_calc_count_range()</a>, <a class="el" href="a00105.html#l00014">BM_ASSERT</a>, <a class="el" href="a00105.html#l00059">BM_IS_GAP</a>, <a class="el" href="a00105.html#l00057">BMGAP_PTR</a>, <a class="el" href="a00102.html#l01603">bm::bvector< Alloc, MS >::count()</a>, <a class="el" href="a00106.html#l00579">bm::gap_bit_count_range()</a>, and <a class="el" href="a00102.html#l01416">bm::bvector< Alloc, MS >::get_block()</a>. </td>
1236
<a class="anchor" name="a60" doxytag="bm::bvector::end"></a><p>
1237
<table class="mdTable" cellpadding="2" cellspacing="0">
1240
<table cellpadding="0" cellspacing="0" border="0">
1242
<td class="mdPrefix" colspan="4">
1243
template<class Alloc, class MS> </td>
1246
<td class="md" nowrap valign="top"><a class="el" href="a00050.html">bvector::enumerator</a> <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::end </td>
1247
<td class="md" valign="top">( </td>
1248
<td class="mdname1" valign="top" nowrap> </td>
1249
<td class="md" valign="top"> ) </td>
1250
<td class="md" nowrap> const<code> [inline]</code></td>
1256
<table cellspacing="5" cellpadding="0" border="0">
1264
Returns enumerator pointing on the next bit after the last.
1266
<dl compact><dt><b>Examples: </b></dt><dd>
1267
<a class="el" href="a00040.html#a45">sample7.cpp</a>.</dl>
1269
Definition at line <a class="el" href="a00102.html#l01409">1409</a> of file <a class="el" href="a00102.html">bm.h</a>.
1271
Referenced by <a class="el" href="a00117.html#l00121">EnumerateSets()</a>, and <a class="el" href="a00115.html#l00046">main()</a>. </td>
1274
<a class="anchor" name="a44" doxytag="bm::bvector::extract_next"></a><p>
1275
<table class="mdTable" cellpadding="2" cellspacing="0">
1278
<table cellpadding="0" cellspacing="0" border="0">
1280
<td class="mdPrefix" colspan="4">
1281
template<class Alloc, class MS> </td>
1284
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::extract_next </td>
1285
<td class="md" valign="top">( </td>
1286
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td>
1287
<td class="mdname1" valign="top" nowrap> <em>prev</em> </td>
1288
<td class="md" valign="top"> ) </td>
1289
<td class="md" nowrap><code> [inline]</code></td>
1295
<table cellspacing="5" cellpadding="0" border="0">
1305
Definition at line <a class="el" href="a00102.html#l01225">1225</a> of file <a class="el" href="a00102.html">bm.h</a>. </td>
1308
<a class="anchor" name="a59" doxytag="bm::bvector::first"></a><p>
1309
<table class="mdTable" cellpadding="2" cellspacing="0">
1312
<table cellpadding="0" cellspacing="0" border="0">
1314
<td class="mdPrefix" colspan="4">
1315
template<class Alloc, class MS> </td>
1318
<td class="md" nowrap valign="top"><a class="el" href="a00050.html">enumerator</a> <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::first </td>
1319
<td class="md" valign="top">( </td>
1320
<td class="mdname1" valign="top" nowrap> </td>
1321
<td class="md" valign="top"> ) </td>
1322
<td class="md" nowrap> const<code> [inline]</code></td>
1328
<table cellspacing="5" cellpadding="0" border="0">
1336
Returns enumerator pointing on the first non-zero bit.
1338
<dl compact><dt><b>Examples: </b></dt><dd>
1339
<a class="el" href="a00040.html#a44">sample7.cpp</a>.</dl>
1341
Definition at line <a class="el" href="a00102.html#l01399">1399</a> of file <a class="el" href="a00102.html">bm.h</a>.
1343
Referenced by <a class="el" href="a00117.html#l00121">EnumerateSets()</a>, and <a class="el" href="a00115.html#l00046">main()</a>. </td>
1346
<a class="anchor" name="a40" doxytag="bm::bvector::flip"></a><p>
1347
<table class="mdTable" cellpadding="2" cellspacing="0">
1350
<table cellpadding="0" cellspacing="0" border="0">
1352
<td class="mdPrefix" colspan="4">
1353
template<class Alloc, class MS> </td>
1356
<td class="md" nowrap valign="top"><a class="el" href="a00048.html">bvector</a><Alloc, MS>& <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::flip </td>
1357
<td class="md" valign="top">( </td>
1358
<td class="mdname1" valign="top" nowrap> </td>
1359
<td class="md" valign="top"> ) </td>
1360
<td class="md" nowrap><code> [inline]</code></td>
1366
<table cellspacing="5" cellpadding="0" border="0">
1376
<dl compact><dt><b>Returns:</b></dt><dd>*this </dd></dl>
1379
Definition at line <a class="el" href="a00102.html#l01184">1184</a> of file <a class="el" href="a00102.html">bm.h</a>.
1381
References <a class="el" href="a00102.html#l01732">bm::bvector< Alloc, MS >::invert()</a>. </td>
1384
<a class="anchor" name="a39" doxytag="bm::bvector::flip"></a><p>
1385
<table class="mdTable" cellpadding="2" cellspacing="0">
1388
<table cellpadding="0" cellspacing="0" border="0">
1390
<td class="mdPrefix" colspan="4">
1391
template<class Alloc, class MS> </td>
1394
<td class="md" nowrap valign="top"><a class="el" href="a00048.html">bvector</a><Alloc, MS>& <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::flip </td>
1395
<td class="md" valign="top">( </td>
1396
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td>
1397
<td class="mdname1" valign="top" nowrap> <em>n</em> </td>
1398
<td class="md" valign="top"> ) </td>
1399
<td class="md" nowrap><code> [inline]</code></td>
1405
<table cellspacing="5" cellpadding="0" border="0">
1415
<dl compact><dt><b>Returns:</b></dt><dd>*this </dd></dl>
1418
Definition at line <a class="el" href="a00102.html#l01174">1174</a> of file <a class="el" href="a00102.html">bm.h</a>.
1420
References <a class="el" href="a00102.html#l01756">bm::bvector< Alloc, MS >::get_bit()</a>, and <a class="el" href="a00102.html#l00983">bm::bvector< Alloc, MS >::set()</a>. </td>
1423
<a class="anchor" name="a33" doxytag="bm::bvector::forget_count"></a><p>
1424
<table class="mdTable" cellpadding="2" cellspacing="0">
1427
<table cellpadding="0" cellspacing="0" border="0">
1429
<td class="mdPrefix" colspan="4">
1430
template<class Alloc, class MS> </td>
1433
<td class="md" nowrap valign="top">void <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::forget_count </td>
1434
<td class="md" valign="top">( </td>
1435
<td class="mdname1" valign="top" nowrap> </td>
1436
<td class="md" valign="top"> ) </td>
1437
<td class="md" nowrap><code> [inline]</code></td>
1443
<table cellspacing="5" cellpadding="0" border="0">
1451
Disables count cache. Next call to <a class="el" href="a00048.html#a26">count()</a> or <a class="el" href="a00048.html#a32">recalc_count()</a> restores count caching.<p>
1452
<dl compact><dt><b>Note:</b></dt><dd>Works only if BMCOUNTOPT enabled(defined). Othewise does nothing. </dd></dl>
1455
Definition at line <a class="el" href="a00102.html#l01117">1117</a> of file <a class="el" href="a00102.html">bm.h</a>.
1457
References <a class="el" href="a00102.html#l00076">BMCOUNT_VALID</a>. </td>
1460
<a class="anchor" name="a58" doxytag="bm::bvector::free_tempblock"></a><p>
1461
<table class="mdTable" cellpadding="2" cellspacing="0">
1464
<table cellpadding="0" cellspacing="0" border="0">
1466
<td class="mdPrefix" colspan="4">
1467
template<class Alloc, class MS> </td>
1470
<td class="md" nowrap valign="top">void <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::free_tempblock </td>
1471
<td class="md" valign="top">( </td>
1472
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a> * </td>
1473
<td class="mdname1" valign="top" nowrap> <em>block</em> </td>
1474
<td class="md" valign="top"> ) </td>
1475
<td class="md" nowrap> const<code> [inline]</code></td>
1481
<table cellspacing="5" cellpadding="0" border="0">
1489
Frees temporary block of memory.
1491
<dl compact><dt><b>Note:</b></dt><dd>method is marked const, but it's not quite true, since it can in some cases modify the state of the block allocator (if it has a state). (Can be important in MT programs).</dd></dl>
1492
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00048.html#a57">allocate_tempblock</a> </dd></dl>
1495
Definition at line <a class="el" href="a00102.html#l01389">1389</a> of file <a class="el" href="a00102.html">bm.h</a>. </td>
1498
<a class="anchor" name="a17" doxytag="bm::bvector::get_allocator"></a><p>
1499
<table class="mdTable" cellpadding="2" cellspacing="0">
1502
<table cellpadding="0" cellspacing="0" border="0">
1504
<td class="mdPrefix" colspan="4">
1505
template<class Alloc, class MS> </td>
1508
<td class="md" nowrap valign="top">Alloc <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::get_allocator </td>
1509
<td class="md" valign="top">( </td>
1510
<td class="mdname1" valign="top" nowrap> </td>
1511
<td class="md" valign="top"> ) </td>
1512
<td class="md" nowrap> const<code> [inline]</code></td>
1518
<table cellspacing="5" cellpadding="0" border="0">
1528
Definition at line <a class="el" href="a00102.html#l00946">946</a> of file <a class="el" href="a00102.html">bm.h</a>. </td>
1531
<a class="anchor" name="a35" doxytag="bm::bvector::get_bit"></a><p>
1532
<table class="mdTable" cellpadding="2" cellspacing="0">
1535
<table cellpadding="0" cellspacing="0" border="0">
1537
<td class="mdPrefix" colspan="4">
1538
template<typename Alloc, typename MS> </td>
1541
<td class="md" nowrap valign="top">bool <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::get_bit </td>
1542
<td class="md" valign="top">( </td>
1543
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td>
1544
<td class="mdname1" valign="top" nowrap> <em>n</em> </td>
1545
<td class="md" valign="top"> ) </td>
1546
<td class="md" nowrap> const</td>
1552
<table cellspacing="5" cellpadding="0" border="0">
1560
returns true if bit n is set and false is bit n is 0.
1562
<dl compact><dt><b>Parameters:</b></dt><dd>
1563
<table border="0" cellspacing="2" cellpadding="0">
1564
<tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>- Index of the bit to check. </td></tr>
1567
<dl compact><dt><b>Returns:</b></dt><dd>Bit value (1 or 0) </dd></dl>
1570
Definition at line <a class="el" href="a00102.html#l01756">1756</a> of file <a class="el" href="a00102.html">bm.h</a>.
1572
References <a class="el" href="a00105.html#l00014">BM_ASSERT</a>, <a class="el" href="a00105.html#l00059">BM_IS_GAP</a>, <a class="el" href="a00105.html#l00057">BMGAP_PTR</a>, <a class="el" href="a00106.html#l00399">bm::gap_test()</a>, and <a class="el" href="a00102.html#l01416">bm::bvector< Alloc, MS >::get_block()</a>.
1574
Referenced by <a class="el" href="a00102.html#l01174">bm::bvector< Alloc, MS >::flip()</a>, <a class="el" href="a00102.html#l00885">bm::bvector< Alloc, MS >::operator[]()</a>, and <a class="el" href="a00102.html#l01140">bm::bvector< Alloc, MS >::test()</a>. </td>
1577
<a class="anchor" name="a61" doxytag="bm::bvector::get_block"></a><p>
1578
<table class="mdTable" cellpadding="2" cellspacing="0">
1581
<table cellpadding="0" cellspacing="0" border="0">
1583
<td class="mdPrefix" colspan="4">
1584
template<class Alloc, class MS> </td>
1587
<td class="md" nowrap valign="top">const <a class="el" href="a00092.html#a10">bm::word_t</a>* <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::get_block </td>
1588
<td class="md" valign="top">( </td>
1589
<td class="md" nowrap valign="top">unsigned </td>
1590
<td class="mdname1" valign="top" nowrap> <em>nb</em> </td>
1591
<td class="md" valign="top"> ) </td>
1592
<td class="md" nowrap> const<code> [inline]</code></td>
1598
<table cellspacing="5" cellpadding="0" border="0">
1608
Definition at line <a class="el" href="a00102.html#l01416">1416</a> of file <a class="el" href="a00102.html">bm.h</a>.
1610
Referenced by <a class="el" href="a00102.html#l01446">bm::bvector< Alloc, MS >::combine_operation_with_block()</a>, <a class="el" href="a00102.html#l01638">bm::bvector< Alloc, MS >::count_range()</a>, <a class="el" href="a00102.html#l01756">bm::bvector< Alloc, MS >::get_bit()</a>, and <a class="el" href="a00102.html#l02132">bm::bvector< Alloc, MS >::stat()</a>. </td>
1613
<a class="anchor" name="a64" doxytag="bm::bvector::get_blocks_manager"></a><p>
1614
<table class="mdTable" cellpadding="2" cellspacing="0">
1617
<table cellpadding="0" cellspacing="0" border="0">
1619
<td class="mdPrefix" colspan="4">
1620
template<class Alloc, class MS> </td>
1623
<td class="md" nowrap valign="top"><a class="el" href="a00048.html#w1">blocks_manager_type</a>& <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::get_blocks_manager </td>
1624
<td class="md" valign="top">( </td>
1625
<td class="mdname1" valign="top" nowrap> </td>
1626
<td class="md" valign="top"> ) </td>
1627
<td class="md" nowrap><code> [inline]</code></td>
1633
<table cellspacing="5" cellpadding="0" border="0">
1643
Definition at line <a class="el" href="a00102.html#l01490">1490</a> of file <a class="el" href="a00102.html">bm.h</a>. </td>
1646
<a class="anchor" name="a63" doxytag="bm::bvector::get_blocks_manager"></a><p>
1647
<table class="mdTable" cellpadding="2" cellspacing="0">
1650
<table cellpadding="0" cellspacing="0" border="0">
1652
<td class="mdPrefix" colspan="4">
1653
template<class Alloc, class MS> </td>
1656
<td class="md" nowrap valign="top">const <a class="el" href="a00048.html#w1">blocks_manager_type</a>& <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::get_blocks_manager </td>
1657
<td class="md" valign="top">( </td>
1658
<td class="mdname1" valign="top" nowrap> </td>
1659
<td class="md" valign="top"> ) </td>
1660
<td class="md" nowrap> const<code> [inline]</code></td>
1666
<table cellspacing="5" cellpadding="0" border="0">
1676
Definition at line <a class="el" href="a00102.html#l01485">1485</a> of file <a class="el" href="a00102.html">bm.h</a>. </td>
1679
<a class="anchor" name="a42" doxytag="bm::bvector::get_first"></a><p>
1680
<table class="mdTable" cellpadding="2" cellspacing="0">
1683
<table cellpadding="0" cellspacing="0" border="0">
1685
<td class="mdPrefix" colspan="4">
1686
template<class Alloc, class MS> </td>
1689
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::get_first </td>
1690
<td class="md" valign="top">( </td>
1691
<td class="mdname1" valign="top" nowrap> </td>
1692
<td class="md" valign="top"> ) </td>
1693
<td class="md" nowrap> const<code> [inline]</code></td>
1699
<table cellspacing="5" cellpadding="0" border="0">
1707
Gets number of first bit which is ON.
1709
<dl compact><dt><b>Returns:</b></dt><dd>Index of the first 1 bit. </dd></dl>
1710
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00048.html#a43">get_next</a> </dd></dl>
1713
Definition at line <a class="el" href="a00102.html#l01211">1211</a> of file <a class="el" href="a00102.html">bm.h</a>.
1715
Referenced by <a class="el" href="a00111.html#l00044">main()</a>. </td>
1718
<a class="anchor" name="a51" doxytag="bm::bvector::get_new_blocks_strat"></a><p>
1719
<table class="mdTable" cellpadding="2" cellspacing="0">
1722
<table cellpadding="0" cellspacing="0" border="0">
1724
<td class="mdPrefix" colspan="4">
1725
template<class Alloc, class MS> </td>
1728
<td class="md" nowrap valign="top"><a class="el" href="a00095.html#ga0">strategy</a> <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::get_new_blocks_strat </td>
1729
<td class="md" valign="top">( </td>
1730
<td class="mdname1" valign="top" nowrap> </td>
1731
<td class="md" valign="top"> ) </td>
1732
<td class="md" nowrap> const<code> [inline]</code></td>
1738
<table cellspacing="5" cellpadding="0" border="0">
1746
Returns blocks allocation strategy.
1748
<dl compact><dt><b>Returns:</b></dt><dd>- Strategy code 0 - bitblocks allocation only. 1 - Blocks mutation mode (adaptive algorithm) </dd></dl>
1749
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00048.html#a50">set_new_blocks_strat</a> </dd></dl>
1752
Definition at line <a class="el" href="a00102.html#l01305">1305</a> of file <a class="el" href="a00102.html">bm.h</a>. </td>
1755
<a class="anchor" name="a43" doxytag="bm::bvector::get_next"></a><p>
1756
<table class="mdTable" cellpadding="2" cellspacing="0">
1759
<table cellpadding="0" cellspacing="0" border="0">
1761
<td class="mdPrefix" colspan="4">
1762
template<class Alloc, class MS> </td>
1765
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::get_next </td>
1766
<td class="md" valign="top">( </td>
1767
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td>
1768
<td class="mdname1" valign="top" nowrap> <em>prev</em> </td>
1769
<td class="md" valign="top"> ) </td>
1770
<td class="md" nowrap> const<code> [inline]</code></td>
1776
<table cellspacing="5" cellpadding="0" border="0">
1784
Finds the number of the next bit ON.
1786
<dl compact><dt><b>Parameters:</b></dt><dd>
1787
<table border="0" cellspacing="2" cellpadding="0">
1788
<tr><td valign="top"></td><td valign="top"><em>prev</em> </td><td>- Index of the previously found bit. </td></tr>
1791
<dl compact><dt><b>Returns:</b></dt><dd>Index of the next bit which is ON or 0 if not found. </dd></dl>
1792
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00048.html#a42">get_first</a> </dd></dl>
1795
Definition at line <a class="el" href="a00102.html#l01220">1220</a> of file <a class="el" href="a00102.html">bm.h</a>.
1797
Referenced by <a class="el" href="a00111.html#l00044">main()</a>. </td>
1800
<a class="anchor" name="a22" doxytag="bm::bvector::inserter"></a><p>
1801
<table class="mdTable" cellpadding="2" cellspacing="0">
1804
<table cellpadding="0" cellspacing="0" border="0">
1806
<td class="mdPrefix" colspan="4">
1807
template<class Alloc, class MS> </td>
1810
<td class="md" nowrap valign="top"><a class="el" href="a00051.html">insert_iterator</a> <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::inserter </td>
1811
<td class="md" valign="top">( </td>
1812
<td class="mdname1" valign="top" nowrap> </td>
1813
<td class="md" valign="top"> ) </td>
1814
<td class="md" nowrap><code> [inline]</code></td>
1820
<table cellspacing="5" cellpadding="0" border="0">
1828
Function erturns insert iterator for this bitvector
1830
Definition at line <a class="el" href="a00102.html#l01008">1008</a> of file <a class="el" href="a00102.html">bm.h</a>.
1832
Referenced by <a class="el" href="a00118.html#l00069">main()</a>. </td>
1835
<a class="anchor" name="a34" doxytag="bm::bvector::invert"></a><p>
1836
<table class="mdTable" cellpadding="2" cellspacing="0">
1839
<table cellpadding="0" cellspacing="0" border="0">
1841
<td class="mdPrefix" colspan="4">
1842
template<typename Alloc, typename MS> </td>
1845
<td class="md" nowrap valign="top"><a class="el" href="a00048.html">bvector</a>< Alloc, MS > & <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::invert </td>
1846
<td class="md" valign="top">( </td>
1847
<td class="mdname1" valign="top" nowrap> </td>
1848
<td class="md" valign="top"> ) </td>
1849
<td class="md" nowrap></td>
1855
<table cellspacing="5" cellpadding="0" border="0">
1867
Definition at line <a class="el" href="a00102.html#l01732">1732</a> of file <a class="el" href="a00102.html">bm.h</a>.
1869
References <a class="el" href="a00105.html#l00093">BM_SET_MMX_GUARD</a>, <a class="el" href="a00102.html#l00076">BMCOUNT_VALID</a>, and <a class="el" href="a00106.html#l00488">bm::for_each_block()</a>.
1871
Referenced by <a class="el" href="a00102.html#l01184">bm::bvector< Alloc, MS >::flip()</a>. </td>
1874
<a class="anchor" name="a38" doxytag="bm::bvector::none"></a><p>
1875
<table class="mdTable" cellpadding="2" cellspacing="0">
1878
<table cellpadding="0" cellspacing="0" border="0">
1880
<td class="mdPrefix" colspan="4">
1881
template<class Alloc, class MS> </td>
1884
<td class="md" nowrap valign="top">bool <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::none </td>
1885
<td class="md" valign="top">( </td>
1886
<td class="mdname1" valign="top" nowrap> </td>
1887
<td class="md" valign="top"> ) </td>
1888
<td class="md" nowrap> const<code> [inline]</code></td>
1894
<table cellspacing="5" cellpadding="0" border="0">
1902
Returns true if no bits are set, otherwise returns false.
1906
Definition at line <a class="el" href="a00102.html#l01165">1165</a> of file <a class="el" href="a00102.html">bm.h</a>.
1908
References <a class="el" href="a00102.html#l01149">bm::bvector< Alloc, MS >::any()</a>. </td>
1911
<a class="anchor" name="a6" doxytag="bm::bvector::operator &="></a><p>
1912
<table class="mdTable" cellpadding="2" cellspacing="0">
1915
<table cellpadding="0" cellspacing="0" border="0">
1917
<td class="mdPrefix" colspan="4">
1918
template<class Alloc, class MS> </td>
1921
<td class="md" nowrap valign="top">void <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::operator &= </td>
1922
<td class="md" valign="top">( </td>
1923
<td class="md" nowrap valign="top">const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td>
1924
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
1925
<td class="md" valign="top"> ) </td>
1926
<td class="md" nowrap><code> [inline]</code></td>
1932
<table cellspacing="5" cellpadding="0" border="0">
1942
Definition at line <a class="el" href="a00102.html#l00891">891</a> of file <a class="el" href="a00102.html">bm.h</a>.
1944
References <a class="el" href="a00102.html#l01259">bm::bvector< Alloc, MS >::bit_and()</a>. </td>
1947
<a class="anchor" name="a15" doxytag="bm::bvector::operator!="></a><p>
1948
<table class="mdTable" cellpadding="2" cellspacing="0">
1951
<table cellpadding="0" cellspacing="0" border="0">
1953
<td class="mdPrefix" colspan="4">
1954
template<class Alloc, class MS> </td>
1957
<td class="md" nowrap valign="top">bool <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::operator!= </td>
1958
<td class="md" valign="top">( </td>
1959
<td class="md" nowrap valign="top">const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td>
1960
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
1961
<td class="md" valign="top"> ) </td>
1962
<td class="md" nowrap> const<code> [inline]</code></td>
1968
<table cellspacing="5" cellpadding="0" border="0">
1978
Definition at line <a class="el" href="a00102.html#l00936">936</a> of file <a class="el" href="a00102.html">bm.h</a>.
1980
References <a class="el" href="a00102.html#l01845">bm::bvector< Alloc, MS >::compare()</a>. </td>
1983
<a class="anchor" name="a9" doxytag="bm::bvector::operator-="></a><p>
1984
<table class="mdTable" cellpadding="2" cellspacing="0">
1987
<table cellpadding="0" cellspacing="0" border="0">
1989
<td class="mdPrefix" colspan="4">
1990
template<class Alloc, class MS> </td>
1993
<td class="md" nowrap valign="top">void <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::operator-= </td>
1994
<td class="md" valign="top">( </td>
1995
<td class="md" nowrap valign="top">const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td>
1996
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
1997
<td class="md" valign="top"> ) </td>
1998
<td class="md" nowrap><code> [inline]</code></td>
2004
<table cellspacing="5" cellpadding="0" border="0">
2014
Definition at line <a class="el" href="a00102.html#l00906">906</a> of file <a class="el" href="a00102.html">bm.h</a>.
2016
References <a class="el" href="a00102.html#l01281">bm::bvector< Alloc, MS >::bit_sub()</a>. </td>
2019
<a class="anchor" name="a10" doxytag="bm::bvector::operator<"></a><p>
2020
<table class="mdTable" cellpadding="2" cellspacing="0">
2023
<table cellpadding="0" cellspacing="0" border="0">
2025
<td class="mdPrefix" colspan="4">
2026
template<class Alloc, class MS> </td>
2029
<td class="md" nowrap valign="top">bool <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::operator< </td>
2030
<td class="md" valign="top">( </td>
2031
<td class="md" nowrap valign="top">const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td>
2032
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
2033
<td class="md" valign="top"> ) </td>
2034
<td class="md" nowrap> const<code> [inline]</code></td>
2040
<table cellspacing="5" cellpadding="0" border="0">
2050
Definition at line <a class="el" href="a00102.html#l00911">911</a> of file <a class="el" href="a00102.html">bm.h</a>.
2052
References <a class="el" href="a00102.html#l01845">bm::bvector< Alloc, MS >::compare()</a>. </td>
2055
<a class="anchor" name="a11" doxytag="bm::bvector::operator<="></a><p>
2056
<table class="mdTable" cellpadding="2" cellspacing="0">
2059
<table cellpadding="0" cellspacing="0" border="0">
2061
<td class="mdPrefix" colspan="4">
2062
template<class Alloc, class MS> </td>
2065
<td class="md" nowrap valign="top">bool <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::operator<= </td>
2066
<td class="md" valign="top">( </td>
2067
<td class="md" nowrap valign="top">const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td>
2068
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
2069
<td class="md" valign="top"> ) </td>
2070
<td class="md" nowrap> const<code> [inline]</code></td>
2076
<table cellspacing="5" cellpadding="0" border="0">
2086
Definition at line <a class="el" href="a00102.html#l00916">916</a> of file <a class="el" href="a00102.html">bm.h</a>.
2088
References <a class="el" href="a00102.html#l01845">bm::bvector< Alloc, MS >::compare()</a>. </td>
2091
<a class="anchor" name="a3" doxytag="bm::bvector::operator="></a><p>
2092
<table class="mdTable" cellpadding="2" cellspacing="0">
2095
<table cellpadding="0" cellspacing="0" border="0">
2097
<td class="mdPrefix" colspan="4">
2098
template<class Alloc, class MS> </td>
2101
<td class="md" nowrap valign="top"><a class="el" href="a00048.html">bvector</a>& <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::operator= </td>
2102
<td class="md" valign="top">( </td>
2103
<td class="md" nowrap valign="top">const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td>
2104
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
2105
<td class="md" valign="top"> ) </td>
2106
<td class="md" nowrap><code> [inline]</code></td>
2112
<table cellspacing="5" cellpadding="0" border="0">
2122
Definition at line <a class="el" href="a00102.html#l00870">870</a> of file <a class="el" href="a00102.html">bm.h</a>.
2124
References <a class="el" href="a00102.html#l01248">bm::bvector< Alloc, MS >::bit_or()</a>, <a class="el" href="a00102.html#l01030">bm::bvector< Alloc, MS >::clear()</a>, and <a class="el" href="a00102.html#l01620">bm::bvector< Alloc, MS >::resize()</a>. </td>
2127
<a class="anchor" name="a14" doxytag="bm::bvector::operator=="></a><p>
2128
<table class="mdTable" cellpadding="2" cellspacing="0">
2131
<table cellpadding="0" cellspacing="0" border="0">
2133
<td class="mdPrefix" colspan="4">
2134
template<class Alloc, class MS> </td>
2137
<td class="md" nowrap valign="top">bool <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::operator== </td>
2138
<td class="md" valign="top">( </td>
2139
<td class="md" nowrap valign="top">const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td>
2140
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
2141
<td class="md" valign="top"> ) </td>
2142
<td class="md" nowrap> const<code> [inline]</code></td>
2148
<table cellspacing="5" cellpadding="0" border="0">
2158
Definition at line <a class="el" href="a00102.html#l00931">931</a> of file <a class="el" href="a00102.html">bm.h</a>.
2160
References <a class="el" href="a00102.html#l01845">bm::bvector< Alloc, MS >::compare()</a>. </td>
2163
<a class="anchor" name="a12" doxytag="bm::bvector::operator>"></a><p>
2164
<table class="mdTable" cellpadding="2" cellspacing="0">
2167
<table cellpadding="0" cellspacing="0" border="0">
2169
<td class="mdPrefix" colspan="4">
2170
template<class Alloc, class MS> </td>
2173
<td class="md" nowrap valign="top">bool <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::operator> </td>
2174
<td class="md" valign="top">( </td>
2175
<td class="md" nowrap valign="top">const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td>
2176
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
2177
<td class="md" valign="top"> ) </td>
2178
<td class="md" nowrap> const<code> [inline]</code></td>
2184
<table cellspacing="5" cellpadding="0" border="0">
2194
Definition at line <a class="el" href="a00102.html#l00921">921</a> of file <a class="el" href="a00102.html">bm.h</a>.
2196
References <a class="el" href="a00102.html#l01845">bm::bvector< Alloc, MS >::compare()</a>. </td>
2199
<a class="anchor" name="a13" doxytag="bm::bvector::operator>="></a><p>
2200
<table class="mdTable" cellpadding="2" cellspacing="0">
2203
<table cellpadding="0" cellspacing="0" border="0">
2205
<td class="mdPrefix" colspan="4">
2206
template<class Alloc, class MS> </td>
2209
<td class="md" nowrap valign="top">bool <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::operator>= </td>
2210
<td class="md" valign="top">( </td>
2211
<td class="md" nowrap valign="top">const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td>
2212
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
2213
<td class="md" valign="top"> ) </td>
2214
<td class="md" nowrap> const<code> [inline]</code></td>
2220
<table cellspacing="5" cellpadding="0" border="0">
2230
Definition at line <a class="el" href="a00102.html#l00926">926</a> of file <a class="el" href="a00102.html">bm.h</a>.
2232
References <a class="el" href="a00102.html#l01845">bm::bvector< Alloc, MS >::compare()</a>. </td>
2235
<a class="anchor" name="a5" doxytag="bm::bvector::operator[]"></a><p>
2236
<table class="mdTable" cellpadding="2" cellspacing="0">
2239
<table cellpadding="0" cellspacing="0" border="0">
2241
<td class="mdPrefix" colspan="4">
2242
template<class Alloc, class MS> </td>
2245
<td class="md" nowrap valign="top">bool <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::operator[] </td>
2246
<td class="md" valign="top">( </td>
2247
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td>
2248
<td class="mdname1" valign="top" nowrap> <em>n</em> </td>
2249
<td class="md" valign="top"> ) </td>
2250
<td class="md" nowrap> const<code> [inline]</code></td>
2256
<table cellspacing="5" cellpadding="0" border="0">
2266
Definition at line <a class="el" href="a00102.html#l00885">885</a> of file <a class="el" href="a00102.html">bm.h</a>.
2268
References <a class="el" href="a00105.html#l00014">BM_ASSERT</a>, and <a class="el" href="a00102.html#l01756">bm::bvector< Alloc, MS >::get_bit()</a>. </td>
2271
<a class="anchor" name="a4" doxytag="bm::bvector::operator[]"></a><p>
2272
<table class="mdTable" cellpadding="2" cellspacing="0">
2275
<table cellpadding="0" cellspacing="0" border="0">
2277
<td class="mdPrefix" colspan="4">
2278
template<class Alloc, class MS> </td>
2281
<td class="md" nowrap valign="top"><a class="el" href="a00056.html">reference</a> <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::operator[] </td>
2282
<td class="md" valign="top">( </td>
2283
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td>
2284
<td class="mdname1" valign="top" nowrap> <em>n</em> </td>
2285
<td class="md" valign="top"> ) </td>
2286
<td class="md" nowrap><code> [inline]</code></td>
2292
<table cellspacing="5" cellpadding="0" border="0">
2302
Definition at line <a class="el" href="a00102.html#l00878">878</a> of file <a class="el" href="a00102.html">bm.h</a>.
2304
References <a class="el" href="a00105.html#l00014">BM_ASSERT</a>. </td>
2307
<a class="anchor" name="a7" doxytag="bm::bvector::operator^="></a><p>
2308
<table class="mdTable" cellpadding="2" cellspacing="0">
2311
<table cellpadding="0" cellspacing="0" border="0">
2313
<td class="mdPrefix" colspan="4">
2314
template<class Alloc, class MS> </td>
2317
<td class="md" nowrap valign="top">void <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::operator^= </td>
2318
<td class="md" valign="top">( </td>
2319
<td class="md" nowrap valign="top">const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td>
2320
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
2321
<td class="md" valign="top"> ) </td>
2322
<td class="md" nowrap><code> [inline]</code></td>
2328
<table cellspacing="5" cellpadding="0" border="0">
2338
Definition at line <a class="el" href="a00102.html#l00896">896</a> of file <a class="el" href="a00102.html">bm.h</a>.
2340
References <a class="el" href="a00102.html#l01270">bm::bvector< Alloc, MS >::bit_xor()</a>. </td>
2343
<a class="anchor" name="a8" doxytag="bm::bvector::operator|="></a><p>
2344
<table class="mdTable" cellpadding="2" cellspacing="0">
2347
<table cellpadding="0" cellspacing="0" border="0">
2349
<td class="mdPrefix" colspan="4">
2350
template<class Alloc, class MS> </td>
2353
<td class="md" nowrap valign="top">void <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::operator|= </td>
2354
<td class="md" valign="top">( </td>
2355
<td class="md" nowrap valign="top">const <a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td>
2356
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
2357
<td class="md" valign="top"> ) </td>
2358
<td class="md" nowrap><code> [inline]</code></td>
2364
<table cellspacing="5" cellpadding="0" border="0">
2374
Definition at line <a class="el" href="a00102.html#l00901">901</a> of file <a class="el" href="a00102.html">bm.h</a>.
2376
References <a class="el" href="a00102.html#l01248">bm::bvector< Alloc, MS >::bit_or()</a>. </td>
2379
<a class="anchor" name="a16" doxytag="bm::bvector::operator~"></a><p>
2380
<table class="mdTable" cellpadding="2" cellspacing="0">
2383
<table cellpadding="0" cellspacing="0" border="0">
2385
<td class="mdPrefix" colspan="4">
2386
template<class Alloc, class MS> </td>
2389
<td class="md" nowrap valign="top"><a class="el" href="a00048.html">bvector</a><Alloc, MS> <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::operator~ </td>
2390
<td class="md" valign="top">( </td>
2391
<td class="mdname1" valign="top" nowrap> </td>
2392
<td class="md" valign="top"> ) </td>
2393
<td class="md" nowrap> const<code> [inline]</code></td>
2399
<table cellspacing="5" cellpadding="0" border="0">
2409
Definition at line <a class="el" href="a00102.html#l00941">941</a> of file <a class="el" href="a00102.html">bm.h</a>. </td>
2412
<a class="anchor" name="a53" doxytag="bm::bvector::optimize"></a><p>
2413
<table class="mdTable" cellpadding="2" cellspacing="0">
2416
<table cellpadding="0" cellspacing="0" border="0">
2418
<td class="mdPrefix" colspan="4">
2419
template<typename Alloc, typename MS> </td>
2422
<td class="md" nowrap valign="top">void <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::optimize </td>
2423
<td class="md" valign="top">( </td>
2424
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a10">bm::word_t</a> * </td>
2425
<td class="mdname" nowrap> <em>temp_block</em> = <code>0</code>, </td>
2428
<td class="md" nowrap align="right"></td>
2429
<td class="md"></td>
2430
<td class="md" nowrap><a class="el" href="a00048.html#w7">optmode</a> </td>
2431
<td class="mdname" nowrap> <em>opt_mode</em> = <code>opt_compress</code></td>
2434
<td class="md"></td>
2435
<td class="md">) </td>
2436
<td class="md" colspan="2"></td>
2442
<table cellspacing="5" cellpadding="0" border="0">
2450
Optimize memory bitvector's memory allocation.
2452
Function analyze all blocks in the bitvector, compresses blocks with a regular structure, frees some memory. This function is recommended after a bulk modification of the bitvector using set_bit, clear_bit or logical operations.<p>
2453
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00048.html#w7">optmode</a>, <a class="el" href="a00048.html#a54">optimize_gap_size</a> </dd></dl>
2456
Definition at line <a class="el" href="a00102.html#l01790">1790</a> of file <a class="el" href="a00102.html">bm.h</a>.
2458
References <a class="el" href="a00106.html#l00437">bm::for_each_nzblock()</a>.
2460
Referenced by <a class="el" href="a00113.html#l00075">main()</a>, and <a class="el" href="a00114.html#l00077">serialize_bvector()</a>. </td>
2463
<a class="anchor" name="a54" doxytag="bm::bvector::optimize_gap_size"></a><p>
2464
<table class="mdTable" cellpadding="2" cellspacing="0">
2467
<table cellpadding="0" cellspacing="0" border="0">
2469
<td class="mdPrefix" colspan="4">
2470
template<typename Alloc, typename MS> </td>
2473
<td class="md" nowrap valign="top">void <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::optimize_gap_size </td>
2474
<td class="md" valign="top">( </td>
2475
<td class="mdname1" valign="top" nowrap> </td>
2476
<td class="md" valign="top"> ) </td>
2477
<td class="md" nowrap></td>
2483
<table cellspacing="5" cellpadding="0" border="0">
2491
Optimize sizes of GAP blocks.
2493
This method runs an analysis to find optimal GAP levels for the specific vector. Current GAP compression algorithm uses several fixed GAP sizes. By default bvector uses some reasonable preset.
2495
Definition at line <a class="el" href="a00102.html#l01808">1808</a> of file <a class="el" href="a00102.html">bm.h</a>.
2497
References <a class="el" href="a00048.html#a45">bm::bvector< Alloc, MS >::calc_stat()</a>, <a class="el" href="a00104.html#l00072">bm::gap_levels</a>, <a class="el" href="a00106.html#l03249">bm::improve_gap_levels()</a>, and <a class="el" href="a00102.html#l01829">bm::bvector< Alloc, MS >::set_gap_levels()</a>. </td>
2500
<a class="anchor" name="a32" doxytag="bm::bvector::recalc_count"></a><p>
2501
<table class="mdTable" cellpadding="2" cellspacing="0">
2504
<table cellpadding="0" cellspacing="0" border="0">
2506
<td class="mdPrefix" colspan="4">
2507
template<class Alloc, class MS> </td>
2510
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::recalc_count </td>
2511
<td class="md" valign="top">( </td>
2512
<td class="mdname1" valign="top" nowrap> </td>
2513
<td class="md" valign="top"> ) </td>
2514
<td class="md" nowrap><code> [inline]</code></td>
2520
<table cellspacing="5" cellpadding="0" border="0">
2530
Definition at line <a class="el" href="a00102.html#l01104">1104</a> of file <a class="el" href="a00102.html">bm.h</a>.
2532
References <a class="el" href="a00102.html#l00076">BMCOUNT_VALID</a>, and <a class="el" href="a00102.html#l01603">bm::bvector< Alloc, MS >::count()</a>. </td>
2535
<a class="anchor" name="a25" doxytag="bm::bvector::reset"></a><p>
2536
<table class="mdTable" cellpadding="2" cellspacing="0">
2539
<table cellpadding="0" cellspacing="0" border="0">
2541
<td class="mdPrefix" colspan="4">
2542
template<class Alloc, class MS> </td>
2545
<td class="md" nowrap valign="top"><a class="el" href="a00048.html">bvector</a><Alloc, MS>& <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::reset </td>
2546
<td class="md" valign="top">( </td>
2547
<td class="mdname1" valign="top" nowrap> </td>
2548
<td class="md" valign="top"> ) </td>
2549
<td class="md" nowrap><code> [inline]</code></td>
2555
<table cellspacing="5" cellpadding="0" border="0">
2563
Clears every bit in the bitvector.
2565
<dl compact><dt><b>Returns:</b></dt><dd>*this; </dd></dl>
2568
Definition at line <a class="el" href="a00102.html#l01040">1040</a> of file <a class="el" href="a00102.html">bm.h</a>.
2570
References <a class="el" href="a00102.html#l01030">bm::bvector< Alloc, MS >::clear()</a>. </td>
2573
<a class="anchor" name="a29" doxytag="bm::bvector::resize"></a><p>
2574
<table class="mdTable" cellpadding="2" cellspacing="0">
2577
<table cellpadding="0" cellspacing="0" border="0">
2579
<td class="mdPrefix" colspan="4">
2580
template<typename Alloc, typename MS> </td>
2583
<td class="md" nowrap valign="top">void <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::resize </td>
2584
<td class="md" valign="top">( </td>
2585
<td class="md" nowrap valign="top"><a class="el" href="a00048.html#w2">size_type</a> </td>
2586
<td class="mdname1" valign="top" nowrap> <em>new_size</em> </td>
2587
<td class="md" valign="top"> ) </td>
2588
<td class="md" nowrap></td>
2594
<table cellspacing="5" cellpadding="0" border="0">
2602
Change size of the bvector.
2604
<dl compact><dt><b>Parameters:</b></dt><dd>
2605
<table border="0" cellspacing="2" cellpadding="0">
2606
<tr><td valign="top"></td><td valign="top"><em>new_size</em> </td><td>- new size in bits </td></tr>
2611
Definition at line <a class="el" href="a00102.html#l01620">1620</a> of file <a class="el" href="a00102.html">bm.h</a>.
2613
References <a class="el" href="a00102.html#l01580">bm::bvector< Alloc, MS >::set_range()</a>.
2615
Referenced by <a class="el" href="a00118.html#l00069">main()</a>, and <a class="el" href="a00102.html#l00870">bm::bvector< Alloc, MS >::operator=()</a>. </td>
2618
<a class="anchor" name="a20" doxytag="bm::bvector::set"></a><p>
2619
<table class="mdTable" cellpadding="2" cellspacing="0">
2622
<table cellpadding="0" cellspacing="0" border="0">
2624
<td class="mdPrefix" colspan="4">
2625
template<class Alloc, class MS> </td>
2628
<td class="md" nowrap valign="top"><a class="el" href="a00048.html">bvector</a><Alloc, MS>& <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::set </td>
2629
<td class="md" valign="top">( </td>
2630
<td class="mdname1" valign="top" nowrap> </td>
2631
<td class="md" valign="top"> ) </td>
2632
<td class="md" nowrap><code> [inline]</code></td>
2638
<table cellspacing="5" cellpadding="0" border="0">
2646
Sets every bit in this bitset to 1.
2648
<dl compact><dt><b>Returns:</b></dt><dd>*this </dd></dl>
2651
Definition at line <a class="el" href="a00102.html#l00983">983</a> of file <a class="el" href="a00102.html">bm.h</a>.
2653
References <a class="el" href="a00102.html#l00076">BMCOUNT_VALID</a>, and <a class="el" href="a00102.html#l01580">bm::bvector< Alloc, MS >::set_range()</a>.
2655
Referenced by <a class="el" href="a00102.html#l01018">bm::bvector< Alloc, MS >::clear_bit()</a>, and <a class="el" href="a00102.html#l01174">bm::bvector< Alloc, MS >::flip()</a>. </td>
2658
<a class="anchor" name="a19" doxytag="bm::bvector::set"></a><p>
2659
<table class="mdTable" cellpadding="2" cellspacing="0">
2662
<table cellpadding="0" cellspacing="0" border="0">
2664
<td class="mdPrefix" colspan="4">
2665
template<class Alloc, class MS> </td>
2668
<td class="md" nowrap valign="top"><a class="el" href="a00048.html">bvector</a><Alloc, MS>& <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::set </td>
2669
<td class="md" valign="top">( </td>
2670
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td>
2671
<td class="mdname" nowrap> <em>n</em>, </td>
2674
<td class="md" nowrap align="right"></td>
2675
<td class="md"></td>
2676
<td class="md" nowrap>bool </td>
2677
<td class="mdname" nowrap> <em>val</em> = <code>true</code></td>
2680
<td class="md"></td>
2681
<td class="md">) </td>
2682
<td class="md" colspan="2"><code> [inline]</code></td>
2688
<table cellspacing="5" cellpadding="0" border="0">
2696
Sets bit n if val is true, clears bit n if val is false.
2698
<dl compact><dt><b>Parameters:</b></dt><dd>
2699
<table border="0" cellspacing="2" cellpadding="0">
2700
<tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>- index of the bit to be set </td></tr>
2701
<tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>- new bit value </td></tr>
2704
<dl compact><dt><b>Returns:</b></dt><dd>*this </dd></dl>
2707
Definition at line <a class="el" href="a00102.html#l00971">971</a> of file <a class="el" href="a00102.html">bm.h</a>.
2709
References <a class="el" href="a00102.html#l00958">bm::bvector< Alloc, MS >::set_bit()</a>.
2711
Referenced by <a class="el" href="a00111.html#l00044">main()</a>. </td>
2714
<a class="anchor" name="a18" doxytag="bm::bvector::set_bit"></a><p>
2715
<table class="mdTable" cellpadding="2" cellspacing="0">
2718
<table cellpadding="0" cellspacing="0" border="0">
2720
<td class="mdPrefix" colspan="4">
2721
template<class Alloc, class MS> </td>
2724
<td class="md" nowrap valign="top">bool <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::set_bit </td>
2725
<td class="md" valign="top">( </td>
2726
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td>
2727
<td class="mdname" nowrap> <em>n</em>, </td>
2730
<td class="md" nowrap align="right"></td>
2731
<td class="md"></td>
2732
<td class="md" nowrap>bool </td>
2733
<td class="mdname" nowrap> <em>val</em> = <code>true</code></td>
2736
<td class="md"></td>
2737
<td class="md">) </td>
2738
<td class="md" colspan="2"><code> [inline]</code></td>
2744
<table cellspacing="5" cellpadding="0" border="0">
2754
<dl compact><dt><b>Parameters:</b></dt><dd>
2755
<table border="0" cellspacing="2" cellpadding="0">
2756
<tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>- index of the bit to be set. </td></tr>
2757
<tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>- new bit value </td></tr>
2760
<dl compact><dt><b>Returns:</b></dt><dd>TRUE if bit was changed </dd></dl>
2763
Definition at line <a class="el" href="a00102.html#l00958">958</a> of file <a class="el" href="a00102.html">bm.h</a>.
2765
References <a class="el" href="a00105.html#l00014">BM_ASSERT</a>.
2767
Referenced by <a class="el" href="a00102.html#l00971">bm::bvector< Alloc, MS >::set()</a>. </td>
2770
<a class="anchor" name="a55" doxytag="bm::bvector::set_gap_levels"></a><p>
2771
<table class="mdTable" cellpadding="2" cellspacing="0">
2774
<table cellpadding="0" cellspacing="0" border="0">
2776
<td class="mdPrefix" colspan="4">
2777
template<typename Alloc, typename MS> </td>
2780
<td class="md" nowrap valign="top">void <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::set_gap_levels </td>
2781
<td class="md" valign="top">( </td>
2782
<td class="md" nowrap valign="top">const <a class="el" href="a00092.html#a19">gap_word_t</a> * </td>
2783
<td class="mdname1" valign="top" nowrap> <em>glevel_len</em> </td>
2784
<td class="md" valign="top"> ) </td>
2785
<td class="md" nowrap></td>
2791
<table cellspacing="5" cellpadding="0" border="0">
2799
Sets new GAP lengths table. All GAP blocks will be reallocated to match the new scheme.
2801
<dl compact><dt><b>Parameters:</b></dt><dd>
2802
<table border="0" cellspacing="2" cellpadding="0">
2803
<tr><td valign="top"></td><td valign="top"><em>glevel_len</em> </td><td>- pointer on C-style array keeping GAP block sizes. </td></tr>
2808
Definition at line <a class="el" href="a00102.html#l01829">1829</a> of file <a class="el" href="a00102.html">bm.h</a>.
2810
References <a class="el" href="a00106.html#l00437">bm::for_each_nzblock()</a>, and <a class="el" href="a00102.html#l01829">bm::bvector< Alloc, MS >::set_gap_levels()</a>.
2812
Referenced by <a class="el" href="a00102.html#l01808">bm::bvector< Alloc, MS >::optimize_gap_size()</a>, and <a class="el" href="a00102.html#l01829">bm::bvector< Alloc, MS >::set_gap_levels()</a>. </td>
2815
<a class="anchor" name="a50" doxytag="bm::bvector::set_new_blocks_strat"></a><p>
2816
<table class="mdTable" cellpadding="2" cellspacing="0">
2819
<table cellpadding="0" cellspacing="0" border="0">
2821
<td class="mdPrefix" colspan="4">
2822
template<class Alloc, class MS> </td>
2825
<td class="md" nowrap valign="top">void <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::set_new_blocks_strat </td>
2826
<td class="md" valign="top">( </td>
2827
<td class="md" nowrap valign="top"><a class="el" href="a00095.html#ga0">strategy</a> </td>
2828
<td class="mdname1" valign="top" nowrap> <em>strat</em> </td>
2829
<td class="md" valign="top"> ) </td>
2830
<td class="md" nowrap><code> [inline]</code></td>
2836
<table cellspacing="5" cellpadding="0" border="0">
2844
Sets new blocks allocation strategy.
2846
<dl compact><dt><b>Parameters:</b></dt><dd>
2847
<table border="0" cellspacing="2" cellpadding="0">
2848
<tr><td valign="top"></td><td valign="top"><em>strat</em> </td><td>- Strategy code 0 - bitblocks allocation only. 1 - Blocks mutation mode (adaptive algorithm) </td></tr>
2853
Definition at line <a class="el" href="a00102.html#l01294">1294</a> of file <a class="el" href="a00102.html">bm.h</a>.
2855
Referenced by <a class="el" href="a00113.html#l00075">main()</a>. </td>
2858
<a class="anchor" name="a21" doxytag="bm::bvector::set_range"></a><p>
2859
<table class="mdTable" cellpadding="2" cellspacing="0">
2862
<table cellpadding="0" cellspacing="0" border="0">
2864
<td class="mdPrefix" colspan="4">
2865
template<typename Alloc, typename MS> </td>
2868
<td class="md" nowrap valign="top"><a class="el" href="a00048.html">bvector</a>< Alloc, MS > & <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::set_range </td>
2869
<td class="md" valign="top">( </td>
2870
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td>
2871
<td class="mdname" nowrap> <em>left</em>, </td>
2874
<td class="md" nowrap align="right"></td>
2875
<td class="md"></td>
2876
<td class="md" nowrap><a class="el" href="a00092.html#a9">bm::id_t</a> </td>
2877
<td class="mdname" nowrap> <em>right</em>, </td>
2880
<td class="md" nowrap align="right"></td>
2881
<td class="md"></td>
2882
<td class="md" nowrap>bool </td>
2883
<td class="mdname" nowrap> <em>value</em> = <code>true</code></td>
2886
<td class="md"></td>
2887
<td class="md">) </td>
2888
<td class="md" colspan="2"></td>
2894
<table cellspacing="5" cellpadding="0" border="0">
2902
Sets all bits in the specified closed interval [left,right] Interval must be inside the bvector's size. This method DOES NOT resize vector.
2904
<dl compact><dt><b>Parameters:</b></dt><dd>
2905
<table border="0" cellspacing="2" cellpadding="0">
2906
<tr><td valign="top"></td><td valign="top"><em>left</em> </td><td>- interval start </td></tr>
2907
<tr><td valign="top"></td><td valign="top"><em>right</em> </td><td>- interval end (closed interval) </td></tr>
2908
<tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>- value to set interval in</td></tr>
2911
<dl compact><dt><b>Returns:</b></dt><dd>*this </dd></dl>
2914
Definition at line <a class="el" href="a00102.html#l01580">1580</a> of file <a class="el" href="a00102.html">bm.h</a>.
2916
References <a class="el" href="a00105.html#l00014">BM_ASSERT</a>, <a class="el" href="a00105.html#l00093">BM_SET_MMX_GUARD</a>, and <a class="el" href="a00102.html#l00076">BMCOUNT_VALID</a>.
2918
Referenced by <a class="el" href="a00102.html#l01620">bm::bvector< Alloc, MS >::resize()</a>, and <a class="el" href="a00102.html#l00983">bm::bvector< Alloc, MS >::set()</a>. </td>
2921
<a class="anchor" name="a28" doxytag="bm::bvector::size"></a><p>
2922
<table class="mdTable" cellpadding="2" cellspacing="0">
2925
<table cellpadding="0" cellspacing="0" border="0">
2927
<td class="mdPrefix" colspan="4">
2928
template<class Alloc, class MS> </td>
2931
<td class="md" nowrap valign="top"><a class="el" href="a00048.html#w2">size_type</a> <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::size </td>
2932
<td class="md" valign="top">( </td>
2933
<td class="mdname1" valign="top" nowrap> </td>
2934
<td class="md" valign="top"> ) </td>
2935
<td class="md" nowrap> const<code> [inline]</code></td>
2941
<table cellspacing="5" cellpadding="0" border="0">
2949
return current size of the vector (bits)
2953
Definition at line <a class="el" href="a00102.html#l01064">1064</a> of file <a class="el" href="a00102.html">bm.h</a>. </td>
2956
<a class="anchor" name="a52" doxytag="bm::bvector::stat"></a><p>
2957
<table class="mdTable" cellpadding="2" cellspacing="0">
2960
<table cellpadding="0" cellspacing="0" border="0">
2962
<td class="mdPrefix" colspan="4">
2963
template<class Alloc, class MS> </td>
2966
<td class="md" nowrap valign="top">void <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::stat </td>
2967
<td class="md" valign="top">( </td>
2968
<td class="md" nowrap valign="top">unsigned </td>
2969
<td class="mdname1" valign="top" nowrap> <em>blocks</em> = <code>0</code> </td>
2970
<td class="md" valign="top"> ) </td>
2971
<td class="md" nowrap> const</td>
2977
<table cellspacing="5" cellpadding="0" border="0">
2987
Definition at line <a class="el" href="a00102.html#l02132">2132</a> of file <a class="el" href="a00102.html">bm.h</a>.
2989
References <a class="el" href="a00106.html#l02021">bm::bit_block_calc_count()</a>, <a class="el" href="a00105.html#l00057">BMGAP_PTR</a>, <a class="el" href="a00102.html#l01603">bm::bvector< Alloc, MS >::count()</a>, <a class="el" href="a00106.html#l00547">bm::gap_bit_count()</a>, <a class="el" href="a00106.html#l01515">bm::gap_control_sum()</a>, <a class="el" href="a00106.html#l01675">bm::gap_length()</a>, <a class="el" href="a00106.html#l01717">bm::gap_level()</a>, <a class="el" href="a00102.html#l01416">bm::bvector< Alloc, MS >::get_block()</a>, and <a class="el" href="a00105.html#l00024">IS_FULL_BLOCK</a>. </td>
2992
<a class="anchor" name="a41" doxytag="bm::bvector::swap"></a><p>
2993
<table class="mdTable" cellpadding="2" cellspacing="0">
2996
<table cellpadding="0" cellspacing="0" border="0">
2998
<td class="mdPrefix" colspan="4">
2999
template<class Alloc, class MS> </td>
3002
<td class="md" nowrap valign="top">void <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::swap </td>
3003
<td class="md" valign="top">( </td>
3004
<td class="md" nowrap valign="top"><a class="el" href="a00048.html">bvector</a>< Alloc, MS > & </td>
3005
<td class="mdname1" valign="top" nowrap> <em>bv</em> </td>
3006
<td class="md" valign="top"> ) </td>
3007
<td class="md" nowrap><code> [inline]</code></td>
3013
<table cellspacing="5" cellpadding="0" border="0">
3021
Exchanges content of bv and this bitvector.
3025
Definition at line <a class="el" href="a00102.html#l01191">1191</a> of file <a class="el" href="a00102.html">bm.h</a>.
3027
References <a class="el" href="a00102.html#l00076">BMCOUNT_VALID</a>, and <a class="el" href="a00106.html#l00231">bm::xor_swap()</a>. </td>
3030
<a class="anchor" name="a36" doxytag="bm::bvector::test"></a><p>
3031
<table class="mdTable" cellpadding="2" cellspacing="0">
3034
<table cellpadding="0" cellspacing="0" border="0">
3036
<td class="mdPrefix" colspan="4">
3037
template<class Alloc, class MS> </td>
3040
<td class="md" nowrap valign="top">bool <a class="el" href="a00048.html">bm::bvector</a>< Alloc, MS >::test </td>
3041
<td class="md" valign="top">( </td>
3042
<td class="md" nowrap valign="top"><a class="el" href="a00092.html#a9">bm::id_t</a> </td>
3043
<td class="mdname1" valign="top" nowrap> <em>n</em> </td>
3044
<td class="md" valign="top"> ) </td>
3045
<td class="md" nowrap> const<code> [inline]</code></td>
3051
<table cellspacing="5" cellpadding="0" border="0">
3059
returns true if bit n is set and false is bit n is 0.
3061
<dl compact><dt><b>Parameters:</b></dt><dd>
3062
<table border="0" cellspacing="2" cellpadding="0">
3063
<tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>- Index of the bit to check. </td></tr>
3066
<dl compact><dt><b>Returns:</b></dt><dd>Bit value (1 or 0) </dd></dl>
3069
Definition at line <a class="el" href="a00102.html#l01140">1140</a> of file <a class="el" href="a00102.html">bm.h</a>.
3071
References <a class="el" href="a00102.html#l01756">bm::bvector< Alloc, MS >::get_bit()</a>. </td>
3074
<hr><h2>Friends And Related Function Documentation</h2>
3075
<a class="anchor" name="n1" doxytag="bm::bvector::enumerator"></a><p>
3076
<table class="mdTable" cellpadding="2" cellspacing="0">
3079
<table cellpadding="0" cellspacing="0" border="0">
3081
<td class="mdPrefix" colspan="4">
3082
template<class Alloc, class MS> </td>
3085
<td class="md" nowrap valign="top">friend class <a class="el" href="a00050.html">enumerator</a><code> [friend]</code> </td>
3091
<table cellspacing="5" cellpadding="0" border="0">
3101
Definition at line <a class="el" href="a00102.html#l00785">785</a> of file <a class="el" href="a00102.html">bm.h</a>. </td>
3104
<a class="anchor" name="n0" doxytag="bm::bvector::iterator_base"></a><p>
3105
<table class="mdTable" cellpadding="2" cellspacing="0">
3108
<table cellpadding="0" cellspacing="0" border="0">
3110
<td class="mdPrefix" colspan="4">
3111
template<class Alloc, class MS> </td>
3114
<td class="md" nowrap valign="top">friend class <a class="el" href="a00052.html">iterator_base</a><code> [friend]</code> </td>
3120
<table cellspacing="5" cellpadding="0" border="0">
3130
Definition at line <a class="el" href="a00102.html#l00784">784</a> of file <a class="el" href="a00102.html">bm.h</a>. </td>
3133
<hr>The documentation for this class was generated from the following file:<ul>
3134
<li><a class="el" href="a00102.html">bm.h</a></ul>
3135
<hr size="1"><address style="align: right;"><small>Generated on Thu Apr 20 13:29:13 2006 for BitMagic by
3136
<a href="http://www.doxygen.org/index.html">
3137
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>