1
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
2
2
<html><head><meta http-equiv="Content-Type" content="text/html;charset=iso-8859-1">
3
<title>BitMagic: sample2.cpp File Reference</title>
3
<title>BitMagic: bm::bvector< Alloc, MS > Class Template Reference</title>
4
4
<link href="doxygen.css" rel="stylesheet" type="text/css">
6
6
<!-- Generated by Doxygen 1.4.1 -->
7
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="dir_000001.html">samples</a> / <a class="el" href="dir_000003.html">sample2</a></div>
10
<h1>sample2.cpp File Reference</h1><code>#include <iostream></code><br>
11
<code>#include "<a class="el" href="a00102.html">bm.h</a>"</code><br>
14
Include dependency graph for sample2.cpp:<p><center><img src="a00145.png" border="0" usemap="#sample2.cpp_map" alt=""></center>
15
<map name="sample2.cpp_map">
16
<area href="a00074.html" shape="rect" coords="163,305,203,327" alt="">
17
<area href="a00076.html" shape="rect" coords="264,192,333,213" alt="">
18
<area href="a00077.html" shape="rect" coords="271,237,327,259" alt="">
19
<area href="a00079.html" shape="rect" coords="267,283,331,304" alt="">
20
<area href="a00078.html" shape="rect" coords="267,373,331,395" alt="">
21
<area href="a00081.html" shape="rect" coords="265,419,332,440" alt="">
22
<area href="a00082.html" shape="rect" coords="263,464,335,485" alt="">
23
<area href="a00080.html" shape="rect" coords="263,600,335,621" alt="">
27
<a href="a00112.html">Go to the source code of this file.</a><table border="0" cellpadding="0" cellspacing="0">
9
<a class="el" href="a00129.html">bm</a>::<a class="el" href="a00084.html">bvector</a></div>
10
<h1>bm::bvector< Alloc, MS > Class Template Reference<br>
12
[<a class="el" href="a00132.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="a00137.html">bm.h</a>></code>
18
<table border="0" cellpadding="0" cellspacing="0">
29
<tr><td colspan="2"><br><h2>Functions</h2></td></tr>
30
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a0">print_bvector</a> (const <a class="el" href="a00048.html">bm::bvector</a><> &bv)</td></tr>
32
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a1">main</a> (void)</td></tr>
35
<hr><h2>Function Documentation</h2>
36
<a class="anchor" name="a1" doxytag="sample2.cpp::main"></a><p>
37
<table class="mdTable" cellpadding="2" cellspacing="0">
40
<table cellpadding="0" cellspacing="0" border="0">
42
<td class="md" nowrap valign="top">int main </td>
43
<td class="md" valign="top">( </td>
44
<td class="md" nowrap valign="top">void </td>
45
<td class="mdname1" valign="top" nowrap> </td>
46
<td class="md" valign="top"> ) </td>
47
<td class="md" nowrap></td>
53
<table cellspacing="5" cellpadding="0" border="0">
63
Definition at line <a class="el" href="a00112.html#l00055">55</a> of file <a class="el" href="a00112.html">sample2.cpp</a>.
65
References <a class="el" href="a00102.html#l01845">bm::bvector< Alloc, MS >::compare()</a>, <a class="el" href="a00112.html#l00036">print_bvector()</a>, and <a class="el" href="a00102.html#l00971">bm::bvector< Alloc, MS >::set()</a>. </td>
68
<a class="anchor" name="a0" doxytag="sample2.cpp::print_bvector"></a><p>
69
<table class="mdTable" cellpadding="2" cellspacing="0">
72
<table cellpadding="0" cellspacing="0" border="0">
74
<td class="md" nowrap valign="top">void print_bvector </td>
75
<td class="md" valign="top">( </td>
76
<td class="md" nowrap valign="top">const <a class="el" href="a00048.html">bm::bvector</a><> & </td>
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="a00084.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="a00084.html#w1">blocks_manager_type</a></td></tr>
26
<tr><td class="memItemLeft" nowrap align="right" valign="top">typedef <a class="el" href="a00129.html#a26">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.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="a00084.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="a00084.html#w7">optmode</a> { <a class="el" href="a00084.html#w7w4">opt_free_0</a> = 1,
32
<a class="el" href="a00084.html#w7w5">opt_free_01</a> = 2,
33
<a class="el" href="a00084.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="a00084.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="a00084.html#a0">bvector</a> (<a class="el" href="a00132.html#ga0">strategy</a> strat=BM_BIT, const <a class="el" href="a00129.html#a36">gap_word_t</a> *glevel_len=<a class="el" href="a00104.html">bm::gap_len_table</a>< true >::_len, <a class="el" href="a00084.html#w2">size_type</a> bv_size=<a class="el" href="a00129.html#a29">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="a00084.html#a1">bvector</a> (<a class="el" href="a00084.html#w2">size_type</a> bv_size, <a class="el" href="a00132.html#ga0">strategy</a> strat=BM_BIT, const <a class="el" href="a00129.html#a36">gap_word_t</a> *glevel_len=<a class="el" href="a00104.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="a00084.html#a2">bvector</a> (const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > &<a class="el" href="a00084.html">bvect</a>)</td></tr>
46
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bvector</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a3">operator=</a> (const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > &<a class="el" href="a00084.html">bvect</a>)</td></tr>
48
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00092.html">reference</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a4">operator[]</a> (<a class="el" href="a00129.html#a26">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="a00084.html#a5">operator[]</a> (<a class="el" href="a00129.html#a26">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="a00084.html#a6">operator &=</a> (const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > &<a class="el" href="a00084.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="a00084.html#a7">operator^=</a> (const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > &<a class="el" href="a00084.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="a00084.html#a8">operator|=</a> (const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > &<a class="el" href="a00084.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="a00084.html#a9">operator-=</a> (const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > &<a class="el" href="a00084.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="a00084.html#a10">operator<</a> (const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > &<a class="el" href="a00084.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="a00084.html#a11">operator<=</a> (const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > &<a class="el" href="a00084.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="a00084.html#a12">operator></a> (const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > &<a class="el" href="a00084.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="a00084.html#a13">operator>=</a> (const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > &<a class="el" href="a00084.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="a00084.html#a14">operator==</a> (const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > &<a class="el" href="a00084.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="a00084.html#a15">operator!=</a> (const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > &<a class="el" href="a00084.html">bvect</a>) const </td></tr>
72
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bvector</a>< Alloc, MS > </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.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="a00084.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="a00084.html#a18">set_bit</a> (<a class="el" href="a00129.html#a26">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">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a19">set_bit_and</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> n, bool val=true)</td></tr>
81
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets bit n using bit AND with the provided value. <a href="#a19"></a><br></td></tr>
82
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a20">set_bit_conditional</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> n, bool val, bool condition)</td></tr>
84
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets bit n only if current value is equal to the condition. <a href="#a20"></a><br></td></tr>
85
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a21">set</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> n, bool val=true)</td></tr>
87
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets bit n if val is true, clears bit n if val is false. <a href="#a21"></a><br></td></tr>
88
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a22">set</a> ()</td></tr>
90
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets every bit in this bitset to 1. <a href="#a22"></a><br></td></tr>
91
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a23">set_range</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> left, <a class="el" href="a00129.html#a26">bm::id_t</a> right, bool value=true)</td></tr>
93
<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="#a23"></a><br></td></tr>
94
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00087.html">insert_iterator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a24">inserter</a> ()</td></tr>
96
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a25">clear_bit</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> n)</td></tr>
98
<tr><td class="mdescLeft"> </td><td class="mdescRight">Clears bit n. <a href="#a25"></a><br></td></tr>
99
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a26">clear</a> (bool free_mem=false)</td></tr>
101
<tr><td class="mdescLeft"> </td><td class="mdescRight">Clears every bit in the bitvector. <a href="#a26"></a><br></td></tr>
102
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a27">reset</a> ()</td></tr>
104
<tr><td class="mdescLeft"> </td><td class="mdescRight">Clears every bit in the bitvector. <a href="#a27"></a><br></td></tr>
105
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a28">count</a> () const </td></tr>
107
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns count of bits which are 1. <a href="#a28"></a><br></td></tr>
108
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html#w2">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a29">capacity</a> () const </td></tr>
110
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns bvector's capacity (number of bits it can store). <a href="#a29"></a><br></td></tr>
111
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html#w2">size_type</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a30">size</a> () const </td></tr>
113
<tr><td class="mdescLeft"> </td><td class="mdescRight">return current size of the vector (bits) <a href="#a30"></a><br></td></tr>
114
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a31">resize</a> (<a class="el" href="a00084.html#w2">size_type</a> new_size)</td></tr>
116
<tr><td class="mdescLeft"> </td><td class="mdescRight">Change size of the bvector. <a href="#a31"></a><br></td></tr>
117
<tr><td class="memItemLeft" nowrap align="right" valign="top">unsigned </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a32">count_blocks</a> (unsigned *arr) const </td></tr>
119
<tr><td class="mdescLeft"> </td><td class="mdescRight">Computes bitcount values for all bvector blocks. <a href="#a32"></a><br></td></tr>
120
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a33">count_range</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> left, <a class="el" href="a00129.html#a26">bm::id_t</a> right, unsigned *block_count_arr=0) const </td></tr>
122
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns count of 1 bits in the given diapason. <a href="#a33"></a><br></td></tr>
123
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a34">recalc_count</a> ()</td></tr>
125
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a35">forget_count</a> ()</td></tr>
127
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a36">invert</a> ()</td></tr>
129
<tr><td class="mdescLeft"> </td><td class="mdescRight">Inverts all bits. <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="a00084.html#a37">get_bit</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> n) const </td></tr>
132
<tr><td class="mdescLeft"> </td><td class="mdescRight">returns true if bit n is set and false is bit n is 0. <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="a00084.html#a38">test</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> n) const </td></tr>
135
<tr><td class="mdescLeft"> </td><td class="mdescRight">returns true if bit n is set and false is bit n is 0. <a href="#a38"></a><br></td></tr>
136
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a39">any</a> () const </td></tr>
138
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns true if any bits in this bitset are set, and otherwise returns false. <a href="#a39"></a><br></td></tr>
139
<tr><td class="memItemLeft" nowrap align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a40">none</a> () const </td></tr>
141
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns true if no bits are set, otherwise returns false. <a href="#a40"></a><br></td></tr>
142
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a41">flip</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> n)</td></tr>
144
<tr><td class="mdescLeft"> </td><td class="mdescRight">Flips bit n. <a href="#a41"></a><br></td></tr>
145
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a42">flip</a> ()</td></tr>
147
<tr><td class="mdescLeft"> </td><td class="mdescRight">Flips all bits. <a href="#a42"></a><br></td></tr>
148
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a43">swap</a> (<a class="el" href="a00084.html">bvector</a>< Alloc, MS > &bv)</td></tr>
150
<tr><td class="mdescLeft"> </td><td class="mdescRight">Exchanges content of bv and this bitvector. <a href="#a43"></a><br></td></tr>
151
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a44">get_first</a> () const </td></tr>
153
<tr><td class="mdescLeft"> </td><td class="mdescRight">Gets number of first bit which is ON. <a href="#a44"></a><br></td></tr>
154
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a45">get_next</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> prev) const </td></tr>
156
<tr><td class="mdescLeft"> </td><td class="mdescRight">Finds the number of the next bit ON. <a href="#a45"></a><br></td></tr>
157
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a46">extract_next</a> (<a class="el" href="a00129.html#a26">bm::id_t</a> prev)</td></tr>
159
<tr><td class="mdescLeft"> </td><td class="mdescRight">Finds the number of the next bit ON and sets it to 0. <a href="#a46"></a><br></td></tr>
160
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a47">calc_stat</a> (struct <a class="el" href="a00093.html">statistics</a> *st) const </td></tr>
162
<tr><td class="mdescLeft"> </td><td class="mdescRight">Calculates bitvector statistics. <a href="#a47"></a><br></td></tr>
163
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a48">bit_or</a> (const <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS > &vect)</td></tr>
165
<tr><td class="mdescLeft"> </td><td class="mdescRight">Logical OR operation. <a href="#a48"></a><br></td></tr>
166
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a49">bit_and</a> (const <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS > &vect)</td></tr>
168
<tr><td class="mdescLeft"> </td><td class="mdescRight">Logical AND operation. <a href="#a49"></a><br></td></tr>
169
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a50">bit_xor</a> (const <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS > &vect)</td></tr>
171
<tr><td class="mdescLeft"> </td><td class="mdescRight">Logical XOR operation. <a href="#a50"></a><br></td></tr>
172
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS > & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a51">bit_sub</a> (const <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS > &vect)</td></tr>
174
<tr><td class="mdescLeft"> </td><td class="mdescRight">Logical SUB operation. <a href="#a51"></a><br></td></tr>
175
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a52">set_new_blocks_strat</a> (<a class="el" href="a00132.html#ga0">strategy</a> strat)</td></tr>
177
<tr><td class="mdescLeft"> </td><td class="mdescRight">Sets new blocks allocation strategy. <a href="#a52"></a><br></td></tr>
178
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00132.html#ga0">strategy</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a53">get_new_blocks_strat</a> () const </td></tr>
180
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns blocks allocation strategy. <a href="#a53"></a><br></td></tr>
181
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a54">stat</a> (unsigned blocks=0) const </td></tr>
183
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a55">optimize</a> (<a class="el" href="a00129.html#a27">bm::word_t</a> *temp_block=0, <a class="el" href="a00084.html#w7">optmode</a> opt_mode=opt_compress, <a class="el" href="a00093.html">statistics</a> *stat=0)</td></tr>
185
<tr><td class="mdescLeft"> </td><td class="mdescRight">Optimize memory bitvector's memory allocation. <a href="#a55"></a><br></td></tr>
186
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a56">optimize_gap_size</a> ()</td></tr>
188
<tr><td class="mdescLeft"> </td><td class="mdescRight">Optimize sizes of GAP blocks. <a href="#a56"></a><br></td></tr>
189
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a57">set_gap_levels</a> (const <a class="el" href="a00129.html#a36">gap_word_t</a> *glevel_len)</td></tr>
191
<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="#a57"></a><br></td></tr>
192
<tr><td class="memItemLeft" nowrap align="right" valign="top">int </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a58">compare</a> (const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > &<a class="el" href="a00084.html">bvect</a>) const </td></tr>
194
<tr><td class="mdescLeft"> </td><td class="mdescRight">Lexicographical comparison with a bitvector. <a href="#a58"></a><br></td></tr>
195
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00129.html#a27">bm::word_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a59">allocate_tempblock</a> () const </td></tr>
197
<tr><td class="mdescLeft"> </td><td class="mdescRight">Allocates temporary block of memory. <a href="#a59"></a><br></td></tr>
198
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a60">free_tempblock</a> (<a class="el" href="a00129.html#a27">bm::word_t</a> *block) const </td></tr>
200
<tr><td class="mdescLeft"> </td><td class="mdescRight">Frees temporary block of memory. <a href="#a60"></a><br></td></tr>
201
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00086.html">enumerator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a61">first</a> () const </td></tr>
203
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns enumerator pointing on the first non-zero bit. <a href="#a61"></a><br></td></tr>
204
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00086.html">enumerator</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a62">end</a> () const </td></tr>
206
<tr><td class="mdescLeft"> </td><td class="mdescRight">Returns enumerator pointing on the next bit after the last. <a href="#a62"></a><br></td></tr>
207
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="a00129.html#a27">bm::word_t</a> * </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a63">get_block</a> (unsigned nb) const </td></tr>
209
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a64">combine_operation</a> (const <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS > &<a class="el" href="a00084.html">bvect</a>, <a class="el" href="a00129.html#a179">bm::operation</a> opcode)</td></tr>
211
<tr><td class="memItemLeft" nowrap align="right" valign="top">void </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a65">combine_operation_with_block</a> (unsigned nb, const <a class="el" href="a00129.html#a27">bm::word_t</a> *arg_blk, int arg_gap, <a class="el" href="a00129.html#a179">bm::operation</a> opcode)</td></tr>
213
<tr><td class="memItemLeft" nowrap align="right" valign="top">const <a class="el" href="a00084.html#w1">blocks_manager_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a66">get_blocks_manager</a> () const </td></tr>
215
<tr><td class="memItemLeft" nowrap align="right" valign="top"><a class="el" href="a00084.html#w1">blocks_manager_type</a> & </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#a67">get_blocks_manager</a> ()</td></tr>
217
<tr><td colspan="2"><br><h2>Friends</h2></td></tr>
218
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#n0">iterator_base</a></td></tr>
220
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00084.html#n1">enumerator</a></td></tr>
222
<tr><td colspan="2"><br><h2>Data Structures</h2></td></tr>
223
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00085.html">counted_enumerator</a></td></tr>
225
<tr><td class="mdescLeft"> </td><td class="mdescRight">Constant input iterator designed to enumerate "ON" bits <a class="el" href="a00085.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="a00085.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="a00086.html">enumerator</a></td></tr>
228
<tr><td class="mdescLeft"> </td><td class="mdescRight">Constant input iterator designed to enumerate "ON" bits. <a href="a00086.html#_details">More...</a><br></td></tr>
229
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00087.html">insert_iterator</a></td></tr>
231
<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="a00087.html#_details">More...</a><br></td></tr>
232
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00088.html">iterator_base</a></td></tr>
234
<tr><td class="mdescLeft"> </td><td class="mdescRight">Base class for all iterators. <a href="a00088.html#_details">More...</a><br></td></tr>
235
<tr><td class="memItemLeft" nowrap align="right" valign="top">class </td><td class="memItemRight" valign="bottom"><a class="el" href="a00092.html">reference</a></td></tr>
237
<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="a00092.html#_details">More...</a><br></td></tr>
238
<tr><td class="memItemLeft" nowrap align="right" valign="top">struct </td><td class="memItemRight" valign="bottom"><a class="el" href="a00093.html">statistics</a></td></tr>
240
<tr><td class="mdescLeft"> </td><td class="mdescRight">Statistical information about bitset's memory allocation details. <a href="a00093.html#_details">More...</a><br></td></tr>
242
<hr><a name="_details"></a><h2>Detailed Description</h2>
243
<h3>template<class Alloc, class MS><br>
244
class bm::bvector< Alloc, MS ></h3>
246
bitvector with runtime compression of bits. <dl compact><dt><b>Examples: </b></dt><dd>
249
<a class="el" href="a00052.html#_a1">sample1.cpp</a>, <a class="el" href="a00053.html#_a8">sample2.cpp</a>, <a class="el" href="a00054.html#_a13">sample3.cpp</a>, <a class="el" href="a00055.html#_a19">sample4.cpp</a>, <a class="el" href="a00056.html#_a30">sample5.cpp</a>, <a class="el" href="a00057.html#_a35">sample6.cpp</a>, <a class="el" href="a00058.html#_a37">sample7.cpp</a>, <a class="el" href="a00059.html#_a53">sample8.cpp</a>, and <a class="el" href="a00060.html#_a60">sample9.cpp</a>.</dl>
253
Definition at line <a class="el" href="a00137.html#l00112">112</a> of file <a class="el" href="a00137.html">bm.h</a>.<hr><h2>Member Typedef Documentation</h2>
254
<a class="anchor" name="w0" doxytag="bm::bvector::allocator_type"></a><p>
255
<table class="mdTable" cellpadding="2" cellspacing="0">
258
<table cellpadding="0" cellspacing="0" border="0">
260
<td class="mdPrefix" colspan="4">
261
template<class Alloc, class MS> </td>
264
<td class="md" nowrap valign="top">typedef Alloc <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::<a class="el" href="a00084.html#w0">allocator_type</a> </td>
270
<table cellspacing="5" cellpadding="0" border="0">
280
Definition at line <a class="el" href="a00137.html#l00116">116</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
283
<a class="anchor" name="w1" doxytag="bm::bvector::blocks_manager_type"></a><p>
284
<table class="mdTable" cellpadding="2" cellspacing="0">
287
<table cellpadding="0" cellspacing="0" border="0">
289
<td class="mdPrefix" colspan="4">
290
template<class Alloc, class MS> </td>
293
<td class="md" nowrap valign="top">typedef blocks_manager<Alloc, MS> <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::<a class="el" href="a00084.html#w1">blocks_manager_type</a> </td>
299
<table cellspacing="5" cellpadding="0" border="0">
309
Definition at line <a class="el" href="a00137.html#l00117">117</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
312
<a class="anchor" name="w3" doxytag="bm::bvector::const_reference"></a><p>
313
<table class="mdTable" cellpadding="2" cellspacing="0">
316
<table cellpadding="0" cellspacing="0" border="0">
318
<td class="mdPrefix" colspan="4">
319
template<class Alloc, class MS> </td>
322
<td class="md" nowrap valign="top">typedef bool <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::<a class="el" href="a00084.html#w3">const_reference</a> </td>
328
<table cellspacing="5" cellpadding="0" border="0">
338
Definition at line <a class="el" href="a00137.html#l00217">217</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
341
<a class="anchor" name="w2" doxytag="bm::bvector::size_type"></a><p>
342
<table class="mdTable" cellpadding="2" cellspacing="0">
345
<table cellpadding="0" cellspacing="0" border="0">
347
<td class="mdPrefix" colspan="4">
348
template<class Alloc, class MS> </td>
351
<td class="md" nowrap valign="top">typedef <a class="el" href="a00129.html#a26">bm::id_t</a> <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::<a class="el" href="a00084.html#w2">size_type</a> </td>
357
<table cellspacing="5" cellpadding="0" border="0">
365
Type used to count bits in the bit vector.
369
Definition at line <a class="el" href="a00137.html#l00119">119</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
372
<hr><h2>Member Enumeration Documentation</h2>
373
<a class="anchor" name="w7" doxytag="bm::bvector::optmode"></a><p>
374
<table class="mdTable" cellpadding="2" cellspacing="0">
377
<table cellpadding="0" cellspacing="0" border="0">
379
<td class="mdPrefix" colspan="4">
380
template<class Alloc, class MS> </td>
383
<td class="md" nowrap valign="top">enum <a class="el" href="a00084.html#w7">bm::bvector::optmode</a> </td>
389
<table cellspacing="5" cellpadding="0" border="0">
397
Optimization mode Every next level means additional checks (better compression vs time).
399
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00084.html#a55">optimize</a> </dd></dl>
400
<dl compact><dt><b>Enumeration values: </b></dt><dd>
401
<table border="0" cellspacing="2" cellpadding="0">
402
<tr><td valign="top"><em><a class="anchor" name="w7w4" doxytag="opt_free_0"></a>opt_free_0</em> </td><td>
403
Free unused 0 blocks. </td></tr>
404
<tr><td valign="top"><em><a class="anchor" name="w7w5" doxytag="opt_free_01"></a>opt_free_01</em> </td><td>
405
Free unused 0 and 1 blocks. </td></tr>
406
<tr><td valign="top"><em><a class="anchor" name="w7w6" doxytag="opt_compress"></a>opt_compress</em> </td><td>
407
compress blocks when possible </td></tr>
412
Definition at line <a class="el" href="a00137.html#l01341">1341</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
415
<hr><h2>Constructor & Destructor Documentation</h2>
416
<a class="anchor" name="a0" doxytag="bm::bvector::bvector"></a><p>
417
<table class="mdTable" cellpadding="2" cellspacing="0">
420
<table cellpadding="0" cellspacing="0" border="0">
422
<td class="mdPrefix" colspan="4">
423
template<class Alloc, class MS> </td>
426
<td class="md" nowrap valign="top"><a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::<a class="el" href="a00084.html">bvector</a> </td>
427
<td class="md" valign="top">( </td>
428
<td class="md" nowrap valign="top"><a class="el" href="a00132.html#ga0">strategy</a> </td>
429
<td class="mdname" nowrap> <em>strat</em> = <code>BM_BIT</code>, </td>
432
<td class="md" nowrap align="right"></td>
434
<td class="md" nowrap>const <a class="el" href="a00129.html#a36">gap_word_t</a> * </td>
435
<td class="mdname" nowrap> <em>glevel_len</em> = <code><a class="el" href="a00104.html">bm::gap_len_table</a><true>::_len</code>, </td>
438
<td class="md" nowrap align="right"></td>
440
<td class="md" nowrap><a class="el" href="a00084.html#w2">size_type</a> </td>
441
<td class="mdname" nowrap> <em>bv_size</em> = <code><a class="el" href="a00129.html#a29">bm::id_max</a></code>, </td>
444
<td class="md" nowrap align="right"></td>
446
<td class="md" nowrap>const Alloc & </td>
447
<td class="mdname" nowrap> <em>alloc</em> = <code>Alloc()</code></td>
451
<td class="md">) </td>
452
<td class="md" colspan="2"><code> [inline]</code></td>
458
<table cellspacing="5" cellpadding="0" border="0">
466
Constructs bvector class.
468
<dl compact><dt><b>Parameters:</b></dt><dd>
469
<table border="0" cellspacing="2" cellpadding="0">
470
<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>
471
<tr><td valign="top"></td><td valign="top"><em>glevel_len</em> </td><td><ul>
472
<li>pointer on C-style array keeping GAP block sizes. (Put <a class="el" href="a00105.html#s0">bm::gap_len_table_min<true>::_len</a> for GAP memory saving mode) </li></ul>
474
<tr><td valign="top"></td><td valign="top"><em>bv_size</em> </td><td><ul>
475
<li>bvector size (number of bits addressable by bvector), <a class="el" href="a00129.html#a29">bm::id_max</a> means "no limits" (recommended). bit vector allocates this space dynamically on demand.</li></ul>
479
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00104.html">bm::gap_len_table</a> <a class="el" href="a00105.html">bm::gap_len_table_min</a> <a class="el" href="a00084.html#a52">set_new_blocks_strat</a> </dd></dl>
482
Definition at line <a class="el" href="a00137.html#l00828">828</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
485
<a class="anchor" name="a1" doxytag="bm::bvector::bvector"></a><p>
486
<table class="mdTable" cellpadding="2" cellspacing="0">
489
<table cellpadding="0" cellspacing="0" border="0">
491
<td class="mdPrefix" colspan="4">
492
template<class Alloc, class MS> </td>
495
<td class="md" nowrap valign="top"><a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::<a class="el" href="a00084.html">bvector</a> </td>
496
<td class="md" valign="top">( </td>
497
<td class="md" nowrap valign="top"><a class="el" href="a00084.html#w2">size_type</a> </td>
498
<td class="mdname" nowrap> <em>bv_size</em>, </td>
501
<td class="md" nowrap align="right"></td>
503
<td class="md" nowrap><a class="el" href="a00132.html#ga0">strategy</a> </td>
504
<td class="mdname" nowrap> <em>strat</em> = <code>BM_BIT</code>, </td>
507
<td class="md" nowrap align="right"></td>
509
<td class="md" nowrap>const <a class="el" href="a00129.html#a36">gap_word_t</a> * </td>
510
<td class="mdname" nowrap> <em>glevel_len</em> = <code><a class="el" href="a00104.html">bm::gap_len_table</a><true>::_len</code>, </td>
513
<td class="md" nowrap align="right"></td>
515
<td class="md" nowrap>const Alloc & </td>
516
<td class="mdname" nowrap> <em>alloc</em> = <code>Alloc()</code></td>
520
<td class="md">) </td>
521
<td class="md" colspan="2"><code> [inline]</code></td>
527
<table cellspacing="5" cellpadding="0" border="0">
535
Constructs bvector class.
539
Definition at line <a class="el" href="a00137.html#l00840">840</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
542
<a class="anchor" name="a2" doxytag="bm::bvector::bvector"></a><p>
543
<table class="mdTable" cellpadding="2" cellspacing="0">
546
<table cellpadding="0" cellspacing="0" border="0">
548
<td class="mdPrefix" colspan="4">
549
template<class Alloc, class MS> </td>
552
<td class="md" nowrap valign="top"><a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::<a class="el" href="a00084.html">bvector</a> </td>
553
<td class="md" valign="top">( </td>
554
<td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td>
555
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
556
<td class="md" valign="top"> ) </td>
557
<td class="md" nowrap><code> [inline]</code></td>
563
<table cellspacing="5" cellpadding="0" border="0">
573
Definition at line <a class="el" href="a00137.html#l00850">850</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
576
<hr><h2>Member Function Documentation</h2>
577
<a class="anchor" name="a59" doxytag="bm::bvector::allocate_tempblock"></a><p>
578
<table class="mdTable" cellpadding="2" cellspacing="0">
581
<table cellpadding="0" cellspacing="0" border="0">
583
<td class="mdPrefix" colspan="4">
584
template<class Alloc, class MS> </td>
587
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a27">bm::word_t</a>* <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::allocate_tempblock </td>
588
<td class="md" valign="top">( </td>
589
<td class="mdname1" valign="top" nowrap> </td>
590
<td class="md" valign="top"> ) </td>
591
<td class="md" nowrap> const<code> [inline]</code></td>
597
<table cellspacing="5" cellpadding="0" border="0">
605
Allocates temporary block of memory.
607
Temp block can be passed to bvector functions requiring some temp memory for their operation. (like serialize)<p>
608
<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>
609
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00084.html#a60">free_tempblock</a> </dd></dl>
612
Definition at line <a class="el" href="a00137.html#l01402">1402</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
615
<a class="anchor" name="a39" doxytag="bm::bvector::any"></a><p>
616
<table class="mdTable" cellpadding="2" cellspacing="0">
619
<table cellpadding="0" cellspacing="0" border="0">
621
<td class="mdPrefix" colspan="4">
622
template<class Alloc, class MS> </td>
625
<td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::any </td>
626
<td class="md" valign="top">( </td>
627
<td class="mdname1" valign="top" nowrap> </td>
628
<td class="md" valign="top"> ) </td>
629
<td class="md" nowrap> const<code> [inline]</code></td>
635
<table cellspacing="5" cellpadding="0" border="0">
643
Returns true if any bits in this bitset are set, and otherwise returns false.
645
<dl compact><dt><b>Returns:</b></dt><dd>true if any bit is set </dd></dl>
648
Definition at line <a class="el" href="a00137.html#l01163">1163</a> of file <a class="el" href="a00137.html">bm.h</a>.
650
References <a class="el" href="a00141.html#l00575">bm::for_each_nzblock_if()</a>.
652
Referenced by <a class="el" href="a00137.html#l01182">bm::bvector< Alloc, MS >::none()</a>. </td>
655
<a class="anchor" name="a49" doxytag="bm::bvector::bit_and"></a><p>
656
<table class="mdTable" cellpadding="2" cellspacing="0">
659
<table cellpadding="0" cellspacing="0" border="0">
661
<td class="mdPrefix" colspan="4">
662
template<class Alloc, class MS> </td>
665
<td class="md" nowrap valign="top"><a class="el" href="a00084.html">bm::bvector</a><Alloc, MS>& <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::bit_and </td>
666
<td class="md" valign="top">( </td>
667
<td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS > & </td>
668
<td class="mdname1" valign="top" nowrap> <em>vect</em> </td>
669
<td class="md" valign="top"> ) </td>
670
<td class="md" nowrap><code> [inline]</code></td>
676
<table cellspacing="5" cellpadding="0" border="0">
684
Logical AND operation.
686
<dl compact><dt><b>Parameters:</b></dt><dd>
687
<table border="0" cellspacing="2" cellpadding="0">
688
<tr><td valign="top"></td><td valign="top"><em>vect</em> </td><td>- Argument vector. </td></tr>
693
Definition at line <a class="el" href="a00137.html#l01283">1283</a> of file <a class="el" href="a00137.html">bm.h</a>.
695
References <a class="el" href="a00129.html#a179a18">bm::BM_AND</a>, <a class="el" href="a00137.html#l00081">BMCOUNT_VALID</a>, and <a class="el" href="a00137.html#l02612">bm::bvector< Alloc, MS >::combine_operation()</a>.
697
Referenced by <a class="el" href="a00137.html#l01552">bm::operator &()</a>, and <a class="el" href="a00137.html#l00879">bm::bvector< Alloc, MS >::operator &=()</a>. </td>
700
<a class="anchor" name="a48" doxytag="bm::bvector::bit_or"></a><p>
701
<table class="mdTable" cellpadding="2" cellspacing="0">
704
<table cellpadding="0" cellspacing="0" border="0">
706
<td class="mdPrefix" colspan="4">
707
template<class Alloc, class MS> </td>
710
<td class="md" nowrap valign="top"><a class="el" href="a00084.html">bm::bvector</a><Alloc, MS>& <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::bit_or </td>
711
<td class="md" valign="top">( </td>
712
<td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS > & </td>
713
<td class="mdname1" valign="top" nowrap> <em>vect</em> </td>
714
<td class="md" valign="top"> ) </td>
715
<td class="md" nowrap><code> [inline]</code></td>
721
<table cellspacing="5" cellpadding="0" border="0">
729
Logical OR operation.
731
<dl compact><dt><b>Parameters:</b></dt><dd>
732
<table border="0" cellspacing="2" cellpadding="0">
733
<tr><td valign="top"></td><td valign="top"><em>vect</em> </td><td>- Argument vector. </td></tr>
738
Definition at line <a class="el" href="a00137.html#l01272">1272</a> of file <a class="el" href="a00137.html">bm.h</a>.
740
References <a class="el" href="a00129.html#a179a19">bm::BM_OR</a>, <a class="el" href="a00137.html#l00081">BMCOUNT_VALID</a>, and <a class="el" href="a00137.html#l02612">bm::bvector< Alloc, MS >::combine_operation()</a>.
742
Referenced by <a class="el" href="a00137.html#l00858">bm::bvector< Alloc, MS >::operator=()</a>, <a class="el" href="a00137.html#l01567">bm::operator|()</a>, and <a class="el" href="a00137.html#l00889">bm::bvector< Alloc, MS >::operator|=()</a>. </td>
745
<a class="anchor" name="a51" doxytag="bm::bvector::bit_sub"></a><p>
746
<table class="mdTable" cellpadding="2" cellspacing="0">
749
<table cellpadding="0" cellspacing="0" border="0">
751
<td class="mdPrefix" colspan="4">
752
template<class Alloc, class MS> </td>
755
<td class="md" nowrap valign="top"><a class="el" href="a00084.html">bm::bvector</a><Alloc, MS>& <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::bit_sub </td>
756
<td class="md" valign="top">( </td>
757
<td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS > & </td>
758
<td class="mdname1" valign="top" nowrap> <em>vect</em> </td>
759
<td class="md" valign="top"> ) </td>
760
<td class="md" nowrap><code> [inline]</code></td>
766
<table cellspacing="5" cellpadding="0" border="0">
774
Logical SUB operation.
776
<dl compact><dt><b>Parameters:</b></dt><dd>
777
<table border="0" cellspacing="2" cellpadding="0">
778
<tr><td valign="top"></td><td valign="top"><em>vect</em> </td><td>- Argument vector. </td></tr>
783
Definition at line <a class="el" href="a00137.html#l01305">1305</a> of file <a class="el" href="a00137.html">bm.h</a>.
785
References <a class="el" href="a00129.html#a179a20">bm::BM_SUB</a>, <a class="el" href="a00137.html#l00081">BMCOUNT_VALID</a>, and <a class="el" href="a00137.html#l02612">bm::bvector< Alloc, MS >::combine_operation()</a>.
787
Referenced by <a class="el" href="a00137.html#l01597">bm::operator-()</a>, and <a class="el" href="a00137.html#l00894">bm::bvector< Alloc, MS >::operator-=()</a>. </td>
790
<a class="anchor" name="a50" doxytag="bm::bvector::bit_xor"></a><p>
791
<table class="mdTable" cellpadding="2" cellspacing="0">
794
<table cellpadding="0" cellspacing="0" border="0">
796
<td class="mdPrefix" colspan="4">
797
template<class Alloc, class MS> </td>
800
<td class="md" nowrap valign="top"><a class="el" href="a00084.html">bm::bvector</a><Alloc, MS>& <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::bit_xor </td>
801
<td class="md" valign="top">( </td>
802
<td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS > & </td>
803
<td class="mdname1" valign="top" nowrap> <em>vect</em> </td>
804
<td class="md" valign="top"> ) </td>
805
<td class="md" nowrap><code> [inline]</code></td>
811
<table cellspacing="5" cellpadding="0" border="0">
819
Logical XOR operation.
821
<dl compact><dt><b>Parameters:</b></dt><dd>
822
<table border="0" cellspacing="2" cellpadding="0">
823
<tr><td valign="top"></td><td valign="top"><em>vect</em> </td><td>- Argument vector. </td></tr>
828
Definition at line <a class="el" href="a00137.html#l01294">1294</a> of file <a class="el" href="a00137.html">bm.h</a>.
830
References <a class="el" href="a00129.html#a179a21">bm::BM_XOR</a>, <a class="el" href="a00137.html#l00081">BMCOUNT_VALID</a>, and <a class="el" href="a00137.html#l02612">bm::bvector< Alloc, MS >::combine_operation()</a>.
832
Referenced by <a class="el" href="a00137.html#l01582">bm::operator^()</a>, and <a class="el" href="a00137.html#l00884">bm::bvector< Alloc, MS >::operator^=()</a>. </td>
835
<a class="anchor" name="a47" doxytag="bm::bvector::calc_stat"></a><p>
836
<table class="mdTable" cellpadding="2" cellspacing="0">
839
<table cellpadding="0" cellspacing="0" border="0">
841
<td class="mdPrefix" colspan="4">
842
template<class Alloc, class MS> </td>
845
<td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::calc_stat </td>
846
<td class="md" valign="top">( </td>
847
<td class="md" nowrap valign="top">struct <a class="el" href="a00093.html">statistics</a> * </td>
848
<td class="mdname1" valign="top" nowrap> <em>st</em> </td>
849
<td class="md" valign="top"> ) </td>
850
<td class="md" nowrap> const</td>
856
<table cellspacing="5" cellpadding="0" border="0">
864
Calculates bitvector statistics.
866
<dl compact><dt><b>Parameters:</b></dt><dd>
867
<table border="0" cellspacing="2" cellpadding="0">
868
<tr><td valign="top"></td><td valign="top"><em>st</em> </td><td>- pointer on statistics structure to be filled in.</td></tr>
871
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>
872
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00093.html">statistics</a> </dd></dl>
873
<dl compact><dt><b>Examples: </b></dt><dd>
874
<a class="el" href="a00058.html#a42">sample7.cpp</a>.</dl>
876
Referenced by <a class="el" href="a00152.html#l00066">CreateSets()</a>, <a class="el" href="a00152.html#l00087">FillSets()</a>, <a class="el" href="a00137.html#l01872">bm::bvector< Alloc, MS >::optimize_gap_size()</a>, and <a class="el" href="a00149.html#l00077">serialize_bvector()</a>. </td>
879
<a class="anchor" name="a29" doxytag="bm::bvector::capacity"></a><p>
880
<table class="mdTable" cellpadding="2" cellspacing="0">
883
<table cellpadding="0" cellspacing="0" border="0">
885
<td class="mdPrefix" colspan="4">
886
template<class Alloc, class MS> </td>
889
<td class="md" nowrap valign="top"><a class="el" href="a00084.html#w2">size_type</a> <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::capacity </td>
890
<td class="md" valign="top">( </td>
891
<td class="mdname1" valign="top" nowrap> </td>
892
<td class="md" valign="top"> ) </td>
893
<td class="md" nowrap> const<code> [inline]</code></td>
899
<table cellspacing="5" cellpadding="0" border="0">
907
Returns bvector's capacity (number of bits it can store).
911
Definition at line <a class="el" href="a00137.html#l01070">1070</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
914
<a class="anchor" name="a26" doxytag="bm::bvector::clear"></a><p>
915
<table class="mdTable" cellpadding="2" cellspacing="0">
918
<table cellpadding="0" cellspacing="0" border="0">
920
<td class="mdPrefix" colspan="4">
921
template<class Alloc, class MS> </td>
924
<td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::clear </td>
925
<td class="md" valign="top">( </td>
926
<td class="md" nowrap valign="top">bool </td>
927
<td class="mdname1" valign="top" nowrap> <em>free_mem</em> = <code>false</code> </td>
928
<td class="md" valign="top"> ) </td>
929
<td class="md" nowrap><code> [inline]</code></td>
935
<table cellspacing="5" cellpadding="0" border="0">
943
Clears every bit in the bitvector.
945
<dl compact><dt><b>Parameters:</b></dt><dd>
946
<table border="0" cellspacing="2" cellpadding="0">
947
<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>
952
Definition at line <a class="el" href="a00137.html#l01044">1044</a> of file <a class="el" href="a00137.html">bm.h</a>.
954
References <a class="el" href="a00137.html#l00082">BMCOUNT_SET</a>.
956
Referenced by <a class="el" href="a00146.html#l00044">main()</a>, <a class="el" href="a00137.html#l00858">bm::bvector< Alloc, MS >::operator=()</a>, and <a class="el" href="a00137.html#l01054">bm::bvector< Alloc, MS >::reset()</a>. </td>
959
<a class="anchor" name="a25" doxytag="bm::bvector::clear_bit"></a><p>
960
<table class="mdTable" cellpadding="2" cellspacing="0">
963
<table cellpadding="0" cellspacing="0" border="0">
965
<td class="mdPrefix" colspan="4">
966
template<class Alloc, class MS> </td>
969
<td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::clear_bit </td>
970
<td class="md" valign="top">( </td>
971
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> </td>
972
<td class="mdname1" valign="top" nowrap> <em>n</em> </td>
973
<td class="md" valign="top"> ) </td>
974
<td class="md" nowrap><code> [inline]</code></td>
980
<table cellspacing="5" cellpadding="0" border="0">
990
<dl compact><dt><b>Parameters:</b></dt><dd>
991
<table border="0" cellspacing="2" cellpadding="0">
992
<tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>- bit's index to be cleaned. </td></tr>
997
Definition at line <a class="el" href="a00137.html#l01032">1032</a> of file <a class="el" href="a00137.html">bm.h</a>.
999
References <a class="el" href="a00137.html#l00997">bm::bvector< Alloc, MS >::set()</a>. </td>
1002
<a class="anchor" name="a64" doxytag="bm::bvector::combine_operation"></a><p>
1003
<table class="mdTable" cellpadding="2" cellspacing="0">
1006
<table cellpadding="0" cellspacing="0" border="0">
1008
<td class="mdPrefix" colspan="4">
1009
template<class Alloc, class MS> </td>
1012
<td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::combine_operation </td>
1013
<td class="md" valign="top">( </td>
1014
<td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS > & </td>
1015
<td class="mdname" nowrap> <em>bvect</em>, </td>
1018
<td class="md" nowrap align="right"></td>
1019
<td class="md"></td>
1020
<td class="md" nowrap><a class="el" href="a00129.html#a179">bm::operation</a> </td>
1021
<td class="mdname" nowrap> <em>opcode</em></td>
1024
<td class="md"></td>
1025
<td class="md">) </td>
1026
<td class="md" colspan="2"></td>
1032
<table cellspacing="5" cellpadding="0" border="0">
1042
Definition at line <a class="el" href="a00137.html#l02612">2612</a> of file <a class="el" href="a00137.html">bm.h</a>.
1044
References <a class="el" href="a00137.html#l01540">bm::bvector< Alloc, MS >::blockman_</a>, <a class="el" href="a00129.html#a179a18">bm::BM_AND</a>, <a class="el" href="a00140.html#l00014">BM_ASSERT</a>, <a class="el" href="a00140.html#l00059">BM_IS_GAP</a>, <a class="el" href="a00140.html#l00093">BM_SET_MMX_GUARD</a>, <a class="el" href="a00137.html#l01481">bm::bvector< Alloc, MS >::combine_operation_with_block()</a>, <a class="el" href="a00137.html#l01444">bm::bvector< Alloc, MS >::get_block()</a>, <a class="el" href="a00137.html#l01615">bm::bvector< Alloc, MS >::set_range()</a>, and <a class="el" href="a00137.html#l01542">bm::bvector< Alloc, MS >::size_</a>.
1046
Referenced by <a class="el" href="a00137.html#l01283">bm::bvector< Alloc, MS >::bit_and()</a>, <a class="el" href="a00137.html#l01272">bm::bvector< Alloc, MS >::bit_or()</a>, <a class="el" href="a00137.html#l01305">bm::bvector< Alloc, MS >::bit_sub()</a>, and <a class="el" href="a00137.html#l01294">bm::bvector< Alloc, MS >::bit_xor()</a>. </td>
1049
<a class="anchor" name="a65" doxytag="bm::bvector::combine_operation_with_block"></a><p>
1050
<table class="mdTable" cellpadding="2" cellspacing="0">
1053
<table cellpadding="0" cellspacing="0" border="0">
1055
<td class="mdPrefix" colspan="4">
1056
template<class Alloc, class MS> </td>
1059
<td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::combine_operation_with_block </td>
1060
<td class="md" valign="top">( </td>
1061
<td class="md" nowrap valign="top">unsigned </td>
1062
<td class="mdname" nowrap> <em>nb</em>, </td>
1065
<td class="md" nowrap align="right"></td>
1066
<td class="md"></td>
1067
<td class="md" nowrap>const <a class="el" href="a00129.html#a27">bm::word_t</a> * </td>
1068
<td class="mdname" nowrap> <em>arg_blk</em>, </td>
1071
<td class="md" nowrap align="right"></td>
1072
<td class="md"></td>
1073
<td class="md" nowrap>int </td>
1074
<td class="mdname" nowrap> <em>arg_gap</em>, </td>
1077
<td class="md" nowrap align="right"></td>
1078
<td class="md"></td>
1079
<td class="md" nowrap><a class="el" href="a00129.html#a179">bm::operation</a> </td>
1080
<td class="mdname" nowrap> <em>opcode</em></td>
1083
<td class="md"></td>
1084
<td class="md">) </td>
1085
<td class="md" colspan="2"><code> [inline]</code></td>
1091
<table cellspacing="5" cellpadding="0" border="0">
1101
Definition at line <a class="el" href="a00137.html#l01481">1481</a> of file <a class="el" href="a00137.html">bm.h</a>.
1103
References <a class="el" href="a00140.html#l00059">BM_IS_GAP</a>, and <a class="el" href="a00137.html#l01444">bm::bvector< Alloc, MS >::get_block()</a>.
1105
Referenced by <a class="el" href="a00137.html#l02612">bm::bvector< Alloc, MS >::combine_operation()</a>. </td>
1108
<a class="anchor" name="a58" doxytag="bm::bvector::compare"></a><p>
1109
<table class="mdTable" cellpadding="2" cellspacing="0">
1112
<table cellpadding="0" cellspacing="0" border="0">
1114
<td class="mdPrefix" colspan="4">
1115
template<typename Alloc, typename MS> </td>
1118
<td class="md" nowrap valign="top">int <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::compare </td>
1119
<td class="md" valign="top">( </td>
1120
<td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td>
1121
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
1122
<td class="md" valign="top"> ) </td>
1123
<td class="md" nowrap> const</td>
1129
<table cellspacing="5" cellpadding="0" border="0">
1137
Lexicographical comparison with a bitvector.
1139
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.
1141
Definition at line <a class="el" href="a00137.html#l01909">1909</a> of file <a class="el" href="a00137.html">bm.h</a>.
1143
References <a class="el" href="a00141.html#l02729">bm::bit_is_all_zero()</a>, <a class="el" href="a00141.html#l02138">bm::bitcmp()</a>, <a class="el" href="a00137.html#l01540">bm::bvector< Alloc, MS >::blockman_</a>, <a class="el" href="a00140.html#l00059">BM_IS_GAP</a>, <a class="el" href="a00140.html#l00057">BMGAP_PTR</a>, <a class="el" href="a00141.html#l01808">bm::gap_convert_to_bitset()</a>, <a class="el" href="a00141.html#l02001">bm::gap_is_all_zero()</a>, and <a class="el" href="a00141.html#l00739">bm::gapcmp()</a>.
1145
Referenced by <a class="el" href="a00147.html#l00055">main()</a>, <a class="el" href="a00137.html#l00924">bm::bvector< Alloc, MS >::operator!=()</a>, <a class="el" href="a00137.html#l00899">bm::bvector< Alloc, MS >::operator<()</a>, <a class="el" href="a00137.html#l00904">bm::bvector< Alloc, MS >::operator<=()</a>, <a class="el" href="a00137.html#l00919">bm::bvector< Alloc, MS >::operator==()</a>, <a class="el" href="a00137.html#l00909">bm::bvector< Alloc, MS >::operator>()</a>, and <a class="el" href="a00137.html#l00914">bm::bvector< Alloc, MS >::operator>=()</a>. </td>
1148
<a class="anchor" name="a28" doxytag="bm::bvector::count"></a><p>
1149
<table class="mdTable" cellpadding="2" cellspacing="0">
1152
<table cellpadding="0" cellspacing="0" border="0">
1154
<td class="mdPrefix" colspan="4">
1155
template<typename Alloc, typename MS> </td>
1158
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::count </td>
1159
<td class="md" valign="top">( </td>
1160
<td class="mdname1" valign="top" nowrap> </td>
1161
<td class="md" valign="top"> ) </td>
1162
<td class="md" nowrap> const</td>
1168
<table cellspacing="5" cellpadding="0" border="0">
1176
Returns count of bits which are 1.
1178
<dl compact><dt><b>Returns:</b></dt><dd>Total number of bits ON. </dd></dl>
1179
<dl compact><dt><b>Examples: </b></dt><dd>
1180
<a class="el" href="a00058.html#a48">sample7.cpp</a>.</dl>
1182
Definition at line <a class="el" href="a00137.html#l01638">1638</a> of file <a class="el" href="a00137.html">bm.h</a>.
1184
References <a class="el" href="a00137.html#l00082">BMCOUNT_SET</a>, and <a class="el" href="a00141.html#l00535">bm::for_each_nzblock()</a>.
1186
Referenced by <a class="el" href="a00137.html#l01678">bm::bvector< Alloc, MS >::count_range()</a>, <a class="el" href="a00146.html#l00044">main()</a>, <a class="el" href="a00152.html#l00153">OrSets()</a>, <a class="el" href="a00137.html#l01118">bm::bvector< Alloc, MS >::recalc_count()</a>, <a class="el" href="a00149.html#l00077">serialize_bvector()</a>, and <a class="el" href="a00137.html#l02351">bm::bvector< Alloc, MS >::stat()</a>. </td>
1189
<a class="anchor" name="a32" doxytag="bm::bvector::count_blocks"></a><p>
1190
<table class="mdTable" cellpadding="2" cellspacing="0">
1193
<table cellpadding="0" cellspacing="0" border="0">
1195
<td class="mdPrefix" colspan="4">
1196
template<class Alloc, class MS> </td>
1199
<td class="md" nowrap valign="top">unsigned <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::count_blocks </td>
1200
<td class="md" valign="top">( </td>
1201
<td class="md" nowrap valign="top">unsigned * </td>
1202
<td class="mdname1" valign="top" nowrap> <em>arr</em> </td>
1203
<td class="md" valign="top"> ) </td>
1204
<td class="md" nowrap> const<code> [inline]</code></td>
1210
<table cellspacing="5" cellpadding="0" border="0">
1218
Computes bitcount values for all bvector blocks.
1220
<dl compact><dt><b>Parameters:</b></dt><dd>
1221
<table border="0" cellspacing="2" cellpadding="0">
1222
<tr><td valign="top"></td><td valign="top"><em>arr</em> </td><td>- pointer on array of block bit counts </td></tr>
1225
<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>
1228
Definition at line <a class="el" href="a00137.html#l01095">1095</a> of file <a class="el" href="a00137.html">bm.h</a>.
1230
References <a class="el" href="a00141.html#l00535">bm::for_each_nzblock()</a>. </td>
1233
<a class="anchor" name="a33" doxytag="bm::bvector::count_range"></a><p>
1234
<table class="mdTable" cellpadding="2" cellspacing="0">
1237
<table cellpadding="0" cellspacing="0" border="0">
1239
<td class="mdPrefix" colspan="4">
1240
template<typename Alloc, typename MS> </td>
1243
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::count_range </td>
1244
<td class="md" valign="top">( </td>
1245
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> </td>
1246
<td class="mdname" nowrap> <em>left</em>, </td>
1249
<td class="md" nowrap align="right"></td>
1250
<td class="md"></td>
1251
<td class="md" nowrap><a class="el" href="a00129.html#a26">bm::id_t</a> </td>
1252
<td class="mdname" nowrap> <em>right</em>, </td>
1255
<td class="md" nowrap align="right"></td>
1256
<td class="md"></td>
1257
<td class="md" nowrap>unsigned * </td>
1258
<td class="mdname" nowrap> <em>block_count_arr</em> = <code>0</code></td>
1261
<td class="md"></td>
1262
<td class="md">) </td>
1263
<td class="md" colspan="2"> const</td>
1269
<table cellspacing="5" cellpadding="0" border="0">
1277
Returns count of 1 bits in the given diapason.
1279
<dl compact><dt><b>Parameters:</b></dt><dd>
1280
<table border="0" cellspacing="2" cellpadding="0">
1281
<tr><td valign="top"></td><td valign="top"><em>left</em> </td><td>- index of first bit start counting from </td></tr>
1282
<tr><td valign="top"></td><td valign="top"><em>right</em> </td><td>- index of last bit </td></tr>
1283
<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>
1286
<dl compact><dt><b>Returns:</b></dt><dd>Total number of bits ON. </dd></dl>
1289
Definition at line <a class="el" href="a00137.html#l01678">1678</a> of file <a class="el" href="a00137.html">bm.h</a>.
1291
References <a class="el" href="a00141.html#l02553">bm::bit_block_calc_count_range()</a>, <a class="el" href="a00140.html#l00014">BM_ASSERT</a>, <a class="el" href="a00140.html#l00059">BM_IS_GAP</a>, <a class="el" href="a00140.html#l00057">BMGAP_PTR</a>, <a class="el" href="a00137.html#l01638">bm::bvector< Alloc, MS >::count()</a>, <a class="el" href="a00141.html#l00691">bm::gap_bit_count_range()</a>, and <a class="el" href="a00137.html#l01444">bm::bvector< Alloc, MS >::get_block()</a>. </td>
1294
<a class="anchor" name="a62" doxytag="bm::bvector::end"></a><p>
1295
<table class="mdTable" cellpadding="2" cellspacing="0">
1298
<table cellpadding="0" cellspacing="0" border="0">
1300
<td class="mdPrefix" colspan="4">
1301
template<class Alloc, class MS> </td>
1304
<td class="md" nowrap valign="top"><a class="el" href="a00086.html">bvector::enumerator</a> <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::end </td>
1305
<td class="md" valign="top">( </td>
1306
<td class="mdname1" valign="top" nowrap> </td>
1307
<td class="md" valign="top"> ) </td>
1308
<td class="md" nowrap> const<code> [inline]</code></td>
1314
<table cellspacing="5" cellpadding="0" border="0">
1322
Returns enumerator pointing on the next bit after the last.
1324
<dl compact><dt><b>Examples: </b></dt><dd>
1325
<a class="el" href="a00058.html#a45">sample7.cpp</a>.</dl>
1327
Definition at line <a class="el" href="a00137.html#l01437">1437</a> of file <a class="el" href="a00137.html">bm.h</a>.
1329
Referenced by <a class="el" href="a00152.html#l00121">EnumerateSets()</a>, and <a class="el" href="a00150.html#l00046">main()</a>. </td>
1332
<a class="anchor" name="a46" doxytag="bm::bvector::extract_next"></a><p>
1333
<table class="mdTable" cellpadding="2" cellspacing="0">
1336
<table cellpadding="0" cellspacing="0" border="0">
1338
<td class="mdPrefix" colspan="4">
1339
template<class Alloc, class MS> </td>
1342
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::extract_next </td>
1343
<td class="md" valign="top">( </td>
1344
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> </td>
1345
<td class="mdname1" valign="top" nowrap> <em>prev</em> </td>
1346
<td class="md" valign="top"> ) </td>
1347
<td class="md" nowrap><code> [inline]</code></td>
1353
<table cellspacing="5" cellpadding="0" border="0">
1361
Finds the number of the next bit ON and sets it to 0.
1363
<dl compact><dt><b>Parameters:</b></dt><dd>
1364
<table border="0" cellspacing="2" cellpadding="0">
1365
<tr><td valign="top"></td><td valign="top"><em>prev</em> </td><td>- Index of the previously found bit. </td></tr>
1368
<dl compact><dt><b>Returns:</b></dt><dd>Index of the next bit which is ON or 0 if not found. </dd></dl>
1369
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00084.html#a44">get_first</a>, <a class="el" href="a00084.html#a45">get_next</a>, </dd></dl>
1372
Definition at line <a class="el" href="a00137.html#l01249">1249</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
1375
<a class="anchor" name="a61" doxytag="bm::bvector::first"></a><p>
1376
<table class="mdTable" cellpadding="2" cellspacing="0">
1379
<table cellpadding="0" cellspacing="0" border="0">
1381
<td class="mdPrefix" colspan="4">
1382
template<class Alloc, class MS> </td>
1385
<td class="md" nowrap valign="top"><a class="el" href="a00086.html">enumerator</a> <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::first </td>
1386
<td class="md" valign="top">( </td>
1387
<td class="mdname1" valign="top" nowrap> </td>
1388
<td class="md" valign="top"> ) </td>
1389
<td class="md" nowrap> const<code> [inline]</code></td>
1395
<table cellspacing="5" cellpadding="0" border="0">
1403
Returns enumerator pointing on the first non-zero bit.
1405
<dl compact><dt><b>Examples: </b></dt><dd>
1406
<a class="el" href="a00058.html#a44">sample7.cpp</a>.</dl>
1408
Definition at line <a class="el" href="a00137.html#l01427">1427</a> of file <a class="el" href="a00137.html">bm.h</a>.
1410
Referenced by <a class="el" href="a00152.html#l00121">EnumerateSets()</a>, and <a class="el" href="a00150.html#l00046">main()</a>. </td>
1413
<a class="anchor" name="a42" doxytag="bm::bvector::flip"></a><p>
1414
<table class="mdTable" cellpadding="2" cellspacing="0">
1417
<table cellpadding="0" cellspacing="0" border="0">
1419
<td class="mdPrefix" colspan="4">
1420
template<class Alloc, class MS> </td>
1423
<td class="md" nowrap valign="top"><a class="el" href="a00084.html">bvector</a><Alloc, MS>& <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::flip </td>
1424
<td class="md" valign="top">( </td>
1425
<td class="mdname1" valign="top" nowrap> </td>
1426
<td class="md" valign="top"> ) </td>
1427
<td class="md" nowrap><code> [inline]</code></td>
1433
<table cellspacing="5" cellpadding="0" border="0">
1443
<dl compact><dt><b>Returns:</b></dt><dd>*this </dd></dl>
1446
Definition at line <a class="el" href="a00137.html#l01201">1201</a> of file <a class="el" href="a00137.html">bm.h</a>.
1448
References <a class="el" href="a00137.html#l01772">bm::bvector< Alloc, MS >::invert()</a>. </td>
1451
<a class="anchor" name="a41" doxytag="bm::bvector::flip"></a><p>
1452
<table class="mdTable" cellpadding="2" cellspacing="0">
1455
<table cellpadding="0" cellspacing="0" border="0">
1457
<td class="mdPrefix" colspan="4">
1458
template<class Alloc, class MS> </td>
1461
<td class="md" nowrap valign="top"><a class="el" href="a00084.html">bvector</a><Alloc, MS>& <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::flip </td>
1462
<td class="md" valign="top">( </td>
1463
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> </td>
1464
<td class="mdname1" valign="top" nowrap> <em>n</em> </td>
1465
<td class="md" valign="top"> ) </td>
1466
<td class="md" nowrap><code> [inline]</code></td>
1472
<table cellspacing="5" cellpadding="0" border="0">
1482
<dl compact><dt><b>Returns:</b></dt><dd>*this </dd></dl>
1485
Definition at line <a class="el" href="a00137.html#l01191">1191</a> of file <a class="el" href="a00137.html">bm.h</a>.
1487
References <a class="el" href="a00137.html#l01796">bm::bvector< Alloc, MS >::get_bit()</a>, and <a class="el" href="a00137.html#l00997">bm::bvector< Alloc, MS >::set()</a>. </td>
1490
<a class="anchor" name="a35" doxytag="bm::bvector::forget_count"></a><p>
1491
<table class="mdTable" cellpadding="2" cellspacing="0">
1494
<table cellpadding="0" cellspacing="0" border="0">
1496
<td class="mdPrefix" colspan="4">
1497
template<class Alloc, class MS> </td>
1500
<td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::forget_count </td>
1501
<td class="md" valign="top">( </td>
1502
<td class="mdname1" valign="top" nowrap> </td>
1503
<td class="md" valign="top"> ) </td>
1504
<td class="md" nowrap><code> [inline]</code></td>
1510
<table cellspacing="5" cellpadding="0" border="0">
1518
Disables count cache. Next call to <a class="el" href="a00084.html#a28">count()</a> or <a class="el" href="a00084.html#a34">recalc_count()</a> restores count caching.<p>
1519
<dl compact><dt><b>Note:</b></dt><dd>Works only if BMCOUNTOPT enabled(defined). Othewise does nothing. </dd></dl>
1522
Definition at line <a class="el" href="a00137.html#l01131">1131</a> of file <a class="el" href="a00137.html">bm.h</a>.
1524
References <a class="el" href="a00137.html#l00081">BMCOUNT_VALID</a>. </td>
1527
<a class="anchor" name="a60" doxytag="bm::bvector::free_tempblock"></a><p>
1528
<table class="mdTable" cellpadding="2" cellspacing="0">
1531
<table cellpadding="0" cellspacing="0" border="0">
1533
<td class="mdPrefix" colspan="4">
1534
template<class Alloc, class MS> </td>
1537
<td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::free_tempblock </td>
1538
<td class="md" valign="top">( </td>
1539
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a27">bm::word_t</a> * </td>
1540
<td class="mdname1" valign="top" nowrap> <em>block</em> </td>
1541
<td class="md" valign="top"> ) </td>
1542
<td class="md" nowrap> const<code> [inline]</code></td>
1548
<table cellspacing="5" cellpadding="0" border="0">
1556
Frees temporary block of memory.
1558
<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>
1559
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00084.html#a59">allocate_tempblock</a> </dd></dl>
1562
Definition at line <a class="el" href="a00137.html#l01417">1417</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
1565
<a class="anchor" name="a17" doxytag="bm::bvector::get_allocator"></a><p>
1566
<table class="mdTable" cellpadding="2" cellspacing="0">
1569
<table cellpadding="0" cellspacing="0" border="0">
1571
<td class="mdPrefix" colspan="4">
1572
template<class Alloc, class MS> </td>
1575
<td class="md" nowrap valign="top">Alloc <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::get_allocator </td>
1576
<td class="md" valign="top">( </td>
1577
<td class="mdname1" valign="top" nowrap> </td>
1578
<td class="md" valign="top"> ) </td>
1579
<td class="md" nowrap> const<code> [inline]</code></td>
1585
<table cellspacing="5" cellpadding="0" border="0">
1595
Definition at line <a class="el" href="a00137.html#l00934">934</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
1598
<a class="anchor" name="a37" doxytag="bm::bvector::get_bit"></a><p>
1599
<table class="mdTable" cellpadding="2" cellspacing="0">
1602
<table cellpadding="0" cellspacing="0" border="0">
1604
<td class="mdPrefix" colspan="4">
1605
template<typename Alloc, typename MS> </td>
1608
<td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::get_bit </td>
1609
<td class="md" valign="top">( </td>
1610
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> </td>
1611
<td class="mdname1" valign="top" nowrap> <em>n</em> </td>
1612
<td class="md" valign="top"> ) </td>
1613
<td class="md" nowrap> const</td>
1619
<table cellspacing="5" cellpadding="0" border="0">
1627
returns true if bit n is set and false is bit n is 0.
1629
<dl compact><dt><b>Parameters:</b></dt><dd>
1630
<table border="0" cellspacing="2" cellpadding="0">
1631
<tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>- Index of the bit to check. </td></tr>
1634
<dl compact><dt><b>Returns:</b></dt><dd>Bit value (1 or 0) </dd></dl>
1637
Definition at line <a class="el" href="a00137.html#l01796">1796</a> of file <a class="el" href="a00137.html">bm.h</a>.
1639
References <a class="el" href="a00140.html#l00014">BM_ASSERT</a>, <a class="el" href="a00140.html#l00059">BM_IS_GAP</a>, <a class="el" href="a00140.html#l00057">BMGAP_PTR</a>, <a class="el" href="a00141.html#l00497">bm::gap_test()</a>, and <a class="el" href="a00137.html#l01444">bm::bvector< Alloc, MS >::get_block()</a>.
1641
Referenced by <a class="el" href="a00137.html#l01191">bm::bvector< Alloc, MS >::flip()</a>, <a class="el" href="a00137.html#l00873">bm::bvector< Alloc, MS >::operator[]()</a>, and <a class="el" href="a00137.html#l01154">bm::bvector< Alloc, MS >::test()</a>. </td>
1644
<a class="anchor" name="a63" doxytag="bm::bvector::get_block"></a><p>
1645
<table class="mdTable" cellpadding="2" cellspacing="0">
1648
<table cellpadding="0" cellspacing="0" border="0">
1650
<td class="mdPrefix" colspan="4">
1651
template<class Alloc, class MS> </td>
1654
<td class="md" nowrap valign="top">const <a class="el" href="a00129.html#a27">bm::word_t</a>* <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::get_block </td>
1655
<td class="md" valign="top">( </td>
1656
<td class="md" nowrap valign="top">unsigned </td>
1657
<td class="mdname1" valign="top" nowrap> <em>nb</em> </td>
1658
<td class="md" valign="top"> ) </td>
1659
<td class="md" nowrap> const<code> [inline]</code></td>
1665
<table cellspacing="5" cellpadding="0" border="0">
1675
Definition at line <a class="el" href="a00137.html#l01444">1444</a> of file <a class="el" href="a00137.html">bm.h</a>.
1677
Referenced by <a class="el" href="a00137.html#l02612">bm::bvector< Alloc, MS >::combine_operation()</a>, <a class="el" href="a00137.html#l01481">bm::bvector< Alloc, MS >::combine_operation_with_block()</a>, <a class="el" href="a00137.html#l01678">bm::bvector< Alloc, MS >::count_range()</a>, <a class="el" href="a00137.html#l01796">bm::bvector< Alloc, MS >::get_bit()</a>, and <a class="el" href="a00137.html#l02351">bm::bvector< Alloc, MS >::stat()</a>. </td>
1680
<a class="anchor" name="a67" doxytag="bm::bvector::get_blocks_manager"></a><p>
1681
<table class="mdTable" cellpadding="2" cellspacing="0">
1684
<table cellpadding="0" cellspacing="0" border="0">
1686
<td class="mdPrefix" colspan="4">
1687
template<class Alloc, class MS> </td>
1690
<td class="md" nowrap valign="top"><a class="el" href="a00084.html#w1">blocks_manager_type</a>& <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::get_blocks_manager </td>
1691
<td class="md" valign="top">( </td>
1692
<td class="mdname1" valign="top" nowrap> </td>
1693
<td class="md" valign="top"> ) </td>
1694
<td class="md" nowrap><code> [inline]</code></td>
1700
<table cellspacing="5" cellpadding="0" border="0">
1710
Definition at line <a class="el" href="a00137.html#l01525">1525</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
1713
<a class="anchor" name="a66" doxytag="bm::bvector::get_blocks_manager"></a><p>
1714
<table class="mdTable" cellpadding="2" cellspacing="0">
1717
<table cellpadding="0" cellspacing="0" border="0">
1719
<td class="mdPrefix" colspan="4">
1720
template<class Alloc, class MS> </td>
1723
<td class="md" nowrap valign="top">const <a class="el" href="a00084.html#w1">blocks_manager_type</a>& <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::get_blocks_manager </td>
1724
<td class="md" valign="top">( </td>
1725
<td class="mdname1" valign="top" nowrap> </td>
1726
<td class="md" valign="top"> ) </td>
1727
<td class="md" nowrap> const<code> [inline]</code></td>
1733
<table cellspacing="5" cellpadding="0" border="0">
1743
Definition at line <a class="el" href="a00137.html#l01520">1520</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
1746
<a class="anchor" name="a44" doxytag="bm::bvector::get_first"></a><p>
1747
<table class="mdTable" cellpadding="2" cellspacing="0">
1750
<table cellpadding="0" cellspacing="0" border="0">
1752
<td class="mdPrefix" colspan="4">
1753
template<class Alloc, class MS> </td>
1756
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::get_first </td>
1757
<td class="md" valign="top">( </td>
1758
<td class="mdname1" valign="top" nowrap> </td>
1759
<td class="md" valign="top"> ) </td>
1760
<td class="md" nowrap> const<code> [inline]</code></td>
1766
<table cellspacing="5" cellpadding="0" border="0">
1774
Gets number of first bit which is ON.
1776
<dl compact><dt><b>Returns:</b></dt><dd>Index of the first 1 bit. </dd></dl>
1777
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00084.html#a45">get_next</a>, <a class="el" href="a00084.html#a46">extract_next</a> </dd></dl>
1780
Definition at line <a class="el" href="a00137.html#l01228">1228</a> of file <a class="el" href="a00137.html">bm.h</a>.
1782
Referenced by <a class="el" href="a00146.html#l00044">main()</a>. </td>
1785
<a class="anchor" name="a53" doxytag="bm::bvector::get_new_blocks_strat"></a><p>
1786
<table class="mdTable" cellpadding="2" cellspacing="0">
1789
<table cellpadding="0" cellspacing="0" border="0">
1791
<td class="mdPrefix" colspan="4">
1792
template<class Alloc, class MS> </td>
1795
<td class="md" nowrap valign="top"><a class="el" href="a00132.html#ga0">strategy</a> <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::get_new_blocks_strat </td>
1796
<td class="md" valign="top">( </td>
1797
<td class="mdname1" valign="top" nowrap> </td>
1798
<td class="md" valign="top"> ) </td>
1799
<td class="md" nowrap> const<code> [inline]</code></td>
1805
<table cellspacing="5" cellpadding="0" border="0">
1813
Returns blocks allocation strategy.
1815
<dl compact><dt><b>Returns:</b></dt><dd>- Strategy code 0 - bitblocks allocation only. 1 - Blocks mutation mode (adaptive algorithm) </dd></dl>
1816
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00084.html#a52">set_new_blocks_strat</a> </dd></dl>
1819
Definition at line <a class="el" href="a00137.html#l01329">1329</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
1822
<a class="anchor" name="a45" doxytag="bm::bvector::get_next"></a><p>
1823
<table class="mdTable" cellpadding="2" cellspacing="0">
1826
<table cellpadding="0" cellspacing="0" border="0">
1828
<td class="mdPrefix" colspan="4">
1829
template<class Alloc, class MS> </td>
1832
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::get_next </td>
1833
<td class="md" valign="top">( </td>
1834
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> </td>
1835
<td class="mdname1" valign="top" nowrap> <em>prev</em> </td>
1836
<td class="md" valign="top"> ) </td>
1837
<td class="md" nowrap> const<code> [inline]</code></td>
1843
<table cellspacing="5" cellpadding="0" border="0">
1851
Finds the number of the next bit ON.
1853
<dl compact><dt><b>Parameters:</b></dt><dd>
1854
<table border="0" cellspacing="2" cellpadding="0">
1855
<tr><td valign="top"></td><td valign="top"><em>prev</em> </td><td>- Index of the previously found bit. </td></tr>
1858
<dl compact><dt><b>Returns:</b></dt><dd>Index of the next bit which is ON or 0 if not found. </dd></dl>
1859
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00084.html#a44">get_first</a>, <a class="el" href="a00084.html#a46">extract_next</a> </dd></dl>
1862
Definition at line <a class="el" href="a00137.html#l01237">1237</a> of file <a class="el" href="a00137.html">bm.h</a>.
1864
Referenced by <a class="el" href="a00146.html#l00044">main()</a>. </td>
1867
<a class="anchor" name="a24" doxytag="bm::bvector::inserter"></a><p>
1868
<table class="mdTable" cellpadding="2" cellspacing="0">
1871
<table cellpadding="0" cellspacing="0" border="0">
1873
<td class="mdPrefix" colspan="4">
1874
template<class Alloc, class MS> </td>
1877
<td class="md" nowrap valign="top"><a class="el" href="a00087.html">insert_iterator</a> <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::inserter </td>
1878
<td class="md" valign="top">( </td>
1879
<td class="mdname1" valign="top" nowrap> </td>
1880
<td class="md" valign="top"> ) </td>
1881
<td class="md" nowrap><code> [inline]</code></td>
1887
<table cellspacing="5" cellpadding="0" border="0">
1895
Function erturns insert iterator for this bitvector
1897
Definition at line <a class="el" href="a00137.html#l01022">1022</a> of file <a class="el" href="a00137.html">bm.h</a>.
1899
Referenced by <a class="el" href="a00153.html#l00069">main()</a>. </td>
1902
<a class="anchor" name="a36" doxytag="bm::bvector::invert"></a><p>
1903
<table class="mdTable" cellpadding="2" cellspacing="0">
1906
<table cellpadding="0" cellspacing="0" border="0">
1908
<td class="mdPrefix" colspan="4">
1909
template<typename Alloc, typename MS> </td>
1912
<td class="md" nowrap valign="top"><a class="el" href="a00084.html">bvector</a>< Alloc, MS > & <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::invert </td>
1913
<td class="md" valign="top">( </td>
1914
<td class="mdname1" valign="top" nowrap> </td>
1915
<td class="md" valign="top"> ) </td>
1916
<td class="md" nowrap></td>
1922
<table cellspacing="5" cellpadding="0" border="0">
1934
Definition at line <a class="el" href="a00137.html#l01772">1772</a> of file <a class="el" href="a00137.html">bm.h</a>.
1936
References <a class="el" href="a00140.html#l00093">BM_SET_MMX_GUARD</a>, <a class="el" href="a00137.html#l00081">BMCOUNT_VALID</a>, and <a class="el" href="a00141.html#l00600">bm::for_each_block()</a>.
1938
Referenced by <a class="el" href="a00137.html#l01201">bm::bvector< Alloc, MS >::flip()</a>. </td>
1941
<a class="anchor" name="a40" doxytag="bm::bvector::none"></a><p>
1942
<table class="mdTable" cellpadding="2" cellspacing="0">
1945
<table cellpadding="0" cellspacing="0" border="0">
1947
<td class="mdPrefix" colspan="4">
1948
template<class Alloc, class MS> </td>
1951
<td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::none </td>
1952
<td class="md" valign="top">( </td>
1953
<td class="mdname1" valign="top" nowrap> </td>
1954
<td class="md" valign="top"> ) </td>
1955
<td class="md" nowrap> const<code> [inline]</code></td>
1961
<table cellspacing="5" cellpadding="0" border="0">
1969
Returns true if no bits are set, otherwise returns false.
1973
Definition at line <a class="el" href="a00137.html#l01182">1182</a> of file <a class="el" href="a00137.html">bm.h</a>.
1975
References <a class="el" href="a00137.html#l01163">bm::bvector< Alloc, MS >::any()</a>. </td>
1978
<a class="anchor" name="a6" doxytag="bm::bvector::operator &="></a><p>
1979
<table class="mdTable" cellpadding="2" cellspacing="0">
1982
<table cellpadding="0" cellspacing="0" border="0">
1984
<td class="mdPrefix" colspan="4">
1985
template<class Alloc, class MS> </td>
1988
<td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::operator &= </td>
1989
<td class="md" valign="top">( </td>
1990
<td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td>
1991
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
1992
<td class="md" valign="top"> ) </td>
1993
<td class="md" nowrap><code> [inline]</code></td>
1999
<table cellspacing="5" cellpadding="0" border="0">
2009
Definition at line <a class="el" href="a00137.html#l00879">879</a> of file <a class="el" href="a00137.html">bm.h</a>.
2011
References <a class="el" href="a00137.html#l01283">bm::bvector< Alloc, MS >::bit_and()</a>. </td>
2014
<a class="anchor" name="a15" doxytag="bm::bvector::operator!="></a><p>
2015
<table class="mdTable" cellpadding="2" cellspacing="0">
2018
<table cellpadding="0" cellspacing="0" border="0">
2020
<td class="mdPrefix" colspan="4">
2021
template<class Alloc, class MS> </td>
2024
<td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::operator!= </td>
2025
<td class="md" valign="top">( </td>
2026
<td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td>
2027
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
2028
<td class="md" valign="top"> ) </td>
2029
<td class="md" nowrap> const<code> [inline]</code></td>
2035
<table cellspacing="5" cellpadding="0" border="0">
2045
Definition at line <a class="el" href="a00137.html#l00924">924</a> of file <a class="el" href="a00137.html">bm.h</a>.
2047
References <a class="el" href="a00137.html#l01909">bm::bvector< Alloc, MS >::compare()</a>. </td>
2050
<a class="anchor" name="a9" doxytag="bm::bvector::operator-="></a><p>
2051
<table class="mdTable" cellpadding="2" cellspacing="0">
2054
<table cellpadding="0" cellspacing="0" border="0">
2056
<td class="mdPrefix" colspan="4">
2057
template<class Alloc, class MS> </td>
2060
<td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::operator-= </td>
2061
<td class="md" valign="top">( </td>
2062
<td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td>
2063
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
2064
<td class="md" valign="top"> ) </td>
2065
<td class="md" nowrap><code> [inline]</code></td>
2071
<table cellspacing="5" cellpadding="0" border="0">
2081
Definition at line <a class="el" href="a00137.html#l00894">894</a> of file <a class="el" href="a00137.html">bm.h</a>.
2083
References <a class="el" href="a00137.html#l01305">bm::bvector< Alloc, MS >::bit_sub()</a>. </td>
2086
<a class="anchor" name="a10" doxytag="bm::bvector::operator<"></a><p>
2087
<table class="mdTable" cellpadding="2" cellspacing="0">
2090
<table cellpadding="0" cellspacing="0" border="0">
2092
<td class="mdPrefix" colspan="4">
2093
template<class Alloc, class MS> </td>
2096
<td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::operator< </td>
2097
<td class="md" valign="top">( </td>
2098
<td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td>
2099
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
2100
<td class="md" valign="top"> ) </td>
2101
<td class="md" nowrap> const<code> [inline]</code></td>
2107
<table cellspacing="5" cellpadding="0" border="0">
2117
Definition at line <a class="el" href="a00137.html#l00899">899</a> of file <a class="el" href="a00137.html">bm.h</a>.
2119
References <a class="el" href="a00137.html#l01909">bm::bvector< Alloc, MS >::compare()</a>. </td>
2122
<a class="anchor" name="a11" doxytag="bm::bvector::operator<="></a><p>
2123
<table class="mdTable" cellpadding="2" cellspacing="0">
2126
<table cellpadding="0" cellspacing="0" border="0">
2128
<td class="mdPrefix" colspan="4">
2129
template<class Alloc, class MS> </td>
2132
<td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::operator<= </td>
2133
<td class="md" valign="top">( </td>
2134
<td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td>
2135
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
2136
<td class="md" valign="top"> ) </td>
2137
<td class="md" nowrap> const<code> [inline]</code></td>
2143
<table cellspacing="5" cellpadding="0" border="0">
2153
Definition at line <a class="el" href="a00137.html#l00904">904</a> of file <a class="el" href="a00137.html">bm.h</a>.
2155
References <a class="el" href="a00137.html#l01909">bm::bvector< Alloc, MS >::compare()</a>. </td>
2158
<a class="anchor" name="a3" doxytag="bm::bvector::operator="></a><p>
2159
<table class="mdTable" cellpadding="2" cellspacing="0">
2162
<table cellpadding="0" cellspacing="0" border="0">
2164
<td class="mdPrefix" colspan="4">
2165
template<class Alloc, class MS> </td>
2168
<td class="md" nowrap valign="top"><a class="el" href="a00084.html">bvector</a>& <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::operator= </td>
2169
<td class="md" valign="top">( </td>
2170
<td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td>
2171
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
2172
<td class="md" valign="top"> ) </td>
2173
<td class="md" nowrap><code> [inline]</code></td>
2179
<table cellspacing="5" cellpadding="0" border="0">
2189
Definition at line <a class="el" href="a00137.html#l00858">858</a> of file <a class="el" href="a00137.html">bm.h</a>.
2191
References <a class="el" href="a00137.html#l01272">bm::bvector< Alloc, MS >::bit_or()</a>, <a class="el" href="a00137.html#l01044">bm::bvector< Alloc, MS >::clear()</a>, and <a class="el" href="a00137.html#l01660">bm::bvector< Alloc, MS >::resize()</a>. </td>
2194
<a class="anchor" name="a14" doxytag="bm::bvector::operator=="></a><p>
2195
<table class="mdTable" cellpadding="2" cellspacing="0">
2198
<table cellpadding="0" cellspacing="0" border="0">
2200
<td class="mdPrefix" colspan="4">
2201
template<class Alloc, class MS> </td>
2204
<td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::operator== </td>
2205
<td class="md" valign="top">( </td>
2206
<td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td>
2207
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
2208
<td class="md" valign="top"> ) </td>
2209
<td class="md" nowrap> const<code> [inline]</code></td>
2215
<table cellspacing="5" cellpadding="0" border="0">
2225
Definition at line <a class="el" href="a00137.html#l00919">919</a> of file <a class="el" href="a00137.html">bm.h</a>.
2227
References <a class="el" href="a00137.html#l01909">bm::bvector< Alloc, MS >::compare()</a>. </td>
2230
<a class="anchor" name="a12" doxytag="bm::bvector::operator>"></a><p>
2231
<table class="mdTable" cellpadding="2" cellspacing="0">
2234
<table cellpadding="0" cellspacing="0" border="0">
2236
<td class="mdPrefix" colspan="4">
2237
template<class Alloc, class MS> </td>
2240
<td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::operator> </td>
2241
<td class="md" valign="top">( </td>
2242
<td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td>
2243
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
2244
<td class="md" valign="top"> ) </td>
2245
<td class="md" nowrap> const<code> [inline]</code></td>
2251
<table cellspacing="5" cellpadding="0" border="0">
2261
Definition at line <a class="el" href="a00137.html#l00909">909</a> of file <a class="el" href="a00137.html">bm.h</a>.
2263
References <a class="el" href="a00137.html#l01909">bm::bvector< Alloc, MS >::compare()</a>. </td>
2266
<a class="anchor" name="a13" doxytag="bm::bvector::operator>="></a><p>
2267
<table class="mdTable" cellpadding="2" cellspacing="0">
2270
<table cellpadding="0" cellspacing="0" border="0">
2272
<td class="mdPrefix" colspan="4">
2273
template<class Alloc, class MS> </td>
2276
<td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::operator>= </td>
2277
<td class="md" valign="top">( </td>
2278
<td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td>
2279
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
2280
<td class="md" valign="top"> ) </td>
2281
<td class="md" nowrap> const<code> [inline]</code></td>
2287
<table cellspacing="5" cellpadding="0" border="0">
2297
Definition at line <a class="el" href="a00137.html#l00914">914</a> of file <a class="el" href="a00137.html">bm.h</a>.
2299
References <a class="el" href="a00137.html#l01909">bm::bvector< Alloc, MS >::compare()</a>. </td>
2302
<a class="anchor" name="a5" doxytag="bm::bvector::operator[]"></a><p>
2303
<table class="mdTable" cellpadding="2" cellspacing="0">
2306
<table cellpadding="0" cellspacing="0" border="0">
2308
<td class="mdPrefix" colspan="4">
2309
template<class Alloc, class MS> </td>
2312
<td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::operator[] </td>
2313
<td class="md" valign="top">( </td>
2314
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> </td>
2315
<td class="mdname1" valign="top" nowrap> <em>n</em> </td>
2316
<td class="md" valign="top"> ) </td>
2317
<td class="md" nowrap> const<code> [inline]</code></td>
2323
<table cellspacing="5" cellpadding="0" border="0">
2333
Definition at line <a class="el" href="a00137.html#l00873">873</a> of file <a class="el" href="a00137.html">bm.h</a>.
2335
References <a class="el" href="a00140.html#l00014">BM_ASSERT</a>, and <a class="el" href="a00137.html#l01796">bm::bvector< Alloc, MS >::get_bit()</a>. </td>
2338
<a class="anchor" name="a4" doxytag="bm::bvector::operator[]"></a><p>
2339
<table class="mdTable" cellpadding="2" cellspacing="0">
2342
<table cellpadding="0" cellspacing="0" border="0">
2344
<td class="mdPrefix" colspan="4">
2345
template<class Alloc, class MS> </td>
2348
<td class="md" nowrap valign="top"><a class="el" href="a00092.html">reference</a> <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::operator[] </td>
2349
<td class="md" valign="top">( </td>
2350
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> </td>
2351
<td class="mdname1" valign="top" nowrap> <em>n</em> </td>
2352
<td class="md" valign="top"> ) </td>
2353
<td class="md" nowrap><code> [inline]</code></td>
2359
<table cellspacing="5" cellpadding="0" border="0">
2369
Definition at line <a class="el" href="a00137.html#l00866">866</a> of file <a class="el" href="a00137.html">bm.h</a>.
2371
References <a class="el" href="a00140.html#l00014">BM_ASSERT</a>. </td>
2374
<a class="anchor" name="a7" doxytag="bm::bvector::operator^="></a><p>
2375
<table class="mdTable" cellpadding="2" cellspacing="0">
2378
<table cellpadding="0" cellspacing="0" border="0">
2380
<td class="mdPrefix" colspan="4">
2381
template<class Alloc, class MS> </td>
2384
<td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::operator^= </td>
2385
<td class="md" valign="top">( </td>
2386
<td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td>
2387
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
2388
<td class="md" valign="top"> ) </td>
2389
<td class="md" nowrap><code> [inline]</code></td>
2395
<table cellspacing="5" cellpadding="0" border="0">
2405
Definition at line <a class="el" href="a00137.html#l00884">884</a> of file <a class="el" href="a00137.html">bm.h</a>.
2407
References <a class="el" href="a00137.html#l01294">bm::bvector< Alloc, MS >::bit_xor()</a>. </td>
2410
<a class="anchor" name="a8" doxytag="bm::bvector::operator|="></a><p>
2411
<table class="mdTable" cellpadding="2" cellspacing="0">
2414
<table cellpadding="0" cellspacing="0" border="0">
2416
<td class="mdPrefix" colspan="4">
2417
template<class Alloc, class MS> </td>
2420
<td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::operator|= </td>
2421
<td class="md" valign="top">( </td>
2422
<td class="md" nowrap valign="top">const <a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td>
2423
<td class="mdname1" valign="top" nowrap> <em>bvect</em> </td>
2424
<td class="md" valign="top"> ) </td>
2425
<td class="md" nowrap><code> [inline]</code></td>
2431
<table cellspacing="5" cellpadding="0" border="0">
2441
Definition at line <a class="el" href="a00137.html#l00889">889</a> of file <a class="el" href="a00137.html">bm.h</a>.
2443
References <a class="el" href="a00137.html#l01272">bm::bvector< Alloc, MS >::bit_or()</a>. </td>
2446
<a class="anchor" name="a16" doxytag="bm::bvector::operator~"></a><p>
2447
<table class="mdTable" cellpadding="2" cellspacing="0">
2450
<table cellpadding="0" cellspacing="0" border="0">
2452
<td class="mdPrefix" colspan="4">
2453
template<class Alloc, class MS> </td>
2456
<td class="md" nowrap valign="top"><a class="el" href="a00084.html">bvector</a><Alloc, MS> <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::operator~ </td>
2457
<td class="md" valign="top">( </td>
2458
<td class="mdname1" valign="top" nowrap> </td>
2459
<td class="md" valign="top"> ) </td>
2460
<td class="md" nowrap> const<code> [inline]</code></td>
2466
<table cellspacing="5" cellpadding="0" border="0">
2476
Definition at line <a class="el" href="a00137.html#l00929">929</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
2479
<a class="anchor" name="a55" doxytag="bm::bvector::optimize"></a><p>
2480
<table class="mdTable" cellpadding="2" cellspacing="0">
2483
<table cellpadding="0" cellspacing="0" border="0">
2485
<td class="mdPrefix" colspan="4">
2486
template<typename Alloc, typename MS> </td>
2489
<td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::optimize </td>
2490
<td class="md" valign="top">( </td>
2491
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a27">bm::word_t</a> * </td>
2492
<td class="mdname" nowrap> <em>temp_block</em> = <code>0</code>, </td>
2495
<td class="md" nowrap align="right"></td>
2496
<td class="md"></td>
2497
<td class="md" nowrap><a class="el" href="a00084.html#w7">optmode</a> </td>
2498
<td class="mdname" nowrap> <em>opt_mode</em> = <code>opt_compress</code>, </td>
2501
<td class="md" nowrap align="right"></td>
2502
<td class="md"></td>
2503
<td class="md" nowrap><a class="el" href="a00093.html">statistics</a> * </td>
2504
<td class="mdname" nowrap> <em>stat</em> = <code>0</code></td>
2507
<td class="md"></td>
2508
<td class="md">) </td>
2509
<td class="md" colspan="2"></td>
2515
<table cellspacing="5" cellpadding="0" border="0">
2523
Optimize memory bitvector's memory allocation.
2525
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>
2526
Optionally function can calculate vector post optimization statistics<p>
2527
<dl compact><dt><b>See also:</b></dt><dd><a class="el" href="a00084.html#w7">optmode</a>, <a class="el" href="a00084.html#a56">optimize_gap_size</a> </dd></dl>
2530
Definition at line <a class="el" href="a00137.html#l01830">1830</a> of file <a class="el" href="a00137.html">bm.h</a>.
2532
References <a class="el" href="a00141.html#l00535">bm::for_each_nzblock()</a>, and <a class="el" href="a00137.html#l02351">bm::bvector< Alloc, MS >::stat()</a>.
2534
Referenced by <a class="el" href="a00148.html#l00075">main()</a>, and <a class="el" href="a00149.html#l00077">serialize_bvector()</a>. </td>
2537
<a class="anchor" name="a56" doxytag="bm::bvector::optimize_gap_size"></a><p>
2538
<table class="mdTable" cellpadding="2" cellspacing="0">
2541
<table cellpadding="0" cellspacing="0" border="0">
2543
<td class="mdPrefix" colspan="4">
2544
template<typename Alloc, typename MS> </td>
2547
<td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::optimize_gap_size </td>
2548
<td class="md" valign="top">( </td>
2549
<td class="mdname1" valign="top" nowrap> </td>
2550
<td class="md" valign="top"> ) </td>
2551
<td class="md" nowrap></td>
2557
<table cellspacing="5" cellpadding="0" border="0">
2565
Optimize sizes of GAP blocks.
2567
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.
2569
Definition at line <a class="el" href="a00137.html#l01872">1872</a> of file <a class="el" href="a00137.html">bm.h</a>.
2571
References <a class="el" href="a00084.html#a47">bm::bvector< Alloc, MS >::calc_stat()</a>, <a class="el" href="a00139.html#l00072">bm::gap_levels</a>, <a class="el" href="a00141.html#l03977">bm::improve_gap_levels()</a>, and <a class="el" href="a00137.html#l01893">bm::bvector< Alloc, MS >::set_gap_levels()</a>. </td>
2574
<a class="anchor" name="a34" doxytag="bm::bvector::recalc_count"></a><p>
2575
<table class="mdTable" cellpadding="2" cellspacing="0">
2578
<table cellpadding="0" cellspacing="0" border="0">
2580
<td class="mdPrefix" colspan="4">
2581
template<class Alloc, class MS> </td>
2584
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::recalc_count </td>
2585
<td class="md" valign="top">( </td>
2586
<td class="mdname1" valign="top" nowrap> </td>
2587
<td class="md" valign="top"> ) </td>
2588
<td class="md" nowrap><code> [inline]</code></td>
2594
<table cellspacing="5" cellpadding="0" border="0">
2604
Definition at line <a class="el" href="a00137.html#l01118">1118</a> of file <a class="el" href="a00137.html">bm.h</a>.
2606
References <a class="el" href="a00137.html#l00081">BMCOUNT_VALID</a>, and <a class="el" href="a00137.html#l01638">bm::bvector< Alloc, MS >::count()</a>. </td>
2609
<a class="anchor" name="a27" doxytag="bm::bvector::reset"></a><p>
2610
<table class="mdTable" cellpadding="2" cellspacing="0">
2613
<table cellpadding="0" cellspacing="0" border="0">
2615
<td class="mdPrefix" colspan="4">
2616
template<class Alloc, class MS> </td>
2619
<td class="md" nowrap valign="top"><a class="el" href="a00084.html">bvector</a><Alloc, MS>& <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::reset </td>
2620
<td class="md" valign="top">( </td>
2621
<td class="mdname1" valign="top" nowrap> </td>
2622
<td class="md" valign="top"> ) </td>
2623
<td class="md" nowrap><code> [inline]</code></td>
2629
<table cellspacing="5" cellpadding="0" border="0">
2637
Clears every bit in the bitvector.
2639
<dl compact><dt><b>Returns:</b></dt><dd>*this; </dd></dl>
2642
Definition at line <a class="el" href="a00137.html#l01054">1054</a> of file <a class="el" href="a00137.html">bm.h</a>.
2644
References <a class="el" href="a00137.html#l01044">bm::bvector< Alloc, MS >::clear()</a>. </td>
2647
<a class="anchor" name="a31" doxytag="bm::bvector::resize"></a><p>
2648
<table class="mdTable" cellpadding="2" cellspacing="0">
2651
<table cellpadding="0" cellspacing="0" border="0">
2653
<td class="mdPrefix" colspan="4">
2654
template<typename Alloc, typename MS> </td>
2657
<td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::resize </td>
2658
<td class="md" valign="top">( </td>
2659
<td class="md" nowrap valign="top"><a class="el" href="a00084.html#w2">size_type</a> </td>
2660
<td class="mdname1" valign="top" nowrap> <em>new_size</em> </td>
2661
<td class="md" valign="top"> ) </td>
2662
<td class="md" nowrap></td>
2668
<table cellspacing="5" cellpadding="0" border="0">
2676
Change size of the bvector.
2678
<dl compact><dt><b>Parameters:</b></dt><dd>
2679
<table border="0" cellspacing="2" cellpadding="0">
2680
<tr><td valign="top"></td><td valign="top"><em>new_size</em> </td><td>- new size in bits </td></tr>
2685
Definition at line <a class="el" href="a00137.html#l01660">1660</a> of file <a class="el" href="a00137.html">bm.h</a>.
2687
References <a class="el" href="a00137.html#l01615">bm::bvector< Alloc, MS >::set_range()</a>.
2689
Referenced by <a class="el" href="a00153.html#l00069">main()</a>, and <a class="el" href="a00137.html#l00858">bm::bvector< Alloc, MS >::operator=()</a>. </td>
2692
<a class="anchor" name="a22" doxytag="bm::bvector::set"></a><p>
2693
<table class="mdTable" cellpadding="2" cellspacing="0">
2696
<table cellpadding="0" cellspacing="0" border="0">
2698
<td class="mdPrefix" colspan="4">
2699
template<class Alloc, class MS> </td>
2702
<td class="md" nowrap valign="top"><a class="el" href="a00084.html">bvector</a><Alloc, MS>& <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::set </td>
2703
<td class="md" valign="top">( </td>
2704
<td class="mdname1" valign="top" nowrap> </td>
2705
<td class="md" valign="top"> ) </td>
2706
<td class="md" nowrap><code> [inline]</code></td>
2712
<table cellspacing="5" cellpadding="0" border="0">
2720
Sets every bit in this bitset to 1.
2722
<dl compact><dt><b>Returns:</b></dt><dd>*this </dd></dl>
2725
Definition at line <a class="el" href="a00137.html#l00997">997</a> of file <a class="el" href="a00137.html">bm.h</a>.
2727
References <a class="el" href="a00137.html#l00081">BMCOUNT_VALID</a>, and <a class="el" href="a00137.html#l01615">bm::bvector< Alloc, MS >::set_range()</a>.
2729
Referenced by <a class="el" href="a00137.html#l01032">bm::bvector< Alloc, MS >::clear_bit()</a>, and <a class="el" href="a00137.html#l01191">bm::bvector< Alloc, MS >::flip()</a>. </td>
2732
<a class="anchor" name="a21" doxytag="bm::bvector::set"></a><p>
2733
<table class="mdTable" cellpadding="2" cellspacing="0">
2736
<table cellpadding="0" cellspacing="0" border="0">
2738
<td class="mdPrefix" colspan="4">
2739
template<class Alloc, class MS> </td>
2742
<td class="md" nowrap valign="top"><a class="el" href="a00084.html">bvector</a><Alloc, MS>& <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::set </td>
2743
<td class="md" valign="top">( </td>
2744
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> </td>
2745
<td class="mdname" nowrap> <em>n</em>, </td>
2748
<td class="md" nowrap align="right"></td>
2749
<td class="md"></td>
2750
<td class="md" nowrap>bool </td>
2751
<td class="mdname" nowrap> <em>val</em> = <code>true</code></td>
2754
<td class="md"></td>
2755
<td class="md">) </td>
2756
<td class="md" colspan="2"><code> [inline]</code></td>
2762
<table cellspacing="5" cellpadding="0" border="0">
2770
Sets bit n if val is true, clears bit n if val is false.
2772
<dl compact><dt><b>Parameters:</b></dt><dd>
2773
<table border="0" cellspacing="2" cellpadding="0">
2774
<tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>- index of the bit to be set </td></tr>
2775
<tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>- new bit value </td></tr>
2778
<dl compact><dt><b>Returns:</b></dt><dd>*this </dd></dl>
2781
Definition at line <a class="el" href="a00137.html#l00985">985</a> of file <a class="el" href="a00137.html">bm.h</a>.
2783
References <a class="el" href="a00137.html#l00946">bm::bvector< Alloc, MS >::set_bit()</a>.
2785
Referenced by <a class="el" href="a00146.html#l00044">main()</a>. </td>
2788
<a class="anchor" name="a18" doxytag="bm::bvector::set_bit"></a><p>
2789
<table class="mdTable" cellpadding="2" cellspacing="0">
2792
<table cellpadding="0" cellspacing="0" border="0">
2794
<td class="mdPrefix" colspan="4">
2795
template<class Alloc, class MS> </td>
2798
<td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::set_bit </td>
2799
<td class="md" valign="top">( </td>
2800
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> </td>
2801
<td class="mdname" nowrap> <em>n</em>, </td>
2804
<td class="md" nowrap align="right"></td>
2805
<td class="md"></td>
2806
<td class="md" nowrap>bool </td>
2807
<td class="mdname" nowrap> <em>val</em> = <code>true</code></td>
2810
<td class="md"></td>
2811
<td class="md">) </td>
2812
<td class="md" colspan="2"><code> [inline]</code></td>
2818
<table cellspacing="5" cellpadding="0" border="0">
2828
<dl compact><dt><b>Parameters:</b></dt><dd>
2829
<table border="0" cellspacing="2" cellpadding="0">
2830
<tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>- index of the bit to be set. </td></tr>
2831
<tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>- new bit value </td></tr>
2834
<dl compact><dt><b>Returns:</b></dt><dd>TRUE if bit was changed </dd></dl>
2837
Definition at line <a class="el" href="a00137.html#l00946">946</a> of file <a class="el" href="a00137.html">bm.h</a>.
2839
References <a class="el" href="a00140.html#l00014">BM_ASSERT</a>.
2841
Referenced by <a class="el" href="a00137.html#l00985">bm::bvector< Alloc, MS >::set()</a>. </td>
2844
<a class="anchor" name="a19" doxytag="bm::bvector::set_bit_and"></a><p>
2845
<table class="mdTable" cellpadding="2" cellspacing="0">
2848
<table cellpadding="0" cellspacing="0" border="0">
2850
<td class="mdPrefix" colspan="4">
2851
template<class Alloc, class MS> </td>
2854
<td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::set_bit_and </td>
2855
<td class="md" valign="top">( </td>
2856
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> </td>
2857
<td class="mdname" nowrap> <em>n</em>, </td>
2860
<td class="md" nowrap align="right"></td>
2861
<td class="md"></td>
2862
<td class="md" nowrap>bool </td>
2863
<td class="mdname" nowrap> <em>val</em> = <code>true</code></td>
2866
<td class="md"></td>
2867
<td class="md">) </td>
2868
<td class="md" colspan="2"><code> [inline]</code></td>
2874
<table cellspacing="5" cellpadding="0" border="0">
2882
Sets bit n using bit AND with the provided value.
2884
<dl compact><dt><b>Parameters:</b></dt><dd>
2885
<table border="0" cellspacing="2" cellpadding="0">
2886
<tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>- index of the bit to be set. </td></tr>
2887
<tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>- new bit value </td></tr>
2890
<dl compact><dt><b>Returns:</b></dt><dd>TRUE if bit was changed </dd></dl>
2893
Definition at line <a class="el" href="a00137.html#l00958">958</a> of file <a class="el" href="a00137.html">bm.h</a>.
2895
References <a class="el" href="a00140.html#l00014">BM_ASSERT</a>. </td>
2898
<a class="anchor" name="a20" doxytag="bm::bvector::set_bit_conditional"></a><p>
2899
<table class="mdTable" cellpadding="2" cellspacing="0">
2902
<table cellpadding="0" cellspacing="0" border="0">
2904
<td class="mdPrefix" colspan="4">
2905
template<class Alloc, class MS> </td>
2908
<td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::set_bit_conditional </td>
2909
<td class="md" valign="top">( </td>
2910
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> </td>
2911
<td class="mdname" nowrap> <em>n</em>, </td>
2914
<td class="md" nowrap align="right"></td>
2915
<td class="md"></td>
2916
<td class="md" nowrap>bool </td>
2917
<td class="mdname" nowrap> <em>val</em>, </td>
2920
<td class="md" nowrap align="right"></td>
2921
<td class="md"></td>
2922
<td class="md" nowrap>bool </td>
2923
<td class="mdname" nowrap> <em>condition</em></td>
2926
<td class="md"></td>
2927
<td class="md">) </td>
2928
<td class="md" colspan="2"><code> [inline]</code></td>
2934
<table cellspacing="5" cellpadding="0" border="0">
2942
Sets bit n only if current value is equal to the condition.
2944
<dl compact><dt><b>Parameters:</b></dt><dd>
2945
<table border="0" cellspacing="2" cellpadding="0">
2946
<tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>- index of the bit to be set. </td></tr>
2947
<tr><td valign="top"></td><td valign="top"><em>val</em> </td><td>- new bit value </td></tr>
2948
<tr><td valign="top"></td><td valign="top"><em>condition</em> </td><td>- expected current value </td></tr>
2951
<dl compact><dt><b>Returns:</b></dt><dd>TRUE if bit was changed </dd></dl>
2954
Definition at line <a class="el" href="a00137.html#l00971">971</a> of file <a class="el" href="a00137.html">bm.h</a>.
2956
References <a class="el" href="a00140.html#l00014">BM_ASSERT</a>. </td>
2959
<a class="anchor" name="a57" doxytag="bm::bvector::set_gap_levels"></a><p>
2960
<table class="mdTable" cellpadding="2" cellspacing="0">
2963
<table cellpadding="0" cellspacing="0" border="0">
2965
<td class="mdPrefix" colspan="4">
2966
template<typename Alloc, typename MS> </td>
2969
<td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::set_gap_levels </td>
2970
<td class="md" valign="top">( </td>
2971
<td class="md" nowrap valign="top">const <a class="el" href="a00129.html#a36">gap_word_t</a> * </td>
2972
<td class="mdname1" valign="top" nowrap> <em>glevel_len</em> </td>
2973
<td class="md" valign="top"> ) </td>
2974
<td class="md" nowrap></td>
2980
<table cellspacing="5" cellpadding="0" border="0">
2988
Sets new GAP lengths table. All GAP blocks will be reallocated to match the new scheme.
2990
<dl compact><dt><b>Parameters:</b></dt><dd>
2991
<table border="0" cellspacing="2" cellpadding="0">
2992
<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>
2997
Definition at line <a class="el" href="a00137.html#l01893">1893</a> of file <a class="el" href="a00137.html">bm.h</a>.
2999
References <a class="el" href="a00141.html#l00535">bm::for_each_nzblock()</a>, and <a class="el" href="a00137.html#l01893">bm::bvector< Alloc, MS >::set_gap_levels()</a>.
3001
Referenced by <a class="el" href="a00137.html#l01872">bm::bvector< Alloc, MS >::optimize_gap_size()</a>, and <a class="el" href="a00137.html#l01893">bm::bvector< Alloc, MS >::set_gap_levels()</a>. </td>
3004
<a class="anchor" name="a52" doxytag="bm::bvector::set_new_blocks_strat"></a><p>
3005
<table class="mdTable" cellpadding="2" cellspacing="0">
3008
<table cellpadding="0" cellspacing="0" border="0">
3010
<td class="mdPrefix" colspan="4">
3011
template<class Alloc, class MS> </td>
3014
<td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::set_new_blocks_strat </td>
3015
<td class="md" valign="top">( </td>
3016
<td class="md" nowrap valign="top"><a class="el" href="a00132.html#ga0">strategy</a> </td>
3017
<td class="mdname1" valign="top" nowrap> <em>strat</em> </td>
3018
<td class="md" valign="top"> ) </td>
3019
<td class="md" nowrap><code> [inline]</code></td>
3025
<table cellspacing="5" cellpadding="0" border="0">
3033
Sets new blocks allocation strategy.
3035
<dl compact><dt><b>Parameters:</b></dt><dd>
3036
<table border="0" cellspacing="2" cellpadding="0">
3037
<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>
3042
Definition at line <a class="el" href="a00137.html#l01318">1318</a> of file <a class="el" href="a00137.html">bm.h</a>.
3044
Referenced by <a class="el" href="a00148.html#l00075">main()</a>. </td>
3047
<a class="anchor" name="a23" doxytag="bm::bvector::set_range"></a><p>
3048
<table class="mdTable" cellpadding="2" cellspacing="0">
3051
<table cellpadding="0" cellspacing="0" border="0">
3053
<td class="mdPrefix" colspan="4">
3054
template<typename Alloc, typename MS> </td>
3057
<td class="md" nowrap valign="top"><a class="el" href="a00084.html">bvector</a>< Alloc, MS > & <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::set_range </td>
3058
<td class="md" valign="top">( </td>
3059
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> </td>
3060
<td class="mdname" nowrap> <em>left</em>, </td>
3063
<td class="md" nowrap align="right"></td>
3064
<td class="md"></td>
3065
<td class="md" nowrap><a class="el" href="a00129.html#a26">bm::id_t</a> </td>
3066
<td class="mdname" nowrap> <em>right</em>, </td>
3069
<td class="md" nowrap align="right"></td>
3070
<td class="md"></td>
3071
<td class="md" nowrap>bool </td>
3072
<td class="mdname" nowrap> <em>value</em> = <code>true</code></td>
3075
<td class="md"></td>
3076
<td class="md">) </td>
3077
<td class="md" colspan="2"></td>
3083
<table cellspacing="5" cellpadding="0" border="0">
3091
Sets all bits in the specified closed interval [left,right] Interval must be inside the bvector's size. This method DOES NOT resize vector.
3093
<dl compact><dt><b>Parameters:</b></dt><dd>
3094
<table border="0" cellspacing="2" cellpadding="0">
3095
<tr><td valign="top"></td><td valign="top"><em>left</em> </td><td>- interval start </td></tr>
3096
<tr><td valign="top"></td><td valign="top"><em>right</em> </td><td>- interval end (closed interval) </td></tr>
3097
<tr><td valign="top"></td><td valign="top"><em>value</em> </td><td>- value to set interval in</td></tr>
3100
<dl compact><dt><b>Returns:</b></dt><dd>*this </dd></dl>
3103
Definition at line <a class="el" href="a00137.html#l01615">1615</a> of file <a class="el" href="a00137.html">bm.h</a>.
3105
References <a class="el" href="a00140.html#l00014">BM_ASSERT</a>, <a class="el" href="a00140.html#l00093">BM_SET_MMX_GUARD</a>, and <a class="el" href="a00137.html#l00081">BMCOUNT_VALID</a>.
3107
Referenced by <a class="el" href="a00137.html#l02612">bm::bvector< Alloc, MS >::combine_operation()</a>, <a class="el" href="a00137.html#l01660">bm::bvector< Alloc, MS >::resize()</a>, and <a class="el" href="a00137.html#l00997">bm::bvector< Alloc, MS >::set()</a>. </td>
3110
<a class="anchor" name="a30" doxytag="bm::bvector::size"></a><p>
3111
<table class="mdTable" cellpadding="2" cellspacing="0">
3114
<table cellpadding="0" cellspacing="0" border="0">
3116
<td class="mdPrefix" colspan="4">
3117
template<class Alloc, class MS> </td>
3120
<td class="md" nowrap valign="top"><a class="el" href="a00084.html#w2">size_type</a> <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::size </td>
3121
<td class="md" valign="top">( </td>
3122
<td class="mdname1" valign="top" nowrap> </td>
3123
<td class="md" valign="top"> ) </td>
3124
<td class="md" nowrap> const<code> [inline]</code></td>
3130
<table cellspacing="5" cellpadding="0" border="0">
3138
return current size of the vector (bits)
3142
Definition at line <a class="el" href="a00137.html#l01078">1078</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
3145
<a class="anchor" name="a54" doxytag="bm::bvector::stat"></a><p>
3146
<table class="mdTable" cellpadding="2" cellspacing="0">
3149
<table cellpadding="0" cellspacing="0" border="0">
3151
<td class="mdPrefix" colspan="4">
3152
template<class Alloc, class MS> </td>
3155
<td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::stat </td>
3156
<td class="md" valign="top">( </td>
3157
<td class="md" nowrap valign="top">unsigned </td>
3158
<td class="mdname1" valign="top" nowrap> <em>blocks</em> = <code>0</code> </td>
3159
<td class="md" valign="top"> ) </td>
3160
<td class="md" nowrap> const</td>
3166
<table cellspacing="5" cellpadding="0" border="0">
3176
Definition at line <a class="el" href="a00137.html#l02351">2351</a> of file <a class="el" href="a00137.html">bm.h</a>.
3178
References <a class="el" href="a00141.html#l02373">bm::bit_block_calc_count()</a>, <a class="el" href="a00140.html#l00057">BMGAP_PTR</a>, <a class="el" href="a00137.html#l01638">bm::bvector< Alloc, MS >::count()</a>, <a class="el" href="a00141.html#l00659">bm::gap_bit_count()</a>, <a class="el" href="a00141.html#l01867">bm::gap_control_sum()</a>, <a class="el" href="a00141.html#l02027">bm::gap_length()</a>, <a class="el" href="a00141.html#l02069">bm::gap_level()</a>, <a class="el" href="a00137.html#l01444">bm::bvector< Alloc, MS >::get_block()</a>, and <a class="el" href="a00140.html#l00024">IS_FULL_BLOCK</a>.
3180
Referenced by <a class="el" href="a00137.html#l01830">bm::bvector< Alloc, MS >::optimize()</a>. </td>
3183
<a class="anchor" name="a43" doxytag="bm::bvector::swap"></a><p>
3184
<table class="mdTable" cellpadding="2" cellspacing="0">
3187
<table cellpadding="0" cellspacing="0" border="0">
3189
<td class="mdPrefix" colspan="4">
3190
template<class Alloc, class MS> </td>
3193
<td class="md" nowrap valign="top">void <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::swap </td>
3194
<td class="md" valign="top">( </td>
3195
<td class="md" nowrap valign="top"><a class="el" href="a00084.html">bvector</a>< Alloc, MS > & </td>
77
3196
<td class="mdname1" valign="top" nowrap> <em>bv</em> </td>
78
3197
<td class="md" valign="top"> ) </td>
79
<td class="md" nowrap></td>
85
<table cellspacing="5" cellpadding="0" border="0">
93
<dl compact><dt><b>Examples: </b></dt><dd>
94
<a class="el" href="a00035.html#a7">sample2.cpp</a>.</dl>
96
Definition at line <a class="el" href="a00112.html#l00036">36</a> of file <a class="el" href="a00112.html">sample2.cpp</a>.
98
Referenced by <a class="el" href="a00112.html#l00055">main()</a>. </td>
101
<hr size="1"><address style="align: right;"><small>Generated on Thu Apr 20 13:29:05 2006 for BitMagic by
3198
<td class="md" nowrap><code> [inline]</code></td>
3204
<table cellspacing="5" cellpadding="0" border="0">
3212
Exchanges content of bv and this bitvector.
3216
Definition at line <a class="el" href="a00137.html#l01208">1208</a> of file <a class="el" href="a00137.html">bm.h</a>.
3218
References <a class="el" href="a00137.html#l00081">BMCOUNT_VALID</a>, and <a class="el" href="a00141.html#l00329">bm::xor_swap()</a>. </td>
3221
<a class="anchor" name="a38" doxytag="bm::bvector::test"></a><p>
3222
<table class="mdTable" cellpadding="2" cellspacing="0">
3225
<table cellpadding="0" cellspacing="0" border="0">
3227
<td class="mdPrefix" colspan="4">
3228
template<class Alloc, class MS> </td>
3231
<td class="md" nowrap valign="top">bool <a class="el" href="a00084.html">bm::bvector</a>< Alloc, MS >::test </td>
3232
<td class="md" valign="top">( </td>
3233
<td class="md" nowrap valign="top"><a class="el" href="a00129.html#a26">bm::id_t</a> </td>
3234
<td class="mdname1" valign="top" nowrap> <em>n</em> </td>
3235
<td class="md" valign="top"> ) </td>
3236
<td class="md" nowrap> const<code> [inline]</code></td>
3242
<table cellspacing="5" cellpadding="0" border="0">
3250
returns true if bit n is set and false is bit n is 0.
3252
<dl compact><dt><b>Parameters:</b></dt><dd>
3253
<table border="0" cellspacing="2" cellpadding="0">
3254
<tr><td valign="top"></td><td valign="top"><em>n</em> </td><td>- Index of the bit to check. </td></tr>
3257
<dl compact><dt><b>Returns:</b></dt><dd>Bit value (1 or 0) </dd></dl>
3260
Definition at line <a class="el" href="a00137.html#l01154">1154</a> of file <a class="el" href="a00137.html">bm.h</a>.
3262
References <a class="el" href="a00137.html#l01796">bm::bvector< Alloc, MS >::get_bit()</a>. </td>
3265
<hr><h2>Friends And Related Function Documentation</h2>
3266
<a class="anchor" name="n1" doxytag="bm::bvector::enumerator"></a><p>
3267
<table class="mdTable" cellpadding="2" cellspacing="0">
3270
<table cellpadding="0" cellspacing="0" border="0">
3272
<td class="mdPrefix" colspan="4">
3273
template<class Alloc, class MS> </td>
3276
<td class="md" nowrap valign="top">friend class <a class="el" href="a00086.html">enumerator</a><code> [friend]</code> </td>
3282
<table cellspacing="5" cellpadding="0" border="0">
3292
Definition at line <a class="el" href="a00137.html#l00773">773</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
3295
<a class="anchor" name="n0" doxytag="bm::bvector::iterator_base"></a><p>
3296
<table class="mdTable" cellpadding="2" cellspacing="0">
3299
<table cellpadding="0" cellspacing="0" border="0">
3301
<td class="mdPrefix" colspan="4">
3302
template<class Alloc, class MS> </td>
3305
<td class="md" nowrap valign="top">friend class <a class="el" href="a00088.html">iterator_base</a><code> [friend]</code> </td>
3311
<table cellspacing="5" cellpadding="0" border="0">
3321
Definition at line <a class="el" href="a00137.html#l00772">772</a> of file <a class="el" href="a00137.html">bm.h</a>. </td>
3324
<hr>The documentation for this class was generated from the following file:<ul>
3325
<li><a class="el" href="a00137.html">bm.h</a></ul>
3326
<hr size="1"><address style="align: right;"><small>Generated on Sun Aug 5 14:12:37 2007 for BitMagic by
102
3327
<a href="http://www.doxygen.org/index.html">
103
3328
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.4.1 </small></address>